Please read this before reporting a bug:
https://wiki.archlinux.org/title/Bug_reporting_guidelines
Do NOT report bugs when a package is just outdated, or it is in the AUR. Use the 'flag out of date' link on the package page, or the Mailing List.
REPEAT: Do NOT report bugs for outdated packages!
https://wiki.archlinux.org/title/Bug_reporting_guidelines
Do NOT report bugs when a package is just outdated, or it is in the AUR. Use the 'flag out of date' link on the package page, or the Mailing List.
REPEAT: Do NOT report bugs for outdated packages!
FS#42567 - [lirc-utils] lircd recieves segfault on USB-device disconnect.
Attached to Project:
Arch Linux
Opened by Dikiy (dikiy) - Sunday, 26 October 2014, 17:09 GMT
Last edited by Lukas Fleischer (lfleischer) - Tuesday, 20 January 2015, 22:43 GMT
Opened by Dikiy (dikiy) - Sunday, 26 October 2014, 17:09 GMT
Last edited by Lukas Fleischer (lfleischer) - Tuesday, 20 January 2015, 22:43 GMT
|
DetailsDescription:
lircd segfaults if I disconnect an USB-disk. Additional info: I have an USB IR-reciever, driven with atilibusb. * package versions lirc-utils 0.9.1.a-7 libusb 1.0.19-1 * config and/or log files etc. core-dump included Steps to reproduce: 1. start lircd through systemctl: sudo systemctl start lircd 2. start irexec (from user): irexec -d 3. connect the USB-hard-drive (it will automounts through udiskie+udisks2) 4. unmount the drive 5. plug out the drive. |
This task depends upon
Closed by Lukas Fleischer (lfleischer)
Tuesday, 20 January 2015, 22:43 GMT
Reason for closing: No response
Tuesday, 20 January 2015, 22:43 GMT
Reason for closing: No response
core.xz
dmesg.txt
warning: Could not load shared library symbols for linux-gate.so.1.
Do you need "set solib-search-path" or "set sysroot"?
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/usr/lib/libthread_db.so.1".
Core was generated by `/usr/bin/lircd --driver=atilibusb --device=/dev/lirc0 --nodaemon'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0 0xb7583536 in pthread_mutex_lock () from /usr/lib/libpthread.so.0
(gdb) backtrace
#0 0xb7583536 in pthread_mutex_lock () from /usr/lib/libpthread.so.0
#1 0xb7325cff in libusb_unref_device () from /usr/lib/libusb-1.0.so.0
#2 0xb732a04c in ?? () from /usr/lib/libusb-1.0.so.0
#3 0xb732ab47 in libusb_handle_events_timeout_completed () from /usr/lib/libusb-1.0.so.0
#4 0xb732acbd in libusb_handle_events_completed () from /usr/lib/libusb-1.0.so.0
#5 0xb732b5f0 in ?? () from /usr/lib/libusb-1.0.so.0
#6 0xb732b6e2 in ?? () from /usr/lib/libusb-1.0.so.0
#7 0xb759867f in ?? () from /usr/lib/libusb-0.1.so.4
#8 0x0805bd80 in ?? ()
#9 0x0804d4c9 in ?? ()
#10 0x080511be in ?? ()
#11 0x080513da in ?? ()
#12 0x0804bae9 in ?? ()
#13 0xb73b0e5e in __libc_start_main () from /usr/lib/libc.so.6
#14 0x0804bb0a in ?? ()
Do you need "set solib-search-path" or "set sysroot"?
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/usr/lib/libthread_db.so.1".
Core was generated by `/usr/bin/lircd --driver=atilibusb --device=/dev/lirc0 --nodaemon'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0 0xb7574536 in pthread_mutex_lock () from /usr/lib/libpthread.so.0
(gdb) backtrace
#0 0xb7574536 in pthread_mutex_lock () from /usr/lib/libpthread.so.0
#1 0xb7341cff in libusb_unref_device () from /usr/lib/libusb-1.0.so.0
#2 0xb734604c in ?? () from /usr/lib/libusb-1.0.so.0
#3 0xb7346b47 in libusb_handle_events_timeout_completed () from /usr/lib/libusb-1.0.so.0
#4 0xb7346cbd in libusb_handle_events_completed () from /usr/lib/libusb-1.0.so.0
#5 0xb73475f0 in ?? () from /usr/lib/libusb-1.0.so.0
#6 0xb73476e2 in ?? () from /usr/lib/libusb-1.0.so.0
#7 0xb758967f in ?? () from /usr/lib/libusb-0.1.so.4
#8 0x08059e90 in usb_read_loop (fd=8) at hw_atilibusb.c:301
#9 0x08059b03 in ati_init () at hw_atilibusb.c:155
#10 0x0804c506 in add_client (sock=4) at lircd.c:705
#11 0x0804fd9c in waitfordata (maxusec=0) at lircd.c:2012
#12 0x0804fe8a in loop () at lircd.c:2032
#13 0x0805091d in main (argc=4, argv=0xbffa0054) at lircd.c:2408
#0 0xb75ad536 in pthread_mutex_lock () from /usr/lib/libpthread.so.0
(gdb) backtrace
#0 0xb75ad536 in pthread_mutex_lock () from /usr/lib/libpthread.so.0
#1 0xb737eb2a in libusb_unref_device (dev=0xb6700e90) at core.c:1001
#2 0xb738351f in handle_events (ctx=ctx@entry=0x9ec3040, tv=tv@entry=0xbfba8978) at io.c:2056
#3 0xb73840b9 in libusb_handle_events_timeout_completed (ctx=ctx@entry=0x9ec3040, tv=tv@entry=0xbfba89b8,
completed=completed@entry=0xbfba8a5c) at io.c:2174
#4 0xb738420b in libusb_handle_events_completed (ctx=ctx@entry=0x9ec3040, completed=completed@entry=0xbfba8a5c) at io.c:2273
#5 0xb7384be2 in sync_transfer_wait_for_completion (transfer=transfer@entry=0x9ec5150) at sync.c:50
#6 0xb7384ccc in do_sync_bulk_transfer (dev_handle=0x9ec50e0, endpoint=<optimized out>, buffer=0xbfba8ae7 "\024]\210",
length=5, transferred=0xbfba8aac, timeout=60000, type=3 '\003') at sync.c:179
#7 0xb738514a in libusb_interrupt_transfer (dev_handle=<optimized out>, endpoint=<optimized out>, data=<optimized out>,
data@entry=0xbfba8ae7 "\024]\210", length=<optimized out>, length@entry=5, transferred=<optimized out>,
transferred@entry=0xbfba8aac, timeout=timeout@entry=60000) at sync.c:305
#8 0xb75c257f in usb_interrupt_io (ep=<optimized out>, bytes=0xbfba8ae7 "\024]\210", size=5, timeout=60000, dev=<optimized out>)
at core.c:810
#9 0x08059e90 in usb_read_loop (fd=8) at hw_atilibusb.c:301
#10 0x08059b03 in ati_init () at hw_atilibusb.c:155
#11 0x0804c506 in add_client (sock=4) at lircd.c:705
#12 0x0804fd9c in waitfordata (maxusec=0) at lircd.c:2012
#13 0x0804fe8a in loop () at lircd.c:2032
#14 0x0805091d in main (argc=4, argv=0xbfba8e84) at lircd.c:2408.
--------------------------------
And I found something new out: if I plug in the device, _then_ start lircd daemon + irexec, and then plug the device out, the lircd does not crash.