[Bugs] [Bug 1746320] New: SHORT-WRITE error leads to crash

bugzilla at redhat.com bugzilla at redhat.com
Wed Aug 28 07:32:00 UTC 2019


https://bugzilla.redhat.com/show_bug.cgi?id=1746320

            Bug ID: 1746320
           Summary: SHORT-WRITE error leads to crash
           Product: GlusterFS
           Version: mainline
            Status: NEW
         Component: error-gen
          Assignee: bugs at gluster.org
          Reporter: pkarampu at redhat.com
                CC: bugs at gluster.org
  Target Milestone: ---
    Classification: Community



Description of problem:
In error-gen xlator when we use short-write error, it leads to crash.

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


How reproducible:


Steps to Reproduce:
1. Edit fuse volume file to include error-gen xlator between write-behind and
dht 
2. Make the following changes to mount volfile.
...
volume patchy-utime
    type features/utime
    option noatime on
    subvolumes patchy-dht
end-volume

volume patchy-error-gen
    type debug/error-gen
    option failure 50
    option enable WRITE
    subvolumes patchy-utime
end-volume

volume patchy-write-behind
    type performance/write-behind
    subvolumes patchy-error-gen
end-volume
...  
3. Mount the volume and run the following command:

for i in {1..10}; do dd if=/dev/null of=$i bs=1M count=10 conv=fsync; done


Thread 9 "glfs_iotwr000" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7f3c44cbd700 (LWP 32368)]
0x00007f3c5722ef83 in __memmove_avx_unaligned_erms () from /lib64/libc.so.6
(gdb) bt
#0  0x00007f3c5722ef83 in __memmove_avx_unaligned_erms () from /lib64/libc.so.6
#1  0x00007f3c457f4754 in ec_iov_copy_to (dst=0x7f3c569c0000,
vector=0x7f3c3c002720, count=2, 
    offset=0, size=117) at ec-helpers.c:118
#2  0x00007f3c458265e6 in ec_writev_prepare_buffers (ec=0x7f3c400663d0,
fop=0x7f3c3000d930)
    at ec-inode-write.c:1849
#3  0x00007f3c45826ce0 in ec_writev_start (fop=0x7f3c3000d930) at
ec-inode-write.c:2027
#4  0x00007f3c45827985 in ec_manager_writev (fop=0x7f3c3000d930, state=3)
    at ec-inode-write.c:2176
#5  0x00007f3c457fd311 in __ec_manager (fop=0x7f3c3000d930, error=0) at
ec-common.c:2945
#6  0x00007f3c457fd41d in ec_manager (fop=0x7f3c3000d930, error=0) at
ec-common.c:2963
#7  0x00007f3c458282d0 in ec_writev (frame=0x7f3c3001d830, this=0x7f3c4001c4a0, 
    target=18446744073709551615, fop_flags=128, func=0x7f3c578c869e
<default_writev_cbk>, 
    data=0x0, fd=0x7f3c3c004340, vector=0x7f3c3c006510, count=2,
offset=1703936, flags=32769, 
    iobref=0x7f3c3c00b420, xdata=0x0) at ec-inode-write.c:2368
#8  0x00007f3c457f1d35 in ec_gf_writev (frame=0x7f3c3001d830,
this=0x7f3c4001c4a0, 
    fd=0x7f3c3c004340, vector=0x7f3c3c006510, count=2, offset=1703936,
flags=32769, 
    iobref=0x7f3c3c00b420, xdata=0x0) at ec.c:1341
#9  0x00007f3c578e02f1 in default_writev (frame=0x7f3c3001d830,
this=0x7f3c4001e6c0, 
    fd=0x7f3c3c004340, vector=0x7f3c3c006510, count=2, off=1703936,
flags=32769, 
    iobref=0x7f3c3c00b420, xdata=0x0) at defaults.c:2550
#10 0x00007f3c469e7400 in gf_utime_writev (frame=0x7f3c300088e0,
this=0x7f3c40020690, 
    fd=0x7f3c3c004340, vector=0x7f3c3c006510, count=2, off=1703936,
flags=32769, 
    iobref=0x7f3c3c00b420, xdata=0x0) at utime-autogen-fops.c:81
--Type <RET> for more, q to quit, c to continue without paging--
#11 0x00007f3c456e117d in error_gen_writev (frame=0x7f3c300088e0,
this=0x7f3c400223d0, 
    fd=0x7f3c3c004340, vector=0x7f3c44cbb760, count=2, off=1703936,
flags=32769, 
    iobref=0x7f3c3c00b420, xdata=0x0) at error-gen.c:771
#12 0x00007f3c456c1e3a in wb_fulfill_head (wb_inode=0x7f3c30002ce0,
head=0x7f3c3000be40)
    at write-behind.c:1159
#13 0x00007f3c456c208d in wb_fulfill (wb_inode=0x7f3c30002ce0,
liabilities=0x7f3c44cbb8b0)
    at write-behind.c:1216
#14 0x00007f3c456c3ba9 in wb_process_queue (wb_inode=0x7f3c30002ce0) at
write-behind.c:1784
#15 0x00007f3c456c4675 in wb_writev (frame=0x7f3c3000fd90, this=0x7f3c40024320, 
    fd=0x7f3c3c004340, vector=0x7f3c3c006580, count=1, offset=1966080,
flags=32769, 
    iobref=0x7f3c3c0068d0, xdata=0x0) at write-behind.c:1893
#16 0x00007f3c456ac01f in ra_writev (frame=0x7f3c300041f0, this=0x7f3c40025fd0, 
    fd=0x7f3c3c004340, vector=0x7f3c3c006580, count=1, offset=1966080,
flags=32769, 
    iobref=0x7f3c3c0068d0, xdata=0x0) at read-ahead.c:650
#17 0x00007f3c45697161 in rda_writev (frame=0x7f3c30011c60,
this=0x7f3c40027ba0, 
    fd=0x7f3c3c004340, vector=0x7f3c3c006580, count=1, off=1966080,
flags=32769, 
    iobref=0x7f3c3c0068d0, xdata=0x0) at readdir-ahead.c:786
#18 0x00007f3c4567dcbb in ioc_writev (frame=0x7f3c3000b130,
this=0x7f3c40029c70, 
    fd=0x7f3c3c004340, vector=0x7f3c3c006580, count=1, offset=1966080,
flags=32769, 
    iobref=0x7f3c3c0068d0, xdata=0x0) at io-cache.c:1305
#19 0x00007f3c578d4798 in default_writev_resume (frame=0x7f3c3001d830,
this=0x7f3c4002b850, 
    fd=0x7f3c3c004340, vector=0x7f3c3c006580, count=1, off=1966080,
flags=32769, 
    iobref=0x7f3c3c0068d0, xdata=0x0) at defaults.c:1831
--Type <RET> for more, q to quit, c to continue without paging--
#20 0x00007f3c5782533b in call_resume_wind (stub=0x7f3c3001b6f0) at
call-stub.c:2085
#21 0x00007f3c5783710c in call_resume (stub=0x7f3c3001b6f0) at call-stub.c:2555
#22 0x00007f3c45665362 in open_and_resume (this=0x7f3c4002b850,
fd=0x7f3c3c004340, 
    stub=0x7f3c3001b6f0) at open-behind.c:480
#23 0x00007f3c45666a5c in ob_writev (frame=0x7f3c3001d830, this=0x7f3c4002b850, 
    fd=0x7f3c3c004340, iov=0x7f3c3c001e30, count=1, offset=1966080,
flags=32769, 
    iobref=0x7f3c3c0068d0, xdata=0x0) at open-behind.c:678
#24 0x00007f3c4565545d in qr_writev (frame=0x7f3c300088e0, this=0x7f3c4002d440, 
    fd=0x7f3c3c004340, iov=0x7f3c3c001e30, count=1, offset=1966080,
flags=32769, 
    iobref=0x7f3c3c0068d0, xdata=0x0) at quick-read.c:849
#25 0x00007f3c4563601e in mdc_writev (frame=0x7f3c300066d0,
this=0x7f3c4002f010, 
    fd=0x7f3c3c004340, vector=0x7f3c3c001e30, count=1, offset=1966080,
flags=32769, 
    iobref=0x7f3c3c0068d0, xdata=0x0) at md-cache.c:2082
#26 0x00007f3c578d4798 in default_writev_resume (frame=0x7f3c3c006df0,
this=0x7f3c40030c00, 
    fd=0x7f3c3c004340, vector=0x7f3c3c001e30, count=1, off=1966080,
flags=32769, 
    iobref=0x7f3c3c0068d0, xdata=0x0) at defaults.c:1831
#27 0x00007f3c5782533b in call_resume_wind (stub=0x7f3c3c009950) at
call-stub.c:2085
#28 0x00007f3c5783710c in call_resume (stub=0x7f3c3c009950) at call-stub.c:2555
#29 0x00007f3c4561b372 in iot_worker (data=0x7f3c40040a30) at io-threads.c:232
#30 0x00007f3c5757e5a2 in start_thread () from /lib64/libpthread.so.0
#31 0x00007f3c571cb023 in clone () from /lib64/libc.so.6
(gdb) fr 11
#11 0x00007f3c456e117d in error_gen_writev (frame=0x7f3c300088e0,
this=0x7f3c400223d0, fd=0x7f3c3c004340, vector=0x7f3c44cbb760, count=2,
off=1703936, flags=32769, iobref=0x7f3c3c00b420, 
    xdata=0x0) at error-gen.c:771
771         STACK_WIND_TAIL(frame, FIRST_CHILD(this),
FIRST_CHILD(this)->fops->writev,
(gdb) p count
$1 = 2


Actual results:


Expected results:


Additional info:

-- 
You are receiving this mail because:
You are on the CC list for the bug.
You are the assignee for the bug.


More information about the Bugs mailing list