При попытке использования утилиты sispmtcl с ключом -s под ядром 2.6.18-ovz-rhel-alt7 она сегфолтится: $ strace sispmctl -o 1 ...... open("/sys/bus/usb/devices", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 3 getdents(3, /* 14 entries */, 32768) = 384 stat("/sys/bus/usb/devices/1-1/descriptors", 0x7fff9270a8a0) = -1 ENOENT (No such file or directory) open("/sys/bus/usb/devices/1-1/busnum", O_RDONLY) = -1 ENOENT (No such file or directory) close(3) = 0 --- SIGSEGV (Segmentation fault) @ 0 (0) --- +++ killed by SIGSEGV +++ http://lists.altlinux.org/pipermail/sisyphus/2009-August/341192.html Дальнейшее разбирательство в sisyphus@ показало, что проблема в недостаточной обработке ошибок в libusb{,-compat}: (gdb) bt #0 0x00002b7d2e6b2b9f in usbi_log (ctx=0x0, level=LOG_LEVEL_ERROR, function=0x2b7d2e6bb810 "sysfs_get_device_list", format=0x2b7d2e6bb1e0 "opendir devices failed errno=%d") at core.c:1431 #1 0x00002b7d2e6b824e in sysfs_get_device_list (ctx=0x0, _discdevs=0x7fff7cb6b050, usbfs_fallback=0x7fff7cb6b00c) at os/linux_usbfs.c:924 #2 0x00002b7d2e6b837a in op_get_device_list (ctx=0x0, _discdevs=0x7fff7cb6b050) at os/linux_usbfs.c:963 #3 0x00002b7d2e6b1ade in libusb_get_device_list (ctx=0x0, list=0x7fff7cb6b098) at core.c:560 #4 0x00002b7d2e15af28 in usb_find_busses () from /lib64/libusb-0.1.so.4 #5 0x000000000040185c in ?? () #6 0x00002b7d2e37c9dd in __libc_start_main () from /lib64/libc.so.6 Это NULL dereference в usbi_log() из libusb. Вызов libusb_init() завершился неудачно, в результате чего usbi_default_context остался непроинициализированным. Остальной код libusb на это не рассчитывает. Короче говоря, надо исправить обработку ошибок в libusb. -- ldv
Assigning.
Возможно, связанное: pcscd: pcscd startup succeeded kernel: [17235.180530] usb 1-2: USB disconnect, device number 6 pcscd: ccid_usb.c:638:WriteUSB() write failed (1/6): -4 No such device kernel: [17239.514262] usb 1-2: new full-speed USB device number 7 using xhci_hcd mtp-probe: checking bus 1, device 7: "/sys/devices/pci0000:00/0000:00:14.0/usb1/1-2" mtp-probe: bus: 1, device: 7 was not an MTP device kernel: [17239.717704] pcscd[10402]: segfault at 7fa970ff6f48 ip 00007fa970ff6f48 sp 00007fa970fe6d30 error 14 in libgpg-error.so.0.16.0[7fa971418000+11000] Ребята из Rutoken говорят, что это известная проблема libusb-1.0.19, которую уже победили и достаточно обновить пакет.
сегодня зарелизили libusb 1.0.20
Отправил собираться задание 149383 -- если нет возражений против http://git.altlinux.org/people/mike/packages/?p=libusb.git;a=commitdiff;h=73a324cb092f281feee71392b24523324fbe8330 то прошу пропустить. Технической возможности проверить с sispmctl уже нет, но известно (comment 2), что между 1.0.19 и 1.0.20 проводилась работа над обработкой ошибок.
libusb-1.0.20-alt1 -> sisyphus: * Sat Sep 19 2015 Michael Shigorin <mike@altlinux> 1.0.20-alt1 - 1.0.20 (closes: #21313) - minor spec cleanup