tags 745888 +upstream
thanks
Hi,
On 15:41 Mon 19 May , Steve Graham wrote:
Same behaviour as in previous report - jmtpfs returns with no error,
but any access to the
supposedly mounted filesystem hangs until the jmtpfs process is
killed.
Replacing the file /usr/lib/x86_64-linux-gnu/libmtp.so.9.1.0 (400744
bytes) from the current version
on unstable, AMD64, 1.1.6-51-g1a2669c~ds0-1, with
/usr/lib/x86_64-linux-gnu/libmtp.so.9.1.0 (388392
bytes) from 1.1.6-20-g1b9f164-1~bpo70+1 seems to fix the problem. (I
downloaded the deb from
wheezy-backports, and extracted and copied over the library as a quick test.)
Note that these two libraries with identical version numbers are
different files.
This is an upstream issue. Bisecting between upstream commits 1b9f164
(good) and 1a2669c (bad) points out:
b9a840c Async buffering for high-speed transfers.
as the culprit. Reverting this commit makes jmtpfs work again for me.
Now, this commit introduces a threaded bulk transfer worker for libusb
1.x. A backtrace of the worker thread from a stuck jmtpfs process looks like
this:
Thread 3 (Thread 0x7f879a76c700 (LWP 22394)):
#0 pthread_cond_timedwait@@GLIBC_2.3.2 ()
at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:238
#1 0x7f879ce75fe4 in libusb_wait_for_event (ctx=ctx@entry=0x1120b80,
tv=tv@entry=0x7f879a76afa0)
at ../../libusb/io.c:1832
#2 0x7f879ce76487 in libusb_handle_events_timeout_completed
(ctx=ctx@entry=0x1120b80,
tv=tv@entry=0x7f879a76afe0, completed=completed@entry=0x7f879a76b03c) at
../../libusb/io.c:2159
#3 0x7f879ce76540 in libusb_handle_events_completed
(ctx=ctx@entry=0x1120b80,
completed=completed@entry=0x7f879a76b03c) at ../../libusb/io.c:2236
#4 0x7f879ce76d91 in sync_transfer_wait_for_completion
(transfer=transfer@entry=0x7f8794004c48)
at ../../libusb/sync.c:50
#5 0x7f879ce76e69 in do_sync_bulk_transfer (dev_handle=0x1130ec0,
endpoint=optimized out,
buffer=buffer@entry=0x7f8794000be0 \f, length=12,
transferred=transferred@entry=0x7f879a76b0e4,
timeout=2, type=type@entry=2 '\002') at ../../libusb/sync.c:179
#6 0x7f879ce771f4 in libusb_bulk_transfer (dev_handle=optimized out,
endpoint=optimized out,
data=data@entry=0x7f8794000be0 \f, length=optimized out,
transferred=transferred@entry=0x7f879a76b0e4, timeout=optimized out) at
../../libusb/sync.c:256
#7 0x7f879d0bb35c in ptp_write_func (size=size@entry=12, data=0x1130c50,
written=written@entry=0x7f879a76b148, handler=0x7f879a76b150,
handler=0x7f879a76b150)
at libusb1-glue.c:1508
#8 0x7f879d0bd92d in ptp_usb_sendreq (params=0x11232f0,
req=0x7f879a76b770) at libusb1-glue.c:1700
#9 0x7f879d0a9b6d in ptp_transaction_new (params=0x11232f0,
ptp=0x7f879a76b770,
flags=optimized out, sendlen=0, handler=0x7f879a76b700) at ptp.c:156
#10 0x7f879d0a9dc9 in ptp_transaction (params=params@entry=0x11232f0,
ptp=ptp@entry=0x7f879a76b770, flags=flags@entry=2, sendlen=sendlen@entry=0,
data=data@entry=0x7f879a76b768, recvlen=recvlen@entry=0x7f879a76b764) at
ptp.c:404
#11 0x7f879d0aacd4 in ptp_getstorageids (params=params@entry=0x11232f0,
storageids=storageids@entry=0x7f879a76b7e0) at ptp.c:1142
#12 0x7f879d09f9f4 in LIBMTP_Get_Storage (device=0x11226f0, sortby=0) at
libmtp.c:3999
It looks like it ends up in some kind of deadlock.
Regards,
Apollon
--
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org