Bug 1891655

Summary: [abrt] solaar: _device_row(): window.py:449:_device_row:AssertionError
Product: [Fedora] Fedora Reporter: jaskerx
Component: solaarAssignee: Dominik 'Rathann' Mierzejewski <dominik>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 32CC: dominik, j, pfpschneider, richardfearn, spacewar
Target Milestone: ---   
Target Release: ---   
Hardware: x86_64   
OS: Unspecified   
URL: https://retrace.fedoraproject.org/faf/reports/bthash/fa15e833042d7ce2fa77e3fa54d32e09eb1320ab
Whiteboard: abrt_hash:abdc9e6e207305c7b776eacb74df5aac22d0c6c2;VARIANT_ID=workstation;
Fixed In Version: solaar-1.0.4-2.fc33 solaar-1.0.4-2.fc32 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2020-11-10 01:19:36 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
File: backtrace
none
File: cpuinfo
none
File: environ
none
File: mountinfo
none
File: namespaces
none
File: open_fds none

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.