Bug 1437747

Summary: remove device fails when the device being removed has 200 volumes in it
Product: [Red Hat Storage] Red Hat Gluster Storage Reporter: krishnaram Karthick <kramdoss>
Component: heketiAssignee: Ramakrishna Reddy Yekulla <rreddy>
Status: CLOSED NOTABUG QA Contact: krishnaram Karthick <kramdoss>
Severity: high Docs Contact:
Priority: unspecified    
Version: cns-3.5CC: hchiramm, madam, mliyazud, rhs-bugs, storage-qa-internal
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2017-04-06 09:31:11 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 krishnaram Karthick 2017-03-31 05:31:24 UTC
Description of problem:

device remove fails when it has over 200 volumes carved from it although there is a free device available for replacement.

Error: Failed to remove device, error: Unable to replace brick 10.70.46.165:/var/lib/heketi/mounts/vg_2da562dbb930fc8d90f78f70075f8c2a/brick_015f4d4b0a1fe112807c36424993e06d/brick with 10.70.46.165:/var/lib/heketi/mounts/vg_03279ea02e78439382a985db0c4d92ed/brick_d22e5522be2657b399324e5f1cd4f81a/brick for volume vol_3c0d06f8338e11ff98c1de5bf1315acc

sh-4.2# gluster vol status vol_3c0d06f8338e11ff98c1de5bf1315acc
Status of volume: vol_3c0d06f8338e11ff98c1de5bf1315acc
Gluster process                             TCP Port  RDMA Port  Online  Pid
------------------------------------------------------------------------------
Brick 10.70.46.165:/var/lib/heketi/mounts/v
g_03279ea02e78439382a985db0c4d92ed/brick_d2
2e5522be2657b399324e5f1cd4f81a/brick        N/A       N/A        N       N/A  
Brick 10.70.47.21:/var/lib/heketi/mounts/vg
_775747b65771ac369114ce29bf62b12c/brick_ded
fff49941c5960ccc8321426e65ccf/brick         49350     0          Y       97136
Brick 10.70.47.51:/var/lib/heketi/mounts/vg
_71049fe1ea71ce342fa4110c04cc7f98/brick_130
706b8fe642159156bdf428c55f3df/brick         49350     0          Y       28808
Self-heal Daemon on localhost               N/A       N/A        Y       100861
Self-heal Daemon on 10.70.47.21             N/A       N/A        Y       98156
Self-heal Daemon on 10.70.47.51             N/A       N/A        Y       29818
 
Task Status of Volume vol_3c0d06f8338e11ff98c1de5bf1315acc
------------------------------------------------------------------------------
There are no active volume tasks

The failure seems to be from the gluster (brick crash?). however, we should understand if having 200 volumes under a device is causing this failure. If yes, we must define the number of volumes a device can hold.

snippet of brick log from 10.70.46.165
=======================================
[2017-03-30 15:32:18.997153] I [rpc-clnt.c:1999:rpc_clnt_reconfig] 0-vol_3c0d06f8338e11ff98c1de5bf1315acc-client-2: changing port to 49350 (from 0)
[2017-03-30 15:32:18.999869] E [socket.c:2314:socket_connect_finish] 0-vol_3c0d06f8338e11ff98c1de5bf1315acc-client-1: connection to 10.70.47.21:49350 failed (No route to host)
[2017-03-30 15:32:18.999910] W [MSGID: 108001] [afr-common.c:4773:afr_notify] 0-vol_3c0d06f8338e11ff98c1de5bf1315acc-replicate-0: Client-quorum is not met
[2017-03-30 15:32:19.002853] E [socket.c:2314:socket_connect_finish] 0-vol_3c0d06f8338e11ff98c1de5bf1315acc-client-2: connection to 10.70.47.51:49350 failed (No route to host)
[2017-03-30 15:32:19.002882] E [MSGID: 108006] [afr-common.c:4684:afr_notify] 0-vol_3c0d06f8338e11ff98c1de5bf1315acc-replicate-0: All subvolumes are down. Going offline until atleast one of them comes back up.
[2017-03-30 15:32:19.007244] I [fuse-bridge.c:5241:fuse_graph_setup] 0-fuse: switched to graph 0
[2017-03-30 15:32:19.007517] I [fuse-bridge.c:4153:fuse_init] 0-glusterfs-fuse: FUSE inited with protocol versions: glusterfs 7.24 kernel 7.22
[2017-03-30 15:32:19.007666] I [MSGID: 108006] [afr-common.c:4827:afr_local_init] 0-vol_3c0d06f8338e11ff98c1de5bf1315acc-replicate-0: no subvolumes up
[2017-03-30 15:32:19.008165] W [fuse-resolve.c:132:fuse_resolve_gfid_cbk] 0-fuse: 00000000-0000-0000-0000-000000000001: failed to resolve (Transport endpoint is not connected)
[2017-03-30 15:32:19.008183] W [fuse-bridge.c:3174:fuse_setxattr_resume] 0-glusterfs-fuse: 2: SETXATTR 00000000-0000-0000-0000-000000000001/1 (trusted.replace-brick) resolution failed
[2017-03-30 15:32:19.150804] I [fuse-bridge.c:5082:fuse_thread_proc] 0-fuse: unmounting /tmp/mntc7tn20
[2017-03-30 15:32:19.008158] I [MSGID: 108006] [afr-common.c:4827:afr_local_init] 0-vol_3c0d06f8338e11ff98c1de5bf1315acc-replicate-0: no subvolumes up
[2017-03-30 15:32:19.151333] W [glusterfsd.c:1288:cleanup_and_exit] (-->/lib64/libpthread.so.0(+0x7dc5) [0x7fd237548dc5] -->/usr/sbin/glusterfs(glusterfs_sigwaiter+0xe5) [0x7fd238bdcc45] -->/usr/sbin/glusterfs(cleanup_and_exit+0x6b) [0x7fd238bdcabb] ) 0-: received signum (15), shutting down
[2017-03-30 15:32:19.151379] I [fuse-bridge.c:5793:fini] 0-fuse: Unmounting '/tmp/mntc7tn20'.


Version-Release number of selected component (if applicable):
heketi-client-4.0.0-4.el7rhgs.x86_64

How reproducible:
1/1

Steps to Reproduce:
1. On a CNS system, have 200 volumes from a single device
2. Run remove device on this device

Actual results:
remove device failed

Expected results:
remove device should go through

Additional info:
logs shall be attached shortly

Comment 11 Humble Chirammal 2017-04-06 09:31:11 UTC
RCA: It has seen that only 100 ports were opened which caused glusterd to fail to communicate with brick process thus the failure in remove device. The documented port range is from 49152-49664, this atleast wil satisfy 250 , 300 volumes. If at all we are claiming more than this number of volumes we can update the doc. As we are confirmed with the RCA by manual verification in the same setup, I am closing this bug for now.