Seg Fault py-usb on alpine armhf in x86_64 docker container with qemu_arm_static
Steps to reproduce:
docker run —rm —privileged multiarch/qemu-user-static:register —reset
Dockerfile:
FROM multiarch/alpine:armhf-edge
RUN echo ‘http://dl-cdn.alpinelinux.org/alpine/edge/testing’ >>
/etc/apk/repositories
RUN apk update
RUN apk add python2 libusb py-usb
docker build .
docker run -it —rm /bin/sh
python2
import os
os.environ[‘PYUSB_DEBUG’] = ‘debug’
import usb.core
usb.core.find()
Expected output:
Command runs without seg fault but does load libusb-1.0.so.0.1.0 and tries to enumerate usb devices
Actual output:
Python 2.7.15 (default, Nov 7 2018, 16:59:23)
[GCC 8.2.0] on linux2
Type “help”, “copyright”, “credits” or “license” for more information.
>>>import os
>>>os.environ[‘PYUSB_DEBUG’] = ‘debug’
>>>import usb.core
>>>usb.core.find()
2018-12-12 19:36:35,179
DEBUG:usb.backend.libusb1:LibUSB.init_()
2018-12-12 19:36:35,185 ERROR:usb.backend.libusb1:Error loading libusb
1.0 backend
Traceback (most recent call last):
File “/usr/lib/python2.7/site-packages/usb/backend/libusb1.py”, line
945, in get_backend
return _LibUSB(_lib)
File “/usr/lib/python2.7/site-packages/usb/_debug.py”, line 60, in
do_trace
return f(args,*named_args)
File “/usr/lib/python2.7/site-packages/usb/backend/libusb1.py”, line
708, in init
_check(self.lib.libusb_init(byref(self.ctx)))
File “/usr/lib/python2.7/site-packages/usb/backend/libusb1.py”, line
595, in _check
raise USBError(_strerror(ret), ret, _libusb_errno[ret])
USBError: [Errno None] Other error
2018-12-12 19:36:35,191
DEBUG:usb.backend.libusb1:_LibUSB._finalize_object()
Segmentation fault (core dumped)
(from redmine: issue id 9765, created on 2018-12-12)