Open
Description
OS: fedora 36, glibc-2.35, kernel-6.1.9
rust: 1.67.0
wchisp: git and v0.20
Parts: tested with flappyboard and ch32v103
Problem:
run only once, hang on second running.
For example, run 'wchisp probe' once, no matter run 'wchisp xxx' again, it will hang.
Backtrace:
Ctrl-C to stop it, then 'bt'
(gdb) bt
#0 0x00007ffff7d05bcf in poll () from /lib64/libc.so.6
#1 0x00005555556f1c5e in usbi_wait_for_events (ctx=0x5555559cbb10,
reported_events=0x7fffffff7a00, timeout_ms=60000)
at libusb/libusb/os/events_posix.c:226
#2 0x00005555556e975b in handle_events (ctx=0x5555559cbb10, tv=0x7fffffff7a50)
at libusb/libusb/io.c:2244
#3 0x00005555556e9a07 in libusb_handle_events_timeout_completed (ctx=0x5555559cbb10,
tv=0x7fffffff7a90, completed=0x7fffffff7b2c) at libusb/libusb/io.c:2361
#4 0x00005555556e9b2e in libusb_handle_events_completed (ctx=0x5555559cbb10,
completed=0x7fffffff7b2c) at libusb/libusb/io.c:2459
#5 0x00005555556ea3f6 in sync_transfer_wait_for_completion (transfer=0x5555559c04c0)
at libusb/libusb/sync.c:49
#6 0x00005555556ea56e in do_sync_bulk_transfer (dev_handle=0x5555559d7940,
endpoint=130 '\202', buffer=0x7fffffff7cb8 "", length=64,
transferred=0x7fffffff7c04, timeout=0, type=2 '\002') at libusb/libusb/sync.c:194
#7 0x00005555556ea690 in libusb_bulk_transfer (dev_handle=0x5555559d7940,
endpoint=130 '\202', data=0x7fffffff7cb8 "", length=64,
transferred=0x7fffffff7c04, timeout=0) at libusb/libusb/sync.c:278
#8 0x00005555556126e5 in rusb::device_handle::DeviceHandle<rusb::context::Context>::read_bulk<rusb::context::Context> (self=0x7fffffff90e0, endpoint=130, buf=...,
timeout=...)
at /home/cjacker/.cargo/registry/src/g.yxqyang.asia-1ecc6299db9ec823/rusb-0.9.1/src/devi--Type <RET> for more, q to quit, c to continue without paging--
ce_handle.rs:454
#9 0x0000555555611ff6 in wchisp::transport::usb::{impl#1}::recv_raw (
self=0x7fffffff90e0, timeout=...) at src/transport/usb.rs:105
#10 0x000055555563858b in wchisp::transport::Transport::transfer_with_wait<wchisp::transport::usb::UsbTransport> (self=0x7fffffff90e0, cmd=..., wait=...)
at src/transport/mod.rs:27
#11 0x0000555555637ff3 in wchisp::transport::Transport::transfer<wchisp::transport::usb::UsbTransport> (self=0x7fffffff90e0, cmd=...) at src/transport/mod.rs:19
#12 0x000055555564011c in wchisp::flashing::Flashing<wchisp::transport::usb::UsbTransport>::get_chip (transport=0x7fffffff90e0) at src/flashing.rs:28
#13 0x000055555559f49d in wchisp::main () at src/main.rs:130