At Mon, 17 Oct 2011 17:42:27 +0100, Chris Webb wrote: > > MORITA Kazutaka <morita.kazutaka at lab.ntt.co.jp> writes: > > > Sorry, I have no idea why your sheep daemons return EIO errors. I > > thought that the reason was the offset (or length) was not aligned, > > but it looks wrong. > > > > I've sent a patch to show an error reason when the sheep daemon > > returns SD_RES_EIO. Can you pull the vdiattr branch and try again? > > Hi Kazutaka. I pulled the vdiattr branch, did a make clean && make, and then > retested using that. > > The first 4MB chunk uploaded successfully, and then the second caused collie > to segfault: > > [4707] collie vdi write d5e2e937-2a25-415b-b9e0-ec931ff64c43 8388608 > 4728 Segmentation fault (core dumped) collie vdi write d5e2e937-2a25-415b-b9e0-ec931ff64c43 8388608 > Exit code: 139 > > This is > > (gdb) bt > #0 0x00007f95f654ed38 in memset () from /lib/libc.so.6 > #1 0x000000000040536d in vdi_write (argc=<value optimized out>, argv=<value optimized out>) at vdi.c:1141 > #2 0x0000000000402543 in main (argc=5, argv=0x7fff4194d2c8) at collie.c:343 > > which is > > /* exit after this buffer is sent */ > memset(buf + (len - remain), 0, remain); > > I can reproduce this fairly reliably with > > 0026# dd if=/dev/zero bs=1k count=4096 | collie vdi write d5e2e937-2a25-415b-b9e0-ec931ff64c43 8388608 > 4096+0 records in > 4096+0 records out > 4194304 bytes (4.2 MB) copied, 0.211225 s, 19.9 MB/s > Segmentation fault (core dumped) Thanks for your testing! There was a trivial bug in collie/vdi.c. I've sent a patch and pushed it to vdiattr branch. It may solve all of your problems. Thanks, Kazutaka |