Bug 86002 - libusb hangs at init time
Summary: libusb hangs at init time
Status: RESOLVED NOTOURBUG
Alias: None
Product: Spice
Classification: Unclassified
Component: usbredir (show other bugs)
Version: unspecified
Hardware: Other All
: medium normal
Assignee: Hans de Goede
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2014-11-07 13:12 UTC by Marc-Andre Lureau
Modified: 2014-11-10 10:55 UTC (History)
0 users

See Also:
i915 platform:
i915 features:


Attachments

Description Marc-Andre Lureau 2014-11-07 13:12:47 UTC
I happen to reach this hang in the main loop, using virt-manager. No reproducer yet, but several libusb context creation/destration seems to play here.

#0  0x0000003618a0ec4d in recvmsg () at ../sysdeps/unix/syscall-template.S:81
#1  0x000000359dc08ed9 in udev_monitor_receive_device (udev_monitor=0x47d1cf0)
    at ../src/libudev/libudev-monitor.c:538
#2  0x00007fb7948367cd in linux_udev_hotplug_poll () at os/linux_udev.c:299
#3  0x00007fb794831632 in op_hotplug_poll () at os/linux_usbfs.c:505
#4  0x00007fb794828a0f in libusb_get_device_list (ctx=0x46cbd20, list=0x7fff549d2b30) at core.c:671
#5  0x00007fb794830853 in libusb_hotplug_register_callback (ctx=0x46cbd20, 
    events=(LIBUSB_HOTPLUG_EVENT_DEVICE_ARRIVED | LIBUSB_HOTPLUG_EVENT_DEVICE_LEFT), 
    flags=LIBUSB_HOTPLUG_ENUMERATE, vendor_id=-1, product_id=-1, dev_class=-1, 
    cb_fn=0x7fb795e37ded <spice_usb_device_manager_hotplug_cb>, user_data=0x2fe8100, handle=0x2fe80e8)
    at hotplug.c:260
#6  0x00007fb795e3684f in spice_usb_device_manager_initable_init (initable=0x2fe8100, cancellable=0x0, 
    err=0x7fff549d2f40) at usb-device-manager.c:297
#7  0x00007fb7a30dd4fe in g_initable_new_valist (object_type=<optimized out>, 
    first_property_name=0x7fb795f1aa5b "session", var_args=var_args@entry=0x7fff549d2c48, cancellable=0x0, 
    error=0x7fff549d2f40) at ginitable.c:228
#8  0x00007fb7a30dd5ec in g_initable_new (object_type=<optimized out>, cancellable=<optimized out>, 
    error=<optimized out>, first_property_name=<optimized out>) at ginitable.c:146
#9  0x00007fb795e385a8 in spice_usb_device_manager_get (session=0x483a390, err=0x7fff549d2f40)
    at usb-device-manager.c:1303
#10 0x000000361b205d8c in ffi_call_unix64 () at ../src/x86/unix64.S:76
#11 0x000000361b2056bc in ffi_call (cif=0x7fff549d2f50, fn=0x7fb795e384f4 <spice_usb_device_manager_get>, 
    rvalue=0x7fff549d2f30, avalue=0x7fff549d2e70) at ../src/x86/ffi64.c:522
#12 0x0000003646209e49 in g_callable_info_invoke () from /lib64/libgirepository-1.0.so.1
#13 0x000000364620b199 in g_function_info_invoke () from /lib64/libgirepository-1.0.so.1
#14 0x00007fb7a3da2ab7 in pygi_callable_info_invoke () from /usr/lib64/python2.7/site-packages/gi/_gi.so
#15 0x000000359ce4a0d3 in PyObject_Call () from /lib64/libpython2.7.so.1.0
#16 0x000000359cede37c in PyEval_EvalFrameEx () from /lib64/libpython2.7.so.1.0
#17 0x000000359cee0980 in PyEval_EvalFrameEx () from /lib64/libpython2.7.so.1.0
Comment 1 Marc-Andre Lureau 2014-11-10 10:55:12 UTC
It could be a libusb bug, there are some udev globals that are supposed to be protected by a linux_hotplug_lock.

However, since there is a double-close bug in virt-manager, this is most likely the reason for that hang. (see "tunnels: do not close unowned fd" patch in virt-tools list - currently in maintainance)


Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.