Bug 1891655 - [abrt] solaar: _device_row(): window.py:449:_device_row:AssertionError
Summary: [abrt] solaar: _device_row(): window.py:449:_device_row:AssertionError
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: solaar
Version: 32
Hardware: x86_64
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Dominik 'Rathann' Mierzejewski
QA Contact: Fedora Extras Quality Assurance
URL: https://retrace.fedoraproject.org/faf...
Whiteboard: abrt_hash:abdc9e6e207305c7b776eacb74d...
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2020-10-27 00:50 UTC by jaskerx
Modified: 2020-11-17 01:13 UTC (History)
5 users (show)

Fixed In Version: solaar-1.0.4-2.fc33 solaar-1.0.4-2.fc32
Clone Of:
Environment:
Last Closed: 2020-11-10 01:19:36 UTC
Type: ---
Embargoed:


Attachments (Terms of Use)
File: backtrace (817 bytes, text/plain)
2020-10-27 00:50 UTC, jaskerx
no flags Details
File: cpuinfo (2.43 KB, text/plain)
2020-10-27 00:50 UTC, jaskerx
no flags Details
File: environ (1.58 KB, text/plain)
2020-10-27 00:50 UTC, jaskerx
no flags Details
File: mountinfo (2.64 KB, text/plain)
2020-10-27 00:50 UTC, jaskerx
no flags Details
File: namespaces (172 bytes, text/plain)
2020-10-27 00:50 UTC, jaskerx
no flags Details
File: open_fds (1.82 KB, text/plain)
2020-10-27 00:50 UTC, jaskerx
no flags Details


Links
System ID Private Priority Status Summary Last Updated
Github pwr-Solaar Solaar issues 995 0 None closed failed assertions and uncaught exceptions when a receiver gets disconnected 2020-12-15 10:44:10 UTC

Description jaskerx 2020-10-27 00:50:02 UTC
Description of problem:
I have a usb 2.0 hub (unifying receiver is plugged in) with a magnet, I moved it off the piece of 
metal it's stuck to and then put it back. I lost mouse and keyboard for the time it took to 
restart. Weird. 

Version-Release number of selected component:
solaar-1.0.4-1.fc32

Additional info:
reporter:       libreport-2.13.1
cgroup:         0::/user.slice/user-1000.slice/user/gnome-launched-solaar.desktop-2416.scope
cmdline:        /usr/bin/python3 -s /usr/bin/solaar --window=hide
crash_function: _device_row
exception_type: AssertionError
executable:     /usr/bin/solaar
interpreter:    python3-3.8.6-1.fc32.x86_64
kernel:         5.8.16-200.fc32.x86_64
runlevel:       N 5
type:           Python3
uid:            1000

Truncated backtrace:
window.py:449:_device_row:AssertionError

Traceback (most recent call last):
  File "/usr/lib/python3.8/site-packages/solaar/ui/__init__.py", line 177, in _status_changed
    window.update(device, need_popup, refresh)
  File "/usr/lib/python3.8/site-packages/solaar/ui/window.py", line 885, in update
    item = _device_row(path, device.number, device if bool(device) else None)
  File "/usr/lib/python3.8/site-packages/solaar/ui/window.py", line 449, in _device_row
    assert _model.get_value(item, _COLUMN.PATH) == receiver_path
AssertionError

Local variables in innermost frame:
receiver_path: '/dev/hidraw6'
device_number: 2
device: <Device(2,406B,Multi Device Silent Mouse M585/M590,DB633BD6)>
receiver_row: None
item: <Gtk.TreeIter object at 0x7f582a78dd60 (GtkTreeIter at 0x5610db859c20)>
new_child_index: 0

Comment 1 jaskerx 2020-10-27 00:50:05 UTC
Created attachment 1724431 [details]
File: backtrace

Comment 2 jaskerx 2020-10-27 00:50:06 UTC
Created attachment 1724432 [details]
File: cpuinfo

Comment 3 jaskerx 2020-10-27 00:50:07 UTC
Created attachment 1724433 [details]
File: environ

Comment 4 jaskerx 2020-10-27 00:50:08 UTC
Created attachment 1724434 [details]
File: mountinfo

Comment 5 jaskerx 2020-10-27 00:50:09 UTC
Created attachment 1724435 [details]
File: namespaces

Comment 6 jaskerx 2020-10-27 00:50:10 UTC
Created attachment 1724436 [details]
File: open_fds

Comment 7 Dominik 'Rathann' Mierzejewski 2020-10-28 08:39:34 UTC
What did you have to restart? The whole system, or just solaar?

Can you reproduce the issue by moving the hub again?

Please post the output of `solaar -d show`.

Comment 8 Dominik 'Rathann' Mierzejewski 2020-10-28 08:40:47 UTC
Also, please post kernel log (dmesg or journalctl --no-hostname -k) from around the time of the crash. I'm suspecting the USB device disappeared from the bus.

Comment 9 jaskerx 2020-10-28 16:45:37 UTC
Technically I didn't have to restart anything I assume Solaar restarted because my mouse and keyboard came back. Here is output of journalctl --no-hostname -ke -b -4 --no-pager

Oct 26 18:35:42 kernel: logitech-hidpp-device 0003:046D:406B.000A: input,hidraw4: USB HID v1.11 Keyboard [Logitech M585/M590] on usb-0000:01:00.0-6.3/input2:2
Oct 26 18:42:03 kernel: usb 1-6: USB disconnect, device number 9
Oct 26 18:42:03 kernel: usb 1-6.3: USB disconnect, device number 10
Oct 26 18:42:03 kernel: usb 1-6: new high-speed USB device number 11 using xhci_hcd
Oct 26 18:42:03 kernel: usb 1-6: New USB device found, idVendor=05e3, idProduct=0608, bcdDevice=77.61
Oct 26 18:42:03 kernel: usb 1-6: New USB device strings: Mfr=0, Product=1, SerialNumber=0
Oct 26 18:42:03 kernel: usb 1-6: Product: USB2.0 Hub
Oct 26 18:42:03 kernel: hub 1-6:1.0: USB hub found
Oct 26 18:42:03 kernel: hub 1-6:1.0: 4 ports detected
Oct 26 18:42:04 kernel: usb 1-6.3: new full-speed USB device number 12 using xhci_hcd
Oct 26 18:42:04 kernel: usb 1-6.3: New USB device found, idVendor=046d, idProduct=c52b, bcdDevice=12.10
Oct 26 18:42:04 kernel: usb 1-6.3: New USB device strings: Mfr=1, Product=2, SerialNumber=0
Oct 26 18:42:04 kernel: usb 1-6.3: Product: USB Receiver
Oct 26 18:42:04 kernel: usb 1-6.3: Manufacturer: Logitech
Oct 26 18:42:04 kernel: logitech-djreceiver 0003:046D:C52B.000D: hiddev96,hidraw0: USB HID v1.11 Device [Logitech USB Receiver] on usb-0000:01:00.0-6.3/input2
Oct 26 18:42:04 kernel: input: Logitech K360 as /devices/pci0000:00/0000:00:01.2/0000:01:00.0/usb1/1-6/1-6.3/1-6.3:1.2/0003:046D:C52B.000D/0003:046D:4004.000E/input/input37
Oct 26 18:42:04 kernel: logitech-hidpp-device 0003:046D:4004.000E: input,hidraw5: USB HID v1.11 Keyboard [Logitech K360] on usb-0000:01:00.0-6.3/input2:1
Oct 26 18:42:04 kernel: input: Logitech M585/M590 as /devices/pci0000:00/0000:00:01.2/0000:01:00.0/usb1/1-6/1-6.3/1-6.3:1.2/0003:046D:C52B.000D/0003:046D:406B.000F/input/input38
Oct 26 18:42:04 kernel: logitech-hidpp-device 0003:046D:406B.000F: input,hidraw6: USB HID v1.11 Keyboard [Logitech M585/M590] on usb-0000:01:00.0-6.3/input2:2
Oct 26 18:42:05 kernel: usb 1-6: USB disconnect, device number 11
Oct 26 18:42:05 kernel: usb 1-6.3: USB disconnect, device number 12
Oct 26 18:42:05 kernel: usb 1-6: new high-speed USB device number 13 using xhci_hcd
Oct 26 18:42:05 kernel: usb 1-6: New USB device found, idVendor=05e3, idProduct=0608, bcdDevice=77.61
Oct 26 18:42:05 kernel: usb 1-6: New USB device strings: Mfr=0, Product=1, SerialNumber=0
Oct 26 18:42:05 kernel: usb 1-6: Product: USB2.0 Hub
Oct 26 18:42:05 kernel: hub 1-6:1.0: USB hub found
Oct 26 18:42:05 kernel: hub 1-6:1.0: 4 ports detected
Oct 26 18:42:05 kernel: usb 1-6.3: new full-speed USB device number 14 using xhci_hcd
Oct 26 18:42:06 kernel: usb 1-6.3: New USB device found, idVendor=046d, idProduct=c52b, bcdDevice=12.10
Oct 26 18:42:06 kernel: usb 1-6.3: New USB device strings: Mfr=1, Product=2, SerialNumber=0
Oct 26 18:42:06 kernel: usb 1-6.3: Product: USB Receiver
Oct 26 18:42:06 kernel: usb 1-6.3: Manufacturer: Logitech
Oct 26 18:42:06 kernel: logitech-djreceiver 0003:046D:C52B.0012: hiddev96,hidraw0: USB HID v1.11 Device [Logitech USB Receiver] on usb-0000:01:00.0-6.3/input2
Oct 26 18:42:06 kernel: input: Logitech K360 as /devices/pci0000:00/0000:00:01.2/0000:01:00.0/usb1/1-6/1-6.3/1-6.3:1.2/0003:046D:C52B.0012/0003:046D:4004.0013/input/input39
Oct 26 18:42:06 kernel: logitech-hidpp-device 0003:046D:4004.0013: input,hidraw5: USB HID v1.11 Keyboard [Logitech K360] on usb-0000:01:00.0-6.3/input2:1
Oct 26 18:42:06 kernel: input: Logitech M585/M590 as /devices/pci0000:00/0000:00:01.2/0000:01:00.0/usb1/1-6/1-6.3/1-6.3:1.2/0003:046D:C52B.0012/0003:046D:406B.0014/input/input40
Oct 26 18:42:06 kernel: logitech-hidpp-device 0003:046D:406B.0014: input,hidraw6: USB HID v1.11 Keyboard [Logitech M585/M590] on usb-0000:01:00.0-6.3/input2:2
Oct 26 18:42:07 kernel: logitech-hidpp-device 0003:046D:406B.0014: HID++ 4.5 device connected.
Oct 26 18:42:07 kernel: usb 1-6: USB disconnect, device number 13
Oct 26 18:42:07 kernel: usb 1-6.3: USB disconnect, device number 14
Oct 26 18:42:12 kernel: usb 1-6: new high-speed USB device number 15 using xhci_hcd
Oct 26 18:42:12 kernel: usb 1-6: New USB device found, idVendor=05e3, idProduct=0608, bcdDevice=77.61
Oct 26 18:42:12 kernel: usb 1-6: New USB device strings: Mfr=0, Product=1, SerialNumber=0
Oct 26 18:42:12 kernel: usb 1-6: Product: USB2.0 Hub
Oct 26 18:42:12 kernel: hub 1-6:1.0: USB hub found
Oct 26 18:42:12 kernel: hub 1-6:1.0: 4 ports detected
Oct 26 18:42:12 kernel: usb 1-6.3: new full-speed USB device number 16 using xhci_hcd
Oct 26 18:42:13 kernel: usb 1-6.3: New USB device found, idVendor=046d, idProduct=c52b, bcdDevice=12.10
Oct 26 18:42:13 kernel: usb 1-6.3: New USB device strings: Mfr=1, Product=2, SerialNumber=0
Oct 26 18:42:13 kernel: usb 1-6.3: Product: USB Receiver
Oct 26 18:42:13 kernel: usb 1-6.3: Manufacturer: Logitech
Oct 26 18:42:13 kernel: logitech-djreceiver 0003:046D:C52B.0017: hiddev96,hidraw0: USB HID v1.11 Device [Logitech USB Receiver] on usb-0000:01:00.0-6.3/input2
Oct 26 18:42:13 kernel: input: Logitech K360 as /devices/pci0000:00/0000:00:01.2/0000:01:00.0/usb1/1-6/1-6.3/1-6.3:1.2/0003:046D:C52B.0017/0003:046D:4004.0018/input/input41
Oct 26 18:42:13 kernel: logitech-hidpp-device 0003:046D:4004.0018: input,hidraw6: USB HID v1.11 Keyboard [Logitech K360] on usb-0000:01:00.0-6.3/input2:1
Oct 26 18:42:13 kernel: logitech-hidpp-device 0003:046D:406B.0019: HID++ 4.5 device connected.
Oct 26 18:42:13 kernel: input: Logitech M585/M590 as /devices/pci0000:00/0000:00:01.2/0000:01:00.0/usb1/1-6/1-6.3/1-6.3:1.2/0003:046D:C52B.0017/0003:046D:406B.0019/input/input42
Oct 26 18:42:14 kernel: logitech-hidpp-device 0003:046D:406B.0019: input,hidraw7: USB HID v1.11 Keyboard [Logitech M585/M590] on usb-0000:01:00.0-6.3/input2:2
Oct 26 18:45:42 kernel: logitech-hidpp-device 0003:046D:4004.0018: HID++ 2.0 device connected.
Oct 26 22:00:07 kernel: rfkill: input handler enabled



solaar -d show
Unifying Receiver
  Device path  : /dev/hidraw0
  USB id       : 046d:c52b
  Serial       : EEAA9FBF
    Firmware   : 12.10.B0032
    Bootloader : 02.15
    Other      : AA.AA
  Has 2 paired device(s) out of a maximum of 6.
  Notifications: wireless (0x000100)
  Device activity counters: 1=132, 2=78
10:43:38,508     INFO [MainThread] logitech_receiver.receiver: <UnifyingReceiver(/dev/hidraw0,3)>: found new device 1 (4004)

  1: Wireless Keyboard K360
     Codename     : K360
     Kind         : keyboard
     Wireless PID : 4004
     Protocol     : HID++ 2.0
     Polling rate : 20 ms (50Hz)
     Serial number: C7766C1A
          Firmware: RQK 36.00.B0007
     The power switch is located on the top case.
     Supports 13 HID++ 2.0 features:
         0: ROOT                   {0000}   
         1: FEATURE SET            {0001}   
         2: DEVICE FW VERSION      {0003}   
         3: DEVICE NAME            {0005}   
         4: BATTERY STATUS         {1000}   
         5: unknown:1820           {1820}   hidden
         6: REPROG CONTROLS        {1B00}   
         7: WIRELESS DEVICE STATUS {1D4B}   
         8: REMAINING PAIRING      {1DF0}   hidden
         9: unknown:1DF3           {1DF3}   hidden
        10: FN INVERSION           {40A0}   
            Swap Fx function: False
        11: ENCRYPTION             {4100}   
        12: KEYBOARD LAYOUT        {4520}   
     Has 18 reprogrammable keys:
         0: MY HOME                    => HomePage                      is FN, FN sensitive, reprogrammable
         1: Mail                       => Email                         is FN, FN sensitive, reprogrammable
         2: Search                     => Search                        is FN, FN sensitive, reprogrammable
         3: MEDIA PLAYER               => Music                         is FN, FN sensitive, reprogrammable
         4: Application Switcher       => Application Switcher          is FN, FN sensitive, reprogrammable
         5: Show Desktop               => Show Desktop                  is FN, FN sensitive, reprogrammable
         6: MINIMIZE AS WIN M          => WindowsMinimize               is FN, FN sensitive, reprogrammable
         7: MAXIMIZE AS WIN SHIFT M    => WindowsRestore                is FN, FN sensitive, reprogrammable
         8: MY COMPUTER AS WIN E       => My Computer                   is FN, FN sensitive, reprogrammable
         9: Lock PC                    => WindowsLock                   is FN, FN sensitive, reprogrammable
        10: SLEEP                      => Sleep                         is FN, FN sensitive, reprogrammable
        11: Calculator                 => Calculator                    is FN, FN sensitive, reprogrammable
        12: Previous                   => Previous                      nonstandard
        13: Play/Pause                 => Play/Pause                    nonstandard
        14: Next                       => Next                          nonstandard
        15: Mute                       => Mute                          nonstandard
        16: Volume Down                => Volume Down                   nonstandard
        17: Volume Up                  => Volume Up                     nonstandard
     Battery: 90%, discharging, next level 70%.
10:44:09,243     INFO [MainThread] logitech_receiver.receiver: <UnifyingReceiver(/dev/hidraw0,3)>: found new device 2 (406B)

  2: Multi Device Silent Mouse M585/M590
     Codename     : M585/M590
     Kind         : mouse
     Wireless PID : 406B
     Protocol     : HID++ 4.5
     Polling rate : 8 ms (125Hz)
     Serial number: DB633BD6
        Bootloader: BOT 48.00.B0001
          Firmware: MPM 05.01.B0006
             Other: 
     The power switch is located on the base.
     Supports 33 HID++ 2.0 features:
         0: ROOT                   {0000}   
         1: FEATURE SET            {0001}   
         2: DEVICE FW VERSION      {0003}   
         3: DEVICE NAME            {0005}   
         4: WIRELESS DEVICE STATUS {1D4B}   
         5: RESET                  {0020}   
         6: DEVICE FRIENDLY NAME   {0007}   
         7: BATTERY STATUS         {1000}   
         8: CHANGE HOST            {1814}   
            Change Host: 1:ASIX
         9: HOSTS INFO             {1815}   
            Host 0 (paired): 
            Host 1 (unpaired): 
        10: REPROG CONTROLS V4     {1B04}   
            Actions: {'80': 80, '81': 81, '82': 82, '83': 83, '86': 86, '91': 91, '93': 93}
        11: PERSISTENT REMAPPABLE ACTION {1C00}   
        12: POINTER SPEED          {2205}   
            Pointer Speed: 1.0
            Sensitivity (Pointer Speed): 256
        13: VERTICAL SCROLLING     {2100}   
            Roller type: standard
            Ratchet per turn: 18
            Scroll lines: 0
        14: DFUCONTROL SIGNED      {00C2}   
        15: DEVICE RESET           {1802}   internal, hidden
        16: unknown:1803           {1803}   internal, hidden
        17: CONFIG DEVICE PROPS    {1806}   internal, hidden
        18: OOBSTATE               {1805}   internal, hidden
        19: unknown:1813           {1813}   internal, hidden
        20: unknown:1830           {1830}   internal, hidden
        21: unknown:1861           {1861}   internal, hidden
        22: unknown:1890           {1890}   internal, hidden
        23: unknown:1891           {1891}   internal, hidden
        24: unknown:18A1           {18A1}   internal, hidden
        25: unknown:1DF3           {1DF3}   internal, hidden
        26: unknown:1E00           {1E00}   hidden
        27: unknown:1EB0           {1EB0}   internal, hidden
        28: unknown:18B1           {18B1}   internal, hidden
        29: unknown:1850           {1850}   internal, hidden
        30: unknown:1F03           {1F03}   internal, hidden
        31: unknown:18C0           {18C0}   internal, hidden
        32: LOWRES WHEEL           {2130}   
            Wheel Reports: HID
            HID++ Scrolling: False
     Has 8 reprogrammable keys:
         0: Left Button               , default: Left Click                  => Left Button               
             mse, reprogrammable, pos:0, group:1, gmask:1
         1: Right Button              , default: Right Click                 => Right Button              
             mse, reprogrammable, pos:0, group:1, gmask:1
         2: Middle Button             , default: Mouse Middle Button         => Middle Button             
             mse, reprogrammable, divertable, persistently divertable, pos:0, group:2, gmask:3
         3: Back Button               , default: Mouse Back Button           => Back Button               
             mse, reprogrammable, divertable, persistently divertable, pos:0, group:2, gmask:3
         4: Forward Button            , default: Mouse Forward Button        => Forward Button            
             mse, reprogrammable, divertable, persistently divertable, pos:0, group:2, gmask:3
         5: Left Tilt                 , default: Mouse Scroll Left Button    => Left Tilt                 
             mse, reprogrammable, divertable, persistently divertable, pos:0, group:2, gmask:3
         6: Right Tilt                , default: Mouse Scroll Right Button   => Right Tilt                
             mse, reprogrammable, divertable, persistently divertable, pos:0, group:2, gmask:3
         7: Virtual Gesture Button    , default: Virtual Gesture Button      => Virtual Gesture Button    
             divertable, virtual, pos:0, group:3, gmask:0
     Battery: 50%, discharging, next level 20%.


Hope this helps.

Comment 10 Peter F. Patel-Schneider 2020-11-06 13:13:17 UTC
This looks like some problem with the low-level code in Solaar, probably due to thread interleaving.  The right solution is to rewrite this low-level code to use synchronization primitives, but that is going to be a big job.

I'm going to downgrade the assertion to a warning for now.

Comment 11 Fedora Update System 2020-11-08 14:02:19 UTC
FEDORA-2020-c791097af3 has been submitted as an update to Fedora 33. https://bodhi.fedoraproject.org/updates/FEDORA-2020-c791097af3

Comment 12 Fedora Update System 2020-11-08 14:02:22 UTC
FEDORA-2020-9feb317377 has been submitted as an update to Fedora 32. https://bodhi.fedoraproject.org/updates/FEDORA-2020-9feb317377

Comment 13 Fedora Update System 2020-11-09 01:45:58 UTC
FEDORA-2020-9feb317377 has been pushed to the Fedora 32 testing repository.
In short time you'll be able to install the update with the following command:
`sudo dnf upgrade --enablerepo=updates-testing --advisory=FEDORA-2020-9feb317377`
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2020-9feb317377

See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.

Comment 14 Fedora Update System 2020-11-09 02:24:20 UTC
FEDORA-2020-c791097af3 has been pushed to the Fedora 33 testing repository.
In short time you'll be able to install the update with the following command:
`sudo dnf upgrade --enablerepo=updates-testing --advisory=FEDORA-2020-c791097af3`
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2020-c791097af3

See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.

Comment 15 Fedora Update System 2020-11-10 01:19:36 UTC
FEDORA-2020-c791097af3 has been pushed to the Fedora 33 stable repository.
If problem still persists, please make note of it in this bug report.

Comment 16 Fedora Update System 2020-11-17 01:13:47 UTC
FEDORA-2020-9feb317377 has been pushed to the Fedora 32 stable repository.
If problem still persists, please make note of it in this bug report.


Note You need to log in before you can comment on or make changes to this bug.