Package: python3-pyqt5 Version: 5.11.3+dfsg-1+b3 Severity: important Dear Maintainer,
there is a segmentation fault problem with python3-qt5 and/or qt5 when switching between image and text with html tags. To reproduce, (1) Use Debian 10 live iso (or any Debian 10; it happened on a finished installation as well) (2) Invoke: sudo apt-get update (3) Invoke: sudo apt-get install python3-pyqt5 (4) Invoke: cp /usr/share/icons/Adwaita/48x48/status/network-wired-disconnected.png . (or any other png) (5) Save the text below as "a.py" (6) Invoke: QT_QPA_PLATFORM=offscreen python3 a.py 1 (7) Wait for 5 seconds (8) See the segmentation fault It's very very reproducible for me. Text: from PyQt5.QtWidgets import QWidget, QLabel, QApplication from PyQt5.QtCore import QTimer, QVariant, pyqtSlot style=\ """QLabel { qproperty-alignment: AlignCenter; min-width: 84px; min-height: 84px; max-width: 84px; max-height: 84px; } QLabel[state="image"]{ background-image: url(network-wired-disconnected.png); background-repeat: no-repeat; background-position: center; background-color: #eeeeee; qproperty-text: " "; } QLabel[state="text"]{ background-image: none; background-repeat: no-repeat; background-position: center; background-color: #eeeeee; qproperty-text: "This is<br>an<br>example"; } """ style2=\ """QLabel { qproperty-alignment: AlignCenter; min-width: 84px; min-height: 84px; max-width: 84px; max-height: 84px; } QLabel[state="image"]{ background-color: orange; qproperty-text: "Image"; } QLabel[state="text"]{ background-color: #eeeeee; qproperty-text: "This is<br>an<br>example"; } """ # NO segfault!! style3=\ """QLabel { qproperty-alignment: AlignCenter; min-width: 84px; min-height: 84px; max-width: 84px; max-height: 84px; } QLabel[state="image"]{ background-color: orange; qproperty-text: "Image"; } QLabel[state="text"]{ background-color: #eeeeee; qproperty-text: "Text"; } """ style4=\ """QLabel { qproperty-alignment: AlignCenter; border: 1px solid #cccccc; border-bottom: 1px solid white; background-color: #eeeeee; padding: 2px; font-size: 15px; font-family: "free sans"; qproperty-alignment: AlignCenter; min-width: 84px; min-height: 84px; max-width: 84px; max-height: 84px; } QLabel[state="image"]{ background-color: orange; qproperty-text: "Image"; } QLabel[state="text"]{ background-color: #eeeeee; qproperty-text: "<table><tr><td>This is a</td></tr><tr><td>Text</td></tr></table>"; } """ # NO segfault!! style5=\ """QLabel { qproperty-alignment: AlignCenter; min-width: 84px; min-height: 84px; max-width: 84px; max-height: 84px; } QLabel[state="image"]{ background-image: url(network-wired-disconnected.png); background-repeat: no-repeat; background-position: center; background-color: #eeeeee; qproperty-text: " "; } QLabel[state="text"]{ background-image: none; background-repeat: no-repeat; background-position: center; background-color: #eeeeee; qproperty-text: "Text"; } """ # Program crashes with "segmentation fault" when # html-tags are in the label text # ----------------------------------- # ----------------------------------- class LabelDemoWidget(QWidget): def __init__(self, style=style, parent=None): QWidget.__init__(self, parent=parent) self.style=style self.topLabel=QLabel(self) self.topLabel.setObjectName("topLabel") self.label_prop="text" self.switch={"text":"image","image":"text"} self.setGeometry(100, 100, 100, 100) flip=QTimer(self) flip.setInterval(1000) flip.timeout.connect(self.new_style) flip.start() # ----------------------------------- @pyqtSlot() def new_style(self): self.topLabel.setProperty("state",QVariant(self.switch[self.label_prop])) self.label_prop=self.switch[self.label_prop] self.setStyleSheet(self.style) # ----------------------------------- if __name__=='__main__': # usage python3 label_demo.py 0 ... 4 # 2 and 4 cause no segfault # all others with html-tags in text will crash after some time with segfault # debian buster (10) with python3 (3.7.3), python3-qt5 (5.11.3) out of the box import sys app=QApplication(sys.argv) w = LabelDemoWidget([style, style2, style3, style4, style5][int(sys.argv[1])]) w.show() sys.exit(app.exec_()) -- System Information: Debian Release: 10.0 APT prefers stable APT policy: (500, 'stable') Architecture: amd64 (x86_64) Kernel: Linux 4.19.0-5-amd64 (SMP w/1 CPU core) Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), LANGUAGE=en_US.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /usr/bin/dash Init: systemd (via /run/systemd/system) Versions of packages python3-pyqt5 depends on: ii libc6 2.28-10 ii libgcc1 1:8.3.0-6 ii libpython3.7 3.7.3-2 ii libqt5core5a [qtbase-abi-5-11-3] 5.11.3+dfsg1-1 ii libqt5dbus5 5.11.3+dfsg1-1 ii libqt5designer5 5.11.3-4 ii libqt5gui5 5.11.3+dfsg1-1 ii libqt5help5 5.11.3-4 ii libqt5network5 5.11.3+dfsg1-1 ii libqt5printsupport5 5.11.3+dfsg1-1 ii libqt5test5 5.11.3+dfsg1-1 ii libqt5widgets5 5.11.3+dfsg1-1 ii libqt5xml5 5.11.3+dfsg1-1 ii libstdc++6 8.3.0-6 ii python3 3.7.3-1 ii python3-sip [sip-py3api-12.5] 4.19.14+dfsg-2 python3-pyqt5 recommends no packages. Versions of packages python3-pyqt5 suggests: pn python3-pyqt5-dbg <none> -- no debconf information