Bug #3340
closedosmo-trx-lms doesn't exit nor recover if device is unplugged
100%
Description
Especially with USB based devices, it's not completely unlikely that once upon a time there is a bus reset or some other event that makes the device disappear.
The current behavior of osmo-trx-lms is to start spewing error messages, but it will not terminate, nor will it recover after the USB device is re-attached.
Wed Jun 13 15:34:30 2018 DMAIN <0000> LMSDevice.cpp:509 [tid=140361119426304] LMS: Device receive timed out Wed Jun 13 15:34:30 2018 DMAIN <0000> radioInterface.cpp:319 [tid=140361119426304] Receive error 340 Wed Jun 13 15:34:30 2018 DMAIN <0000> LMSDevice.cpp:507 [tid=140361119426304] chan 0 recv buffer of len 0 expect dc7d50 got 0 (0) diff=ffffffffff2382b0 Wed Jun 13 15:34:30 2018 DMAIN <0000> LMSDevice.cpp:509 [tid=140361119426304] LMS: Device receive timed out Wed Jun 13 15:34:30 2018 DMAIN <0000> radioInterface.cpp:319 [tid=140361119426304] Receive error 0 Wed Jun 13 15:34:30 2018 DMAIN <0000> LMSDevice.cpp:507 [tid=140361119426304] chan 0 recv buffer of len 0 expect dc7d50 got 0 (0) diff=ffffffffff2382b0 Wed Jun 13 15:34:30 2018 DMAIN <0000> LMSDevice.cpp:509 [tid=140361119426304] LMS: Device receive timed out Wed Jun 13 15:34:30 2018 DMAIN <0000> radioInterface.cpp:319 [tid=140361119426304] Receive error 0 Wed Jun 13 15:34:30 2018 DMAIN <0000> LMSDevice.cpp:507 [tid=140361119426304] chan 0 recv buffer of len 0 expect dc7d50 got 0 (0) diff=ffffffffff2382b0
I think the easiest would be to exit the program and have systemd respawn it, like we do with other osmocom programs
Related issues
Updated by laforge almost 6 years ago
- Related to Feature #2919: Native LimeSDR support added
Updated by pespin over 5 years ago
Improved the situation with following patches:
remote: https://gerrit.osmocom.org/#/c/osmo-trx/+/10739 Logger: Disable pthread cancel point inside Logger destructor
remote: https://gerrit.osmocom.org/#/c/osmo-trx/+/10740 cosmetic: Fix trailing whitespace
remote: https://gerrit.osmocom.org/#/c/osmo-trx/+/10741 radioInterface: forward errors from RadioDevice to Transceiver in recv path
remote: https://gerrit.osmocom.org/#/c/osmo-trx/+/10742 lms: Return error on device read timeout
remote: https://gerrit.osmocom.org/#/c/osmo-trx/+/10743 osmo-trx: Add osmo_signal to stop whole transceiver chain correctly on error
remote: https://gerrit.osmocom.org/#/c/osmo-trx/+/10744 radioInterface: Fix variable storing integer return value
So after those patches are applied, when I disconnect the usb plug of the device it will signal that the device is failing and osmo-trx will destroy the transceiver object (and all the other objects behind it) and once it's done, it will end the process.
Updated by pespin over 5 years ago
- Status changed from New to Feedback
- % Done changed from 0 to 90
Updated by pespin over 5 years ago
- Status changed from Feedback to Resolved
- % Done changed from 90 to 100
Merged, closing.