1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
|
id = 522
title = "qemu gets SIGSEGV when starting with vhost-user-blk-pci device"
state = "closed"
created_at = "2021-08-10T09:07:40.104Z"
closed_at = "2021-08-12T12:50:52.614Z"
labels = ["Closed::Fixed", "Storage"]
url = "https://gitlab.com/qemu-project/qemu/-/issues/522"
host-os = "Fedora 35(rawhide)"
host-arch = "x86_64"
qemu-version = "qemu-6.0.0-12.fc35.x86_64"
guest-os = "n/a"
guest-arch = "n/a"
description = """as subject"""
reproduce = """1. Prepare an qemu-storage-daemon process for vhost-user
```
qemu-img create /tmp/test 100M
```
```
/usr/bin/qemu-storage-daemon --blockdev '{"driver":"file","filename":"/var/lib/libvirt/images/test.img","node-name":"libvirt-1-storage","auto-read-only":true,"discard":"unmap"}' --blockdev '{"node-name":"libvirt-1-format","read-only":false,"driver":"raw","file":"libvirt-1-storage"}' --export vhost-user-blk,id=vhost-user-blk0,node-name=libvirt-1-format,addr.type=unix,addr.path=/tmp/vhost.sock,writable=on --chardev stdio,mux=on,id=char0
```
2. Run the qemu cmdline above. Then SIGSEGV.
And the error of qemu-storage-daemon:`qemu-storage-daemon: vu_panic: Invalid queue index: 1`"""
additional = """Backtrace:
```
#0 0x0000557105198937 in vhost_user_read_cb (source=0x55710677be90, condition=<optimized out>, opaque=0x7ffe8b208ee0) at ../hw/virtio/vhost-user.c:313
#1 0x00007f7e7ec422af in g_main_dispatch (context=0x557107b02070) at ../glib/gmain.c:3344
#2 g_main_context_dispatch (context=0x557107b02070) at ../glib/gmain.c:4062
#3 0x00007f7e7ec96df8 in g_main_context_iterate.constprop.0 (context=0x557107b02070, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/gmain.c:4138
#4 0x00007f7e7ec41873 in g_main_loop_run (loop=0x557107b02570) at ../glib/gmain.c:4336
#5 0x000055710519770a in vhost_user_read (dev=dev@entry=0x7f7df46443f8, msg=msg@entry=0x7ffe8b208f50) at ../hw/virtio/vhost-user.c:402
#6 0x000055710519808f in vhost_user_get_config (dev=0x7f7df46443f8, config=0x7f7df46443ac "", config_len=60) at ../hw/virtio/vhost-user.c:2133
#7 0x0000557105152af1 in vhost_user_blk_device_realize (dev=0x7f7df46441b0, errp=<optimized out>) at ../hw/block/vhost-user-blk.c:503
#8 0x000055710518cb9c in virtio_device_realize (dev=0x7f7df46441b0, errp=0x7ffe8b2092e0) at ../hw/virtio/virtio.c:3660
#9 0x00005571051d7abd in device_set_realized (obj=<optimized out>, value=<optimized out>, errp=0x7ffe8b209360) at ../hw/core/qdev.c:761
#10 0x00005571051da62a in property_set_bool (obj=0x7f7df46441b0, v=<optimized out>, name=<optimized out>, opaque=0x55710653c150, errp=0x7ffe8b209360) at ../qom/object.c:2257
#11 0x00005571051dd3ac in object_property_set (obj=obj@entry=0x7f7df46441b0, name=name@entry=0x55710541bab9 "realized", v=v@entry=0x557107afbc80, errp=errp@entry=0x7ffe8b209470)
at ../qom/object.c:1402
#12 0x00005571051e08f4 in object_property_set_qobject
(obj=obj@entry=0x7f7df46441b0, name=name@entry=0x55710541bab9 "realized", value=value@entry=0x557107afbbc0, errp=errp@entry=0x7ffe8b209470) at ../qom/qom-qobject.c:28
#13 0x00005571051dd9c9 in object_property_set_bool (obj=0x7f7df46441b0, name=0x55710541bab9 "realized", value=<optimized out>, errp=0x7ffe8b209470) at ../qom/object.c:1472
#14 0x0000557104fe813c in pci_qdev_realize (qdev=<optimized out>, errp=<optimized out>) at ../hw/pci/pci.c:2117
#15 0x00005571051d7abd in device_set_realized (obj=<optimized out>, value=<optimized out>, errp=0x7ffe8b209590) at ../hw/core/qdev.c:761
#16 0x00005571051da62a in property_set_bool (obj=0x7f7df463c010, v=<optimized out>, name=<optimized out>, opaque=0x55710653c150, errp=0x7ffe8b209590) at ../qom/object.c:2257
#17 0x00005571051dd3ac in object_property_set (obj=obj@entry=0x7f7df463c010, name=name@entry=0x55710541bab9 "realized", v=v@entry=
0x557107af5e80, errp=errp@entry=0x5571057e2db0 <error_fatal>) at ../qom/object.c:1402
#18 0x00005571051e08f4 in object_property_set_qobject
(obj=obj@entry=0x7f7df463c010, name=name@entry=0x55710541bab9 "realized", value=value@entry=0x557107af5e40, errp=errp@entry=0x5571057e2db0 <error_fatal>) at ../qom/qom-qobject.c:28
#19 0x00005571051dd9c9 in object_property_set_bool (obj=0x7f7df463c010, name=name@entry=0x55710541bab9 "realized", value=value@entry=true, errp=errp@entry=0x5571057e2db0 <error_fatal>)
at ../qom/object.c:1472
#20 0x00005571051d8052 in qdev_realize (dev=<optimized out>, bus=bus@entry=0x5571073ffeb0, errp=errp@entry=0x5571057e2db0 <error_fatal>) at ../hw/core/qdev.c:389
#21 0x0000557104ec5e28 in qdev_device_add (opts=0x557106534000, errp=errp@entry=0x5571057e2db0 <error_fatal>) at ../softmmu/qdev-monitor.c:674
#22 0x00005571050f4bf3 in device_init_func (opaque=<optimized out>, opts=<optimized out>, errp=0x5571057e2db0 <error_fatal>) at ../softmmu/vl.c:1212
#23 0x0000557105302282 in qemu_opts_foreach (list=<optimized out>, func=func@entry=0x5571050f4be0 <device_init_func>, opaque=opaque@entry=0x0, errp=errp@entry=0x5571057e2db0 <error_fatal>)
at ../util/qemu-option.c:1168
#24 0x00005571050f7532 in qemu_create_cli_devices () at ../softmmu/vl.c:2587
#25 qmp_x_exit_preconfig (errp=<optimized out>) at ../softmmu/vl.c:2635
#26 0x00005571050fb5ac in qmp_x_exit_preconfig (errp=<optimized out>) at ../softmmu/vl.c:2629
#27 qemu_init (argc=<optimized out>, argv=<optimized out>, envp=<optimized out>) at ../softmmu/vl.c:3669
#28 0x0000557104e87b1d in main (argc=<optimized out>, argv=<optimized out>, envp=<optimized out>) at ../softmmu/main.c:49
```
Get full threads backtrace on the attachment [gdb.zip](/uploads/3cbc168cad60a1472e9e3f323207de9d/gdb.zip)"""
|