Description of problem: glusterfs-fuse client is crashing just by creating a file after mounting the volume Version-Release number of selected component (if applicable): glusterfs-fuse-3.12.2-42.el7rhgs.x86_64 How reproducible: Every time Steps to Reproduce: 1. Create replica 3 volume 2. Start the volume 3. Fuse mount the volume 4. Touch a file Actual results: Fuse mount is crashing as below [root@rhs-client6 ~]# cd /mnt/test/ [root@rhs-client6 test]# touch 1 touch: failed to close ‘1’: Transport endpoint is not connected [root@rhs-client6 test]# ls -lh / total 8.1M lrwxrwxrwx. 1 root root 7 Jan 7 11:48 bin -> usr/bin dr-xr-xr-x. 5 root root 4.0K Feb 13 19:38 boot -rw-------. 1 root root 107M Feb 13 20:10 core.20116
Program received signal SIGSEGV, Segmentation fault. [Switching to Thread 0x7fffe35f7700 (LWP 20661)] meta_flush (frame=0x7fffd4001b98, this=0x7fffe401b7c0, fd=0xfdfdfdfd, xdata=0x0) at meta.c:83 83 META_FOP (fd->inode, flush, frame, this, fd, xdata); Missing separate debuginfos, use: debuginfo-install glibc-2.17-260.el7_6.3.x86_64 keyutils-libs-1.5.8-3.el7.x86_64 krb5-libs-1.15.1-37.el7_6.x86_64 libcom_err-1.42.9-13.el7.x86_64 libselinux-2.5-14.1.el7.x86_64 libuuid-2.23.2-59.el7.x86_64 openssl-libs-1.0.2k-16.el7.x86_64 pcre-8.32-17.el7.x86_64 zlib-1.2.7-18.el7.x86_64 (gdb) bt #0 meta_flush (frame=0x7fffd4001b98, this=0x7fffe401b7c0, fd=0xfdfdfdfd, xdata=0x0) at meta.c:83 #1 0x00007fffeeec3808 in fuse_flush_resume (state=0x7fffd400f000) at fuse-bridge.c:2979 #2 0x00007fffeeeb7c65 in fuse_resolve_done (state=<optimized out>) at fuse-resolve.c:663 #3 fuse_resolve_all (state=<optimized out>) at fuse-resolve.c:690 #4 0x00007fffeeeb7978 in fuse_resolve (state=0x7fffd400f000) at fuse-resolve.c:654 #5 0x00007fffeeeb7cae in fuse_resolve_all (state=<optimized out>) at fuse-resolve.c:686 #6 0x00007fffeeeb6f93 in fuse_resolve_continue (state=state@entry=0x7fffd400f000) at fuse-resolve.c:706 #7 0x00007fffeeeb78f6 in fuse_resolve_fd (state=0x7fffd400f000) at fuse-resolve.c:566 #8 fuse_resolve (state=0x7fffd400f000) at fuse-resolve.c:643 #9 0x00007fffeeeb7c8e in fuse_resolve_all (state=<optimized out>) at fuse-resolve.c:679 #10 0x00007fffeeeb7cd0 in fuse_resolve_and_resume (state=0x7fffd400f000, fn=0x7fffeeec3380 <fuse_flush_resume>) at fuse-resolve.c:718 #11 0x00007fffeeecfa42 in fuse_thread_proc (data=0x5555557cee00) at fuse-bridge.c:5783 #12 0x00007ffff6940dd5 in start_thread () from /lib64/libpthread.so.0 #13 0x00007ffff6208ead in clone () from /lib64/libc.so.6 Looks like flush is the culprit. And looking at the gdb logs, fd is 'fdfdfdfd' indicating a free'd FD passed down.
2974 void 2975 fuse_flush_resume (fuse_state_t *state) 2976 { 2977 FUSE_FOP (state, fuse_err_cbk, GF_FOP_FLUSH, 2978 flush, state->fd, state->xdata); 2979 FUSE_FOP (state, fuse_flush_cbk, GF_FOP_FLUSH, 2980 flush, state->fd, state->xdata); 2981 } 2982 this is the culprit. Missed out while reviewing https://code.engineering.redhat.com/gerrit/#/c/162550/3 Needs to be fixed.
*** Bug 1676917 has been marked as a duplicate of this bug. ***
Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://access.redhat.com/errata/RHBA-2019:0658