On Thu, 06/06 12:01, Richard W.M. Jones wrote: > On Thu, Jun 06, 2013 at 02:25:46PM +0800, Fam Zheng wrote: > > v7: > > 13: Added: > > curl: change timeout to 30 seconds > > I tested this against: > > (1) HTTP to Apache server over slow but local wifi. > > (2) HTTP to a remote ISO (on another continent). > > Test (1) is fine. > > Test (2) gives plenty of I/O errors. I guess that 30 seconds isn't > sufficient here. > > I should note that current upstream qemu *works* in both cases. > Although the timeout in current qemu is much shorter (5 seconds), for > some reason this does not affect the test. > > I'm also confused about what problem this patch series is trying to > fix, since upstream qemu works fine for me with the latest curl. >
The weird thing is it doesn't work for me, I'm sure something is wrong with current upstream, although not totally broken. $./qemu-io http://localhost/vm/arch.raw -c 'read -v 0 512' (stuck here forever, no output) Attach with gdb: (gdb) bt #0 aio_dispatch (ctx=0xaa1af230) at aio-posix.c:128 #1 0x00007f6fa96a18f7 in aio_poll (ctx=0x7f6faa1afa00, blocking=true) at aio-posix.c:190 #2 0x00007f6fa96ecabc in qemu_aio_wait () at main-loop.c:484 #3 0x00007f6fa96a7530 in bdrv_rwv_co (bs=0x7f6faa1b9540, sector_num=0, qiov=0x7fffacf403b0, is_write=false) at block.c:2216 #4 0x00007f6fa96a75ca in bdrv_rw_co (bs=0x7f6faa1b9540, sector_num=0, buf=0x7fffacf406f0 "", nb_sectors=4, is_write=false) at block.c:2235 #5 0x00007f6fa96a7629 in bdrv_read (bs=0x7f6faa1b9540, sector_num=0, buf=0x7fffacf406f0 "", nb_sectors=4) at block.c:2242 #6 0x00007f6fa96a78f5 in bdrv_pread (bs=0x7f6faa1b9540, offset=0, buf=0x7fffacf406f0, count1=2048) at block.c:2304 #7 0x00007f6fa96a36f4 in find_image_format ( bs=0x7f6faa1b9540, filename=0x7fffacf4441d "http://localhost/vm/arch.raw", pdrv=0x7fffacf40f28) at block.c:542 #8 0x00007f6fa96a4a8a in bdrv_open (bs=0x7f6faa1b5b00, filename=0x7fffacf4441d "http://localhost/vm/arch.raw", options=0x7f6faa1b7500, flags=24578, drv=0x0) at block.c:1055 #9 0x00007f6fa970e803 in openfile ( name=0x7fffacf4441d "http://localhost/vm/arch.raw", flags=16386, growable=0) at qemu-io.c:1812 #10 0x00007f6fa970ef5b in main (argc=4, argv=0x7fffacf43308) at qemu-io.c:2055 The BlockDriverState looks normal, just that libcurl not making any progress (no callback, no timeout) -- Fam