Bug 2015428

Summary: hp-toolbox crashes due Python3.10 changes
Product: [Fedora] Fedora Reporter: Ivan Molodetskikh <yalterz>
Component: hplipAssignee: Zdenek Dohnal <zdohnal>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 35CC: jridky, tkorbar, twaugh, zdohnal
Target Milestone: ---   
Target Release: ---   
Hardware: x86_64   
OS: Unspecified   
Whiteboard:
Fixed In Version: hplip-3.21.2-13.fc35 hplip-3.21.2-13.fc33 hplip-3.21.2-13.fc34 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2021-11-02 01:04:27 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Ivan Molodetskikh 2021-10-19 07:40:56 UTC
Description of problem:
hp-toolbox crashes when trying to do certain things.

Version-Release number of selected component (if applicable):
hplip-gui-3.21.2-11.fc35.x86_64

How reproducible:
Always

Steps to Reproduce:
1. Open hp-toolbox
2. Click on "Clean Printheads"

Actual results:
\Traceback (most recent call last):
  File "/usr/share/hplip/ui5/devmgr5.py", line 1270, in ActionsList_clicked
    if item.cmd and isinstance(item.cmd, collections.Callable):
AttributeError: module 'collections' has no attribute 'Callable'
Aborted (core dumped)

Expected results:
It opens hp-clean.

Steps to Reproduce:
1. Open hp-toolbox
2. Click on "Supplies"

Actual results:
\Traceback (most recent call last):
  File "/usr/share/hplip/ui5/devmgr5.py", line 567, in Tabs_currentChanged
    self.TabIndex[tab]()
  File "/usr/share/hplip/ui5/devmgr5.py", line 1575, in updateSuppliesTab
    level_pixmap = self.createStatusLevelGraphic(agent_level, agent_type)
  File "/usr/share/hplip/ui5/devmgr5.py", line 1706, in createStatusLevelGraphic
    pp.fillRect(0, 0, fw, h, QBrush(QColor(map[0])))
TypeError: arguments did not match any overloaded call:
  fillRect(self, QRectF, Union[QBrush, QColor, Qt.GlobalColor, QGradient]): argument 1 has unexpected type 'int'
  fillRect(self, QRect, Union[QBrush, QColor, Qt.GlobalColor, QGradient]): argument 1 has unexpected type 'int'
  fillRect(self, int, int, int, int, Union[QBrush, QColor, Qt.GlobalColor, QGradient]): argument 3 has unexpected type 'float'
  fillRect(self, QRectF, Union[QColor, Qt.GlobalColor, QGradient]): argument 1 has unexpected type 'int'
  fillRect(self, QRect, Union[QColor, Qt.GlobalColor, QGradient]): argument 1 has unexpected type 'int'
  fillRect(self, int, int, int, int, Union[QColor, Qt.GlobalColor, QGradient]): argument 3 has unexpected type 'float'
  fillRect(self, int, int, int, int, Qt.GlobalColor): argument 3 has unexpected type 'float'
  fillRect(self, QRect, Qt.GlobalColor): argument 1 has unexpected type 'int'
  fillRect(self, QRectF, Qt.GlobalColor): argument 1 has unexpected type 'int'
  fillRect(self, int, int, int, int, Qt.BrushStyle): argument 3 has unexpected type 'float'
  fillRect(self, QRect, Qt.BrushStyle): argument 1 has unexpected type 'int'
  fillRect(self, QRectF, Qt.BrushStyle): argument 1 has unexpected type 'int'
  fillRect(self, int, int, int, int, QGradient.Preset): argument 3 has unexpected type 'float'
  fillRect(self, QRect, QGradient.Preset): argument 1 has unexpected type 'int'
  fillRect(self, QRectF, QGradient.Preset): argument 1 has unexpected type 'int'
Aborted (core dumped)

Expected results:
It opens the supplies tab.

I'm running this on Fedora 35 Silverblue in an F35 toolbox.

Comment 1 Zdenek Dohnal 2021-10-25 11:57:32 UTC
Hi Ivan,

thank you for reporting the issue!

Both issues are due Python 3.10 changes.

The former traceback is because 'Callable' is now under one more class, 'abc', so the correct call is now  'collections.abc.Callable'.

The latter is due Python3.10 stopped doing implicit format conversions to formats which can cause data loses (usually conversions from bigger formats to smaller - float -> int).

Would you mind trying the rpms from the scratch build and see if it helps? https://koji.fedoraproject.org/koji/taskinfo?taskID=77793063

Comment 2 Ivan Molodetskikh 2021-10-25 14:33:21 UTC
That build seems to work, thanks.

Comment 3 Fedora Update System 2021-10-26 12:39:56 UTC
FEDORA-2021-d068beec13 has been submitted as an update to Fedora 35. https://bodhi.fedoraproject.org/updates/FEDORA-2021-d068beec13

Comment 4 Fedora Update System 2021-10-26 13:14:42 UTC
FEDORA-2021-e985cbc01b has been submitted as an update to Fedora 34. https://bodhi.fedoraproject.org/updates/FEDORA-2021-e985cbc01b

Comment 5 Fedora Update System 2021-10-26 13:47:31 UTC
FEDORA-2021-40a2896b2a has been submitted as an update to Fedora 33. https://bodhi.fedoraproject.org/updates/FEDORA-2021-40a2896b2a

Comment 6 Fedora Update System 2021-10-26 15:43:33 UTC
FEDORA-2021-d068beec13 has been pushed to the Fedora 35 testing repository.
Soon you'll be able to install the update with the following command:
`sudo dnf upgrade --enablerepo=updates-testing --advisory=FEDORA-2021-d068beec13`
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2021-d068beec13

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

Comment 7 Fedora Update System 2021-10-27 02:07:30 UTC
FEDORA-2021-40a2896b2a has been pushed to the Fedora 33 testing repository.
Soon you'll be able to install the update with the following command:
`sudo dnf upgrade --enablerepo=updates-testing --advisory=FEDORA-2021-40a2896b2a`
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2021-40a2896b2a

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

Comment 8 Fedora Update System 2021-10-27 02:29:00 UTC
FEDORA-2021-e985cbc01b has been pushed to the Fedora 34 testing repository.
Soon you'll be able to install the update with the following command:
`sudo dnf upgrade --enablerepo=updates-testing --advisory=FEDORA-2021-e985cbc01b`
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2021-e985cbc01b

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

Comment 9 Fedora Update System 2021-11-02 01:04:27 UTC
FEDORA-2021-d068beec13 has been pushed to the Fedora 35 stable repository.
If problem still persists, please make note of it in this bug report.

Comment 10 Fedora Update System 2021-11-04 01:23:18 UTC
FEDORA-2021-40a2896b2a has been pushed to the Fedora 33 stable repository.
If problem still persists, please make note of it in this bug report.

Comment 11 Fedora Update System 2021-11-04 01:33:27 UTC
FEDORA-2021-e985cbc01b has been pushed to the Fedora 34 stable repository.
If problem still persists, please make note of it in this bug report.