Bug 765590 (GLUSTER-3858) - glusterd crashes with addbrick for stripe
Summary: glusterd crashes with addbrick for stripe
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: GLUSTER-3858
Product: GlusterFS
Classification: Community
Component: glusterd
Version: pre-release
Hardware: x86_64
OS: Linux
medium
medium
Target Milestone: ---
Assignee: krishnan parthasarathi
QA Contact: shylesh
URL:
Whiteboard:
Depends On:
Blocks: 817967
TreeView+ depends on / blocked
 
Reported: 2011-12-08 10:42 UTC by shishir gowda
Modified: 2013-12-09 01:28 UTC (History)
3 users (show)

Fixed In Version: glusterfs-3.4.0
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2013-07-24 17:29:58 UTC
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Embargoed:


Attachments (Terms of Use)

Description shishir gowda 2011-12-08 10:42:47 UTC
steps to reproduce
1. create a stripe vol
2. addbrick and specify stripe count change

root@shishirng:/gluster/glusterfs# gluster
gluster> volume info 
No volumes present
gluster> volume create new stripe 2 sng:/export/dir1 sng:/export/dir2
Creation of volume new has been successful. Please start the volume to access data.
gluster> volume add-brick new stripe 3 sng:/export/dir3


Program terminated with signal 8, Arithmetic exception.
#0  0x00007f6783e1e534 in add_brick_at_right_order (brickinfo=0xed2710, volinfo=0x7fff0c6239e0, count=0, stripe_cnt=3, replica_cnt=0)
    at glusterd-brick-ops.c:64
64	                idx = ((count / ((stripe_cnt * volinfo->replica_count) -

(gdb) bt
#0  0x00007f6783e1e534 in add_brick_at_right_order (brickinfo=0xed2710, volinfo=0x7fff0c6239e0, count=0, stripe_cnt=3, replica_cnt=0)
    at glusterd-brick-ops.c:64
#1  0x00007f6783e1fd2a in glusterd_handle_add_brick (req=0x7f6783cec02c) at glusterd-brick-ops.c:523
#2  0x00007f6786aff1ef in rpcsvc_handle_rpc_call (svc=0xec6ec0, trans=0xeca790, msg=0xec7ca0) at rpcsvc.c:507
#3  0x00007f6786aff56c in rpcsvc_notify (trans=0xeca790, mydata=0xec6ec0, event=RPC_TRANSPORT_MSG_RECEIVED, data=0xec7ca0) at rpcsvc.c:603
#4  0x00007f6786b0518c in rpc_transport_notify (this=0xeca790, event=RPC_TRANSPORT_MSG_RECEIVED, data=0xec7ca0) at rpc-transport.c:498
#5  0x00007f6783ae02e7 in socket_event_poll_in (this=0xeca790) at socket.c:1675
#6  0x00007f6783ae0850 in socket_event_handler (fd=5, idx=1, data=0xeca790, poll_in=1, poll_out=0, poll_err=0) at socket.c:1790
#7  0x00007f6786d59b04 in event_dispatch_epoll_handler (event_pool=0xec0500, events=0xec9b70, i=0) at event.c:794
#8  0x00007f6786d59d17 in event_dispatch_epoll (event_pool=0xec0500) at event.c:856
#9  0x00007f6786d5a08a in event_dispatch (event_pool=0xec0500) at event.c:956
#10 0x0000000000407d1e in main (argc=1, argv=0x7fff0c624398) at glusterfsd.c:1601
(gdb) f 0
#0  0x00007f6783e1e534 in add_brick_at_right_order (brickinfo=0xed2710, volinfo=0x7fff0c6239e0, count=0, stripe_cnt=3, replica_cnt=0)
    at glusterd-brick-ops.c:64
64	                idx = ((count / ((stripe_cnt * volinfo->replica_count) -
(gdb) l
59	                   (count + volinfo->dist_leaf_count);
60	                */
61	
62	                sub_cnt = volinfo->dist_leaf_count;
63	
64	                idx = ((count / ((stripe_cnt * volinfo->replica_count) -
65	                                 sub_cnt)) * sub_cnt) +
66	                        (count + sub_cnt);
67	
68	                goto insert_brick;
(gdb) p volinfo->replica_count
$4 = 0
(gdb) p count
$5 = 0
(gdb) p volinfo->dist_leaf_count
$6 = 0
(gdb) p stripe_cnt
$7 = 3
(gdb)

Comment 1 krishnan parthasarathi 2011-12-20 09:14:40 UTC
CHANGE: http://review.gluster.com/804 should fix this issue as well.

Comment 2 Kaushal 2012-05-29 11:01:45 UTC
Checked on release-3.3. glusterd no longer crashes.
Performed the following and got the output shown.

gluster> volume info
No volumes present
gluster> volume create test stripe 2 arch:/export/test1 arch:/export/test2
Creation of volume test has been successful. Please start the volume to access data.
gluster> volume add-brick test stripe 3 arch:/export/test3
Changing the 'stripe count' of the volume is not a supported feature. In some cases it may result in data loss on the volume. Also there may be issues with regular filesystem operations on the volume after the change. Do you really want to continue with 'stripe' count option ?  (y/n) y
Add Brick successful
gluster>


Note You need to log in before you can comment on or make changes to this bug.