Bug 33972 - Segfault для Qt4, Qt5
Summary: Segfault для Qt4, Qt5
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: python3-module-PyQt5 (show other bugs)
Version: unstable
Hardware: all Linux
: P3 major
Assignee: Vitaly Lipatov
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2017-10-05 15:52 MSK by Fr. Br. George
Modified: 2017-10-06 11:51 MSK (History)
1 user (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Fr. Br. George 2017-10-05 15:52:34 MSK
Приложения, написанные на PyQt4/PyQt5 падают с segfault:

python3 -c 'from PyQt4 import QtGui'       
[2]    5169 segmentation fault  python3 -c 'from PyQt4 import QtGui'

То же самое для PyQt5

Вершина stack trace:
Program received signal SIGSEGV, Segmentation fault.
0x00007ffff717de96 in strlen () from /lib64/libc.so.6
(gdb) bt
#0  0x00007ffff717de96 in strlen () from /lib64/libc.so.6
#1  0x00000000004d9170 in PyUnicode_FromFormatV ()
#2  0x000000000050ea9d in PyErr_Format ()
#3  0x00007ffff0dbe3ea in ?? () from /usr/lib64/python3/site-packages/sip.so
#4  0x00007ffff64dcc17 in PyInit_QtGui ()
   from /usr/lib64/python3/site-packages/PyQt4/QtGui.so
#5  0x00000000005197e2 in _PyImport_LoadDynamicModuleWithSpec ()
#6  0x0000000000516da5 in ?? ()
#7  0x000000000059f909 in PyCFunction_Call ()
#8  0x00000000004fc014 in PyEval_EvalFrameEx ()
...

Некоторая засада в том, что для ванильного python3-module-sip, поставленного pip3 эффект тот же, так что это может быть ошибкой PyQt*
Comment 1 Fr. Br. George 2017-10-05 16:04:34 MSK
Так, это, похоже, таки ошибка PyQt*, сейчас проверил на ванильном PyQt5 и нашем sip — работает
Comment 2 Anton Farygin 2017-10-05 16:28:34 MSK
На PyQT 5 должно быть починено, PyQT 4 тоже обновили, должно заработать, проверь.
Comment 3 Anton Farygin 2017-10-05 16:28:49 MSK
#190296
Comment 4 Fr. Br. George 2017-10-05 18:04:55 MSK
Спасибо, работает!
Comment 5 Ivan Zakharyaschev 2017-10-05 20:38:04 MSK
Действительно, было плохо, теперь проходит проверку (которую я, пользуясь моментом, ещё раз порекламирую):

$ apt-repo --hsh-apt-config=/home/imz/.hasher/sisyphus/apt.conf add 190330
$ apt-repo --hsh-apt-config=/home/imz/.hasher/sisyphus/apt.conf test '' python3-module-sip python3-module-PyQt5 && { hsh-run --mount=/proc,/dev/pts /usr/lib/rpm/check-python3-provs-importable.sh python3-module-PyQt5; echo $?; }
...
0
$ apt-repo --hsh-apt-config=/home/imz/.hasher/sisyphus/apt.conf test '' python3-module-PyQt4 && { hsh-run --mount=/proc,/dev/pts /usr/lib/rpm/check-python3-provs-importable.sh python3-module-PyQt4; echo $?; }
...
PyQt4.uic.pyuic
123
$ hsh-shell --mount=/proc,/dev/pts
[builder@localhost .in]$ python3 -c 'import PyQt4.uic.pyuic'
Error: one input ui-file must be specified
[builder@localhost .in]$ 

А это какой-то странный модуль попал в Provides. (И зависимости на python3-module-sip не хватило почему-то.)

Возвращаясь к исходной проблеме. Интересно будет узнать, оно когда-то работало, а потом стало падать, или сразу было собрано в нерабочем виде.
Comment 6 Anton Farygin 2017-10-05 22:25:56 MSK
@darktemplar говорит, что если собрать pyhton-module-sip, то придётся чинить python-module-PyQT.
Comment 7 Vitaly Lipatov 2017-10-06 11:51:14 MSK
(В ответ на комментарий №6)
> @darktemplar говорит, что если собрать pyhton-module-sip, то придётся чинить
> python-module-PyQT.
Добавил в PyQt5 будущей сборки

%define sipver2 %(rpm -q --qf '%%{VERSION}' python-module-sip)
Requires: python-module-sip = %sipver2