Bug 1120991

Summary: replace-brick "commit force" doesn't replaces the bricks with src and dst brick paths being same
Product: [Red Hat Storage] Red Hat Gluster Storage Reporter: spandura
Component: glusterdAssignee: Anuradha <atalur>
Status: CLOSED DUPLICATE QA Contact: storage-qa-internal <storage-qa-internal>
Severity: medium Docs Contact:
Priority: unspecified    
Version: rhgs-3.0CC: amukherj, nlevinki, smohan, vbellur
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2016-06-22 08:57:52 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description spandura 2014-07-18 06:01:44 UTC
Description of problem:
========================
On a 2 x 2 distribute-replicate volume with 4 nodes and 1 brick on each node, the first node's brick disk went bad and had to be replaced. Simulated the disk replacement by bringing the brick offline, reformatting the brick disk and reboot of the node mounted the new disk to the same mount point (/etc/fstab had the entry) . 

Now, to replace the old brick with the new brick having the same path used the command "gluster volume replace-brick <vol_name> brick1_path brick1_path. 

The command execution says the command is successfully executed. But 1) brick1 directory is created on the node1 2) Since the directory creation fails, the brick is not started 

Version-Release number of selected component (if applicable):
===========================================================
glusterfs 3.6.0.24 built on Jul  3 2014 11:03:38

How reproducible:
====================
Always

Steps to Reproduce:
=======================
1. Create a 2 x 2 distribute-replicate volume. Start the volume. 

2. Simulate disk replacement on node1-> brick1 i.e Kill the brick process, rm -rf brick_path. 

3. Execute "gluster v replace-brick <volume_name> src_brick_path dst_brick_path commit force"

Note: In this case both source and destination brick paths are same. 

Actual results:
===============
The command execution says the command is successfully executed. But 1) brick1 directory is created on the node1 2) Since the directory creation fails, the brick is not started 

root@mia [Jul-18-2014-11:29:08] >gluster v replace-brick vol1 rhs-client11:/rhs/device0/b1_replaced rhs-client11:/rhs/device0/b1_replaced commit force
volume replace-brick: success: replace-brick commit successful
root@mia [Jul-18-2014-11:29:57] >

root@rhs-client11 [Jul-18-2014-11:29:20] >ls -l /rhs/device0/
total 0
root@rhs-client11 [Jul-18-2014-11:30:02] >


root@mia [Jul-18-2014-11:29:04] >gluster v info
 
Volume Name: vol1
Type: Distributed-Replicate
Volume ID: 5cc2e193-af63-45b5-834f-9bd757cf4e84
Status: Started
Snap Volume: no
Number of Bricks: 2 x 2 = 4
Transport-type: tcp
Bricks:
Brick1: rhs-client11:/rhs/device0/b1_replaced
Brick2: rhs-client12:/rhs/device0/b2
Brick3: rhs-client13:/rhs/device0/b3
Brick4: rhs-client14:/rhs/device0/b4
Options Reconfigured:
performance.readdir-ahead: on
snap-max-hard-limit: 256
snap-max-soft-limit: 90
auto-delete: disable
root@mia [Jul-18-2014-11:29:06] >
 

Expected results:
===================
Irrespective of src and dst brick path "replace-brick commit force" should replace the bricks.

Comment 3 Atin Mukherjee 2015-03-30 04:25:37 UTC
As per the triaging this BZ has been deferred from 3.1 release, setting the appropriate flags.

Comment 4 Anuradha 2016-06-22 08:57:52 UTC

*** This bug has been marked as a duplicate of bug 1256524 ***

Comment 5 Anuradha 2016-06-22 08:59:07 UTC
Closed this as duplicate as both will be fixed by same patch. If the functionality doesn't work properly then please open a new bug.

Thanks,
Anuradha