Description of problem: Disconnected USB dongle Version-Release number of selected component: solaar-1.1.1-1.fc35 Additional info: reporter: libreport-2.15.2 cgroup: 0::/user.slice/user-1000.slice/user/app.slice/app-gnome-solaar-3570.scope cmdline: /usr/bin/python3 -s /usr/bin/solaar --window=hide crash_function: read exception_type: OSError executable: /usr/bin/solaar interpreter: python3-3.10.2-1.fc35.x86_64 kernel: 5.16.7-200.fc35.x86_64 runlevel: N 5 type: Python3 uid: 1000 Truncated backtrace: base.py:270:_read:logitech_receiver.base.NoReceiver: {'reason': OSError(5, 'Input/output error')} Traceback (most recent call last): File "/usr/lib/python3.10/site-packages/logitech_receiver/base.py", line 266, in _read data = _hid.read(int(handle), _MAX_READ_SIZE, timeout) File "/usr/lib/python3.10/site-packages/hidapi/udev.py", line 371, in read data = _os.read(device_handle, bytes_count) OSError: [Errno 5] Input/output error During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/usr/lib/python3.10/site-packages/solaar/ui/window.py", line 396, in _device_selected _update_info_panel(device, full=True) File "/usr/lib/python3.10/site-packages/solaar/ui/window.py", line 795, in _update_info_panel _update_device_panel(device, _info._device, _info._buttons, full) File "/usr/lib/python3.10/site-packages/solaar/ui/window.py", line 766, in _update_device_panel _config_panel.update(device, is_online) File "/usr/lib/python3.10/site-packages/solaar/ui/config_panel.py", line 576, in update for s in device.settings: File "/usr/lib/python3.10/site-packages/logitech_receiver/device.py", line 319, in settings self._feature_settings_checked = _check_feature_settings(self, self._settings) File "/usr/lib/python3.10/site-packages/logitech_receiver/settings_templates.py", line 954, in check_feature_settings setting = check_feature(device, name, featureId, featureFn) File "/usr/lib/python3.10/site-packages/logitech_receiver/settings_templates.py", line 932, in check_feature if featureId not in device.features: File "/usr/lib/python3.10/site-packages/logitech_receiver/hidpp20.py", line 322, in __contains__ reply = self.device.request(0x0000, _pack('!H', ivalue)) File "/usr/lib/python3.10/site-packages/logitech_receiver/device.py", line 384, in request return _base.request( File "/usr/lib/python3.10/site-packages/logitech_receiver/base.py", line 431, in request reply = _read(handle, timeout) File "/usr/lib/python3.10/site-packages/logitech_receiver/base.py", line 270, in _read raise NoReceiver(reason=reason) logitech_receiver.base.NoReceiver: {'reason': OSError(5, 'Input/output error')} Local variables in innermost frame: handle: 23 timeout: 4000
Created attachment 1860539 [details] File: backtrace
Created attachment 1860540 [details] File: cpuinfo
Created attachment 1860541 [details] File: environ
Created attachment 1860542 [details] File: mountinfo
Created attachment 1860543 [details] File: namespaces
Created attachment 1860544 [details] File: open_fds
Thanks for reporting. Is it reproducible? Can you provide steps to reproduce and the output of `solaar show`? Please also make this bug public (or allow me to) so that I can reference it when reporting upstream.
(In reply to Dominik 'Rathann' Mierzejewski from comment #7) > Thanks for reporting. Is it reproducible? Can you provide steps to reproduce > and the output of `solaar show`? Please also make this bug public (or allow > me to) so that I can reference it when reporting upstream. Made the Bug public, hope that helps. The original issue appeared when I unplugged the USB dongle during normal operations (No Solaar window or command actively being used). I can somehow reproduce this issue when unplugging the USB dongle while `solaar show` is running. This is obviously not a good idea (and somehow expected), but still is how I can partially reproduce it: ~~~ Unifying Receiver Device path : /dev/hidraw5 USB id : 046d:C52B Serial : <OMITTED> Firmware : 24.11.B0036 Bootloader : 02.09 Other : AA.AC Has 1 paired device(s) out of a maximum of 6. Notifications: wireless (0x000100) Device activity counters: 1=246 1: MX Ergo Multi-Device Trackball Device path : /dev/hidraw11 WPID : 406F Codename : MX Ergo Kind : trackball Protocol : HID++ 4.5 Polling rate : 8 ms (125Hz) Serial number: CD006718 Model ID: B01D406F0000 Unit ID: B182D6C5 Bootloader: BOT 49.00.B0001 Firmware: MPM 06.03.B0022 Other: The power switch is located on the base. Supports 36 HID++ 2.0 features: solaar: error: Traceback (most recent call last): File "/usr/lib/python3.10/site-packages/logitech_receiver/base.py", line 217, in write _hid.write(int(handle), wdata) File "/usr/lib/python3.10/site-packages/hidapi/udev.py", line 342, in write raise OSError(_errno.EIO, 'written %d bytes out of expected %d' % (bytes_written, len(data))) OSError: [Errno 5] written 0 bytes out of expected 20 During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/usr/lib/python3.10/site-packages/solaar/cli/__init__.py", line 204, in run m.run(c, args, _find_receiver, _find_device) File "/usr/lib/python3.10/site-packages/solaar/cli/show.py", line 289, in run _print_device(dev) File "/usr/lib/python3.10/site-packages/solaar/cli/show.py", line 137, in _print_device _settings_templates.check_feature_settings(dev, dev_settings) File "/usr/lib/python3.10/site-packages/logitech_receiver/settings_templates.py", line 954, in check_feature_settings setting = check_feature(device, name, featureId, featureFn) File "/usr/lib/python3.10/site-packages/logitech_receiver/settings_templates.py", line 932, in check_feature if featureId not in device.features: File "/usr/lib/python3.10/site-packages/logitech_receiver/hidpp20.py", line 322, in __contains__ reply = self.device.request(0x0000, _pack('!H', ivalue)) File "/usr/lib/python3.10/site-packages/logitech_receiver/device.py", line 384, in request return _base.request( File "/usr/lib/python3.10/site-packages/logitech_receiver/base.py", line 421, in request write(ihandle, devnumber, request_data, long_message) File "/usr/lib/python3.10/site-packages/logitech_receiver/base.py", line 221, in write raise NoReceiver(reason=reason) logitech_receiver.base.NoReceiver: {'reason': OSError(5, 'written 0 bytes out of expected 20')} ~~~ Complete output for `solaar show`: ~~~ $ solaar show Solaar version 1.1.1 Lightspeed Receiver Device path : /dev/hidraw3 USB id : 046d:C545 Serial : <OMITTED> Firmware : 02.01.B0006 Bootloader : 00.01 Other : 9D.9F Has 1 paired device(s) out of a maximum of 2. Notifications: wireless, software present (0x000900) Device activity counters: 1=114 1: G915 TKL LIGHTSPEED Wireless RGB Mechanical Gaming Keyboard Device path : None WPID : 408E Codename : G915 TKL Kind : keyboard Protocol : HID++ 4.2 Polling rate : 8 ms (125Hz) Serial number: <OMITTED> Model ID: B35F408EC343 Unit ID: <OMITTED> Bootloader: BL1 12.00.B0017 Other: Firmware: MPK 14.01.B0021 Other: Other: The power switch is located on the top left corner. Supports 38 HID++ 2.0 features: 0: ROOT {0000} 1: FEATURE SET {0001} 2: DEVICE FW VERSION {0003} Firmware: Bootloader BL1 12.00.B0017 00008B79E978 Firmware: Other Firmware: Firmware MPK 14.01.B0021 408E5E599E54 Firmware: Other Firmware: Other Unit ID: <OMITTED> Model ID: B35F408EC343 Transport IDs: {'btleid': 'B35F', 'wpid': '408E', 'usbid': 'C343'} 3: DEVICE NAME {0005} Name: G915 TKL LIGHTSPEED Wireless RGB Mechanical Gaming Keyboard Kind: keyboard 4: WIRELESS DEVICE STATUS {1D4B} 5: RESET {0020} 6: DEVICE FRIENDLY NAME {0007} Friendly Name: G915 TKL 7: BATTERY VOLTAGE {1001} Battery: 3781mV, discharging, 40. 8: CHANGE HOST {1814} Change Host : 1:wetterhorn 9: HOSTS INFO {1815} Host 0 (paired): wetterhorn Host 1 (paired): 10: RGB EFFECTS {8071} 11: PER KEY LIGHTING V2 {8081} 12: REPROG CONTROLS V4 {1B04} Key/Button Diversion (saved): {'209': 0, '210': 0} Key/Button Diversion : {'209': 0, '210': 0} 13: REPORT HID USAGE {1BC0} 14: ENCRYPTION {4100} 15: KEYBOARD DISABLE BY USAGE {4522} 16: KEYBOARD LAYOUT 2 {4540} 17: GKEY {8010} Divert G Keys (saved): False Divert G Keys : False 18: MKEYS {8020} 19: MR {8030} 20: BRIGHTNESS CONTROL {8040} 21: ONBOARD PROFILES {8100} Device Mode: On-Board 22: REPORT RATE {8060} Polling Rate (ms): 1 23: DFUCONTROL SIGNED {00C2} 24: DFU {00D0} 25: DEVICE RESET {1802} internal, hidden 26: unknown:1803 {1803} internal, hidden 27: CONFIG DEVICE PROPS {1806} internal, hidden 28: unknown:1813 {1813} internal, hidden 29: OOBSTATE {1805} internal, hidden 30: unknown:1830 {1830} internal, hidden 31: unknown:1890 {1890} internal, hidden 32: unknown:1891 {1891} internal, hidden 33: unknown:18A1 {18A1} internal, hidden 34: unknown:1E00 {1E00} hidden 35: unknown:1EB0 {1EB0} internal, hidden 36: unknown:1861 {1861} internal, hidden 37: unknown:18B0 {18B0} internal, hidden Has 2 reprogrammable keys: 0: Host Switch Channel 1 , default: HostSwitch Channel 1 => HostSwitch Channel 1 divertable, persistently divertable, pos:1, group:0, group mask:empty reporting: default 1: Host Switch Channel 2 , default: HostSwitch Channel 2 => HostSwitch Channel 2 divertable, persistently divertable, pos:2, group:0, group mask:empty reporting: default Battery: 3781mV, discharging, 40. Unifying Receiver Device path : /dev/hidraw5 USB id : 046d:C52B Serial : <OMITTED> Firmware : 24.11.B0036 Bootloader : 02.09 Other : AA.AC Has 1 paired device(s) out of a maximum of 6. Notifications: wireless (0x000100) Device activity counters: 1=11 1: MX Ergo Multi-Device Trackball Device path : /dev/hidraw8 WPID : 406F Codename : MX Ergo Kind : trackball Protocol : HID++ 4.5 Polling rate : 8 ms (125Hz) Serial number: CD006718 Model ID: B01D406F0000 Unit ID: B182D6C5 Bootloader: BOT 49.00.B0001 Firmware: MPM 06.03.B0022 Other: The power switch is located on the base. Supports 36 HID++ 2.0 features: 0: ROOT {0000} 1: FEATURE SET {0001} 2: DEVICE FW VERSION {0003} Firmware: Bootloader BOT 49.00.B0001 0000CDE885F3 Firmware: Firmware MPM 06.03.B0022 406FCDE885F3 Firmware: Other Unit ID: B182D6C5 Model ID: B01D406F0000 Transport IDs: {'btleid': 'B01D', 'wpid': '406F'} 3: DEVICE NAME {0005} Name: MX Ergo Multi-Device Trackball Kind: trackball 4: WIRELESS DEVICE STATUS {1D4B} 5: DEVICE FRIENDLY NAME {0007} Friendly Name: MX Ergo 6: RESET {0020} 7: CRYPTO ID {0021} 8: BATTERY STATUS {1000} Battery: 90%, discharging, next level 50%. 9: LED CONTROL {1300} 10: REPROG CONTROLS V4 {1B04} Key/Button Actions (saved): {'237': 237, '80': 80, '81': 81, '82': 82, '83': 83, '86': 86, '91': 91, '93': 93} Key/Button Actions : {'80': 80, '81': 81, '82': 82, '83': 83, '86': 86, '237': 237, '91': 91, '93': 93} Key/Button Diversion (saved): {'237': 0, '82': 0, '83': 0, '86': 0, '91': 0, '93': 0} Key/Button Diversion : {'82': 0, '83': 0, '86': 0, '237': 0, '91': 0, '93': 0} 11: PERSISTENT REMAPPABLE ACTION {1C00} 12: POINTER AXIS ORIENTATION {2006} 13: POINTER SPEED {2205} Pointer Speed: 1.99609375 Sensitivity (Pointer Speed) (saved): 511 Sensitivity (Pointer Speed) : 511 14: VERTICAL SCROLLING {2100} Roller type: standard Ratchet per turn: 18 Scroll lines: 0 15: DFUCONTROL SIGNED {00C2} 16: DEVICE RESET {1802} internal, hidden 17: unknown:1803 {1803} internal, hidden 18: CONFIG DEVICE PROPS {1806} internal, hidden 19: OOBSTATE {1805} internal, hidden 20: unknown:1813 {1813} internal, hidden 21: CHANGE HOST {1814} Change Host : 1:wetterhorn 22: HOSTS INFO {1815} Host 0 (unpaired): wetterhorn Host 1 (unpaired): Host 2 (unpaired): 23: unknown:1830 {1830} internal, hidden 24: unknown:1861 {1861} internal, hidden 25: unknown:1890 {1890} internal, hidden 26: unknown:1891 {1891} internal, hidden 27: unknown:18A1 {18A1} internal, hidden 28: unknown:1DF3 {1DF3} internal, hidden 29: unknown:1E00 {1E00} hidden 30: unknown:1EB0 {1EB0} internal, hidden 31: unknown:18B1 {18B1} internal, hidden 32: unknown:1850 {1850} internal, hidden 33: unknown:1F03 {1F03} internal, hidden 34: unknown:18C0 {18C0} internal, hidden 35: LOWRES WHEEL {2130} Wheel Reports: HID Scroll Wheel Diversion (saved): False Scroll Wheel Diversion : False Has 9 reprogrammable keys: 0: Left Button , default: Left Click => Left Click mse, reprogrammable, pos:0, group:1, group mask:g1 reporting: default 1: Right Button , default: Right Click => Right Click mse, reprogrammable, pos:0, group:1, group mask:g1 reporting: default 2: Middle Button , default: Mouse Middle Button => Mouse Middle Button mse, reprogrammable, divertable, persistently divertable, raw XY, pos:0, group:2, group mask:g1,g2 reporting: default 3: Back Button , default: Mouse Back Button => Mouse Back Button mse, reprogrammable, divertable, persistently divertable, raw XY, pos:0, group:2, group mask:g1,g2 reporting: default 4: Forward Button , default: Mouse Forward Button => Mouse Forward Button mse, reprogrammable, divertable, persistently divertable, raw XY, pos:0, group:2, group mask:g1,g2 reporting: default 5: DPI Change , default: DPI Change => DPI Change mse, reprogrammable, divertable, persistently divertable, raw XY, pos:0, group:2, group mask:g1,g2 reporting: default 6: Left Tilt , default: Mouse Scroll Left Button => Mouse Scroll Left Button mse, reprogrammable, divertable, persistently divertable, raw XY, pos:0, group:2, group mask:g1,g2 reporting: default 7: Right Tilt , default: Mouse Scroll Right Button => Mouse Scroll Right Button mse, reprogrammable, divertable, persistently divertable, raw XY, pos:0, group:2, group mask:g1,g2 reporting: default 8: Virtual Gesture Button , default: Virtual Gesture Button => Virtual Gesture Button divertable, virtual, raw XY, force raw XY, pos:0, group:3, group mask:empty reporting: default Battery: 90%, discharging, next level 50%. ~~~
Can you retry with 1.1.2 and check if it's still reproducible? https://bodhi.fedoraproject.org/updates/FEDORA-2022-4f397f8544 .
I tried to reproduce the problem with 1.1.2, but now `solaar show` fails with the following error message: ~~~ $ solaar --version solaar 1.1.2 $ solaar show Solaar version 1.1.2 Unifying Receiver Device path : /dev/hidraw4 USB id : 046d:C52B [..] 9: LED CONTROL {1300} 10: REPROG CONTROLS V4 {1B04} Key/Button Actions (saved): {DPI Change:DPI Change, Left Button:Left Click, Right Button:Right Click, Middle Button:Mouse Middle Button, Back Button:Mouse Back Button, Forward Button:Mouse Forward Button, Left Tilt:Mouse Scroll Left Button , Right Tilt:Mouse Scroll Right Button} Key/Button Actions : {DPI Change:DPI Change, Left Button:Left Click, Right Button:Right Click, Middle Button:Mouse Middle Button, Back Button:Mouse Back Button, Forward Button:Mouse Forward Button, Left Tilt:Mouse Scroll Left Button , Right Tilt:Mouse Scroll Right Button} Key/Button Diversion (saved): {DPI Change:Regular, Middle Button:Regular, Back Button:Regular, Forward Button:Regular, Left Tilt:Regular, Right Tilt:Regular} Key/Button Diversion : {DPI Change:Regular, Middle Button:Regular, Back Button:Regular, Forward Button:Regular, Left Tilt:Regular, Right Tilt:Regular} 11: PERSISTENT REMAPPABLE ACTION {1C00} solaar: assertion failed: /usr/lib/python3.10/site-packages/logitech_receiver/settings.py line 1041 ~~~ I filed https://bugzilla.redhat.com/show_bug.cgi?id=2069546 for this issue.
The CLI for Solaar catches exceptions and prints the execution stack, which is what is seen here. So this is expected behaviour.
Was unable to reproduce the original issue with Solaar version 1.1.2, so from my point of view this Bug can be closed.
Thanks. We can always reopen or file a new one for 1.1.2.