Bug 1688287 - ganesha crash on glusterfs with shard volume
Summary: ganesha crash on glusterfs with shard volume
Keywords:
Status: CLOSED NEXTRELEASE
Alias: None
Product: GlusterFS
Classification: Community
Component: sharding
Version: mainline
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: bugs@gluster.org
QA Contact: bugs@gluster.org
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2019-03-13 13:13 UTC by Kinglong Mee
Modified: 2019-06-25 13:19 UTC (History)
2 users (show)

Fixed In Version: glusterfs-7.0
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2019-06-25 13:19:13 UTC
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Gluster.org Gerrit 22357 0 None Open shard: fix crash caused by using null inode 2019-03-14 18:07:35 UTC

Description Kinglong Mee 2019-03-13 13:13:21 UTC
Description of problem:

#0  0x00007fe49c386544 in uuid_unpack () from /lib64/libuuid.so.1
[Current thread is 1 (Thread 0x7fe48a453700 (LWP 20198))]
Missing separate debuginfos, use: dnf debuginfo-install dbus-libs-1.12.12-1.fc29.x86_64 glibc-2.28-26.fc29.x86_64 gssproxy-0.8.0-6.fc29.x86_64 keyutils-libs-1.5.10-8.fc29.x86_64 krb5-libs-1.16.1-25.fc29.x86_64 libacl-2.2.53-2.fc29.x86_64 libattr-2.4.48-3.fc29.x86_64 libblkid-2.32.1-1.fc29.x86_64 libcap-2.25-12.fc29.x86_64 libcom_err-1.44.4-1.fc29.x86_64 libgcc-8.3.1-2.fc29.x86_64 libgcrypt-1.8.4-1.fc29.x86_64 libgpg-error-1.33-1.fc29.x86_64 libmount-2.32.1-1.fc29.x86_64 libnfsidmap-2.3.3-1.rc2.fc29.x86_64 libnsl2-1.2.0-3.20180605git4a062cf.fc29.x86_64 librados2-12.2.11-1.fc29.x86_64 libselinux-2.8-6.fc29.x86_64 libstdc++-8.3.1-2.fc29.x86_64 libtirpc-1.1.4-2.rc2.fc29.x86_64 libuuid-2.32.1-1.fc29.x86_64 lttng-ust-2.10.1-4.fc29.x86_64 nspr-4.20.0-1.fc29.x86_64 nss-3.42.1-1.fc29.x86_64 nss-util-3.42.1-1.fc29.x86_64 openssl-libs-1.1.1b-2.fc29.x86_64 pcre2-10.32-8.fc29.x86_64 samba-client-libs-4.9.4-1.fc29.x86_64 sssd-client-2.0.0-5.fc29.x86_64 systemd-libs-239-12.git8bca462.fc29.x86_64 xz-libs-5.2.4-3.fc29.x86_64 zlib-1.2.11-14.fc29.x86_64
(gdb) bt
#0  0x00007fe49c386544 in uuid_unpack () from /lib64/libuuid.so.1
#1  0x00007fe49c3865c4 in uuid_unparse_x () from /lib64/libuuid.so.1
#2  0x00007fe490caee70 in gf_uuid_unparse (
    out=0x7fe474004dd0 "00000000-0000-0000-0000-", '0' <repeats 12 times>, 
    uuid=0x8 <error: Cannot access memory at address 0x8>) at compat-uuid.h:55
#3  uuid_utoa (
    uuid=uuid@entry=0x8 <error: Cannot access memory at address 0x8>)
    at common-utils.c:2762
#4  0x00007fe48ae76b2a in shard_truncate_last_shard (
    frame=frame@entry=0x7fe469452888, this=this@entry=0x7fe47c00e070, 
    inode=<optimized out>) at shard.c:2006
#5  0x00007fe48ae77baf in shard_truncate_htol_cbk (frame=0x7fe469452888, 
    cookie=<optimized out>, this=0x7fe47c00e070, op_ret=<optimized out>, 
    op_errno=<optimized out>, preparent=<optimized out>, 
    postparent=0x7fe3b40b7450, xdata=0x7fe3b4665488) at shard.c:2056
#6  0x00007fe48aedb00c in dht_unlink_cbk (frame=0x7fe3b4c0d3b8, 
    cookie=<optimized out>, this=<optimized out>, op_ret=<optimized out>, 
    op_errno=<optimized out>, preparent=0x7fe48a450b50, 
    postparent=0x7fe48a450bf0, xdata=0x7fe3b4665488) at dht-common.c:3644
#7  0x00007fe48afaeeac in client4_0_unlink_cbk (req=<optimized out>, 
    iov=<optimized out>, count=<optimized out>, myframe=0x7fe3b487b0d8)
    at client-rpc-fops_v2.c:466
#8  0x00007fe49269b824 in rpc_clnt_handle_reply (
    clnt=clnt@entry=0x7fe47c04bd00, pollin=pollin@entry=0x7fe3b415f420)
    at rpc-clnt.c:755
#9  0x00007fe49269bb7f in rpc_clnt_notify (trans=0x7fe47c04c030, 
    mydata=0x7fe47c04bd30, event=<optimized out>, data=0x7fe3b415f420)
    at rpc-clnt.c:923
#10 0x00007fe492697f7b in rpc_transport_notify (
    this=this@entry=0x7fe47c04c030, 
    event=event@entry=RPC_TRANSPORT_MSG_RECEIVED, 
    data=data@entry=0x7fe3b415f420) at rpc-transport.c:525
#11 0x00007fe48b8afa51 in socket_event_poll_in (notify_handled=true, 
    this=0x7fe47c04c030) at socket.c:2506
#12 socket_event_handler (fd=fd@entry=11, idx=idx@entry=2, gen=gen@entry=1, 
    data=data@entry=0x7fe47c04c030, poll_in=<optimized out>, 
    poll_out=<optimized out>, poll_err=<optimized out>) at socket.c:2907
#13 0x00007fe490d048ff in event_dispatch_epoll_handler (event=0x7fe48a4510ac, 
    event_pool=0x1cc0740) at event-epoll.c:591
#14 event_dispatch_epoll_worker (data=0x7fe47c04ba30) at event-epoll.c:667
#15 0x00007fe49c1f958e in start_thread () from /lib64/libpthread.so.0
#16 0x00007fe49bf7b6a3 in clone () from /lib64/libc.so.6
(gdb) frame 4
#4  0x00007fe48ae76b2a in shard_truncate_last_shard (
    frame=frame@entry=0x7fe469452888, this=this@entry=0x7fe47c00e070, 
    inode=<optimized out>) at shard.c:2006
2006	        gf_msg_debug(this->name, 0,
(gdb) p inode
$1 = <optimized out>
(gdb) l
2001	     * needs to be truncated does not exist due to it lying in a hole
2002	     * region. So the only thing left to do in that case would be an
2003	     * update to file size xattr.
2004	     */
2005	    if (!inode) {
2006	        gf_msg_debug(this->name, 0,
2007	                     "Last shard to be truncated absent"
2008	                     " in backend: %s. Directly proceeding to update "
2009	                     "file size",
2010	                     uuid_utoa(inode->gfid));
(gdb) 

Version-Release number of selected component (if applicable):


How reproducible:


Steps to Reproduce:
1.
2.
3.

Actual results:


Expected results:


Additional info:

Comment 1 Worker Ant 2019-03-13 13:17:27 UTC
REVIEW: https://review.gluster.org/22357 (shard: get correct inode from local->loc) posted (#1) for review on master by Kinglong Mee

Comment 2 Worker Ant 2019-03-14 18:07:36 UTC
REVIEW: https://review.gluster.org/22357 (shard: fix crash caused by using null inode) merged (#3) on master by Amar Tumballi


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