summary refs log tree commit diff stats
path: root/results/classifier/105/instruction/597575
diff options
context:
space:
mode:
Diffstat (limited to 'results/classifier/105/instruction/597575')
-rw-r--r--results/classifier/105/instruction/59757550
1 files changed, 50 insertions, 0 deletions
diff --git a/results/classifier/105/instruction/597575 b/results/classifier/105/instruction/597575
new file mode 100644
index 000000000..5b2ade447
--- /dev/null
+++ b/results/classifier/105/instruction/597575
@@ -0,0 +1,50 @@
+instruction: 0.711
+boot: 0.698
+graphic: 0.678
+KVM: 0.677
+device: 0.648
+other: 0.600
+mistranslation: 0.581
+vnc: 0.576
+semantic: 0.563
+network: 0.561
+assembly: 0.546
+socket: 0.542
+
+Hangs on HTTP errors when using the curl block driver
+
+Hi,
+
+It seems that qemu-kvm does not handle HTTP errors gracefully when using the curl block driver and a synchronous request is made (i.e. one using bdrv_read_em() for example). In these cases, if an HTTP error (such as 404 or 416) is returned, the aio thread exits but the main thread never finishes waiting for I/O completion, thus freezing KVM.
+
+Versions affected:
+At least 0.11.1 and 0.12.4 were tested and found to be affected.
+
+How to reproduce:
+Simply specify a non-existing path for an HTTP URL as a CDROM drive.
+kvm -drive file=test.img,format=qcow2,if=ide,index=0,boot=on -drive file=http://127.0.0.1/static/test1.iso,media=cdrom,index=2,if=ide -boot c
+
+qemu-kvm will hang on boot using 100% cpu as it will try to open the block device. At that point, the backtrace is (qemu-kvm-0.12.4):
+
+#0  0x000000000047aaaf in qemu_aio_wait () at aio.c:163
+#1  0x000000000047a055 in bdrv_read_em (bs=0x1592320, sector_num=0, buf=0x7fffcf7e9ae0 "¨\237~Ïÿ\177", nb_sectors=4)
+    at block.c:1939
+#2  0x0000000000479c0e in bdrv_pread (bs=0x1592320, offset=<value optimized out>, buf=0x7fffcf7e9ae0, count1=2048)
+    at block.c:716
+#3  0x000000000047a862 in bdrv_open2 (bs=0x1591a30, filename=0x1559f00 "http://127.0.0.1/static/test1.iso", 
+    flags=0, drv=0x84eca0) at block.c:316
+#4  0x000000000040dcb4 in drive_init (opts=0x1559e60, opaque=<value optimized out>, fatal_error=0x7fffcf7ea494)
+    at /build/buildd-qemu-kvm_0.12.4+dfsg-1~bpo50+1-amd64-KOah5G/qemu-kvm-0.12.4+dfsg/vl.c:2471
+#5  0x000000000040e086 in drive_init_func (opts=0x155db00, opaque=0x0)
+    at /build/buildd-qemu-kvm_0.12.4+dfsg-1~bpo50+1-amd64-KOah5G/qemu-kvm-0.12.4+dfsg/vl.c:2488
+#6  0x0000000000475421 in qemu_opts_foreach (list=<value optimized out>, func=0x40e070 <drive_init_func>, 
+    opaque=0x8495e0, abort_on_failure=12) at qemu-option.c:817
+#7  0x000000000040e9af in main (argc=7, argv=0x7fffcf7ea838, envp=<value optimized out>)
+    at /build/buildd-qemu-kvm_0.12.4+dfsg-1~bpo50+1-amd64-KOah5G/qemu-kvm-0.12.4+dfsg/vl.c:6011
+
+Thanks
+
+QEMU 0.11 / 0.12 are pretty much outdated nowadays ... can you still reproduce this issue with the latest version of QEMU?
+
+[Expired for QEMU because there has been no activity for 60 days.]
+