whoozle / android-file-transfer-linux

Android File Transfer for Linux (and macOS!)
http://whoozle.github.io/android-file-transfer-linux/
GNU Lesser General Public License v2.1
1.47k stars 120 forks source link

Perhaps instead of aborting, just have it try again? #302

Open jidanni opened 2 years ago

jidanni commented 2 years ago

While running the GUI, one notices

found  6  objects in  "/mnt/usb/thumb/DYY/DCIM/Camera/P_20190709_145447_1_vHDR_Auto_HP"
found  13  objects in  "/mnt/usb/thumb/DYY/DCIM/Camera/P_20191023_090706_vHDR_Auto"

Perhaps mention in FAQ why a single file would contain more than one "object".

Perhaps instead of aborting, just have it try again?:

downloading  2145 to "/mnt/usb/thumb/DYY/DCIM/Camera/P_20191022_163422_vHDR_Auto.jpg"
downloading  231 to "/mnt/usb/thumb/DYY/DCIM/Camera/P_20190321_141624_vHDR_Auto_HP.jpg"
drop message 566b, response: e3c3, transaction: a5107378, transaction: 00001726
10010 ms since the last poll call
downloading file  "/mnt/usb/thumb/DYY/DCIM/Camera/P_20190321_141624_vHDR_Auto_HP.jpg"  failed:  "timeout reaping usb urb"
downloading  95 to "/mnt/usb/thumb/DYY/DCIM/Camera/P_20181115_183132_vHDR_Auto_HP.jpg"
got unknown urb: 0x7f5047ffe510 of size 849135312
terminate called without an active exception
Aborted
jidanni commented 2 years ago

https://github.com/whoozle/android-file-transfer-linux/issues/194#issuecomment-925080756 mentions trying -R with the CLI. But there is no CLI documentation. #301

jidanni commented 2 years ago

Well OK, I transfered a few out of 2000 files. At least better than any other packages I found.

whoozle commented 2 years ago

This timeout bug is very weird, it happens with one kernel version but doesn't happens with another, also it happens with some specific cables, but doesn't happen with another. For some people -R is working, for some is causing this timeouts. When I have those, I tried wireshark and usbmon module to snoop on USB traffic. Turned out to be that some bit indicating end of the bulk transfer was actually set, but kernel didn't see it and therefore didn't wake up poll. Although this bit could be set by hw, so kernel didn't know.

If you want to get to the bottom of this, I could help you.