FS#33544 - [eric4] segmentation fault on startup
Attached to Project:
Arch Linux
Opened by Pavel (nyshtyak) - Thursday, 24 January 2013, 11:11 GMT
Last edited by Ray Rashif (schivmeister) - Sunday, 17 February 2013, 19:59 GMT
Opened by Pavel (nyshtyak) - Thursday, 24 January 2013, 11:11 GMT
Last edited by Ray Rashif (schivmeister) - Sunday, 17 February 2013, 19:59 GMT
|
Details
Description:
eric4 (as well as eric5) application cannot start and produces segfault. Additional info: * package version(s): extra/eric4 4.5.8-1 extra/python2-qscintilla 2.7-1 * config and/or log files etc. Steps to reproduce: 1. Install eric4 package: #pacman -S eric4 2. Run eric4: $eric4 =>Segmentation fault (core dumped) Sorry, I cannot attach core dump as I cannot find it in my file system. Putting strace in attachment instead. Hope this will help. |
This task depends upon
Closed by Ray Rashif (schivmeister)
Sunday, 17 February 2013, 19:59 GMT
Reason for closing: Fixed
Additional comments about closing: 4.5.8-2
Sunday, 17 February 2013, 19:59 GMT
Reason for closing: Fixed
Additional comments about closing: 4.5.8-2
http://eric-ide.python-projects.org/eric-download.html
edit: So it's qtwebkit, thanks Felix :)
$ python -c "from PyQt4.QtWebKit import QWebSettings; QWebSettings.globalSettings()"
Segmentation fault (core dumped)
So this should be a purely(?) qtwebkit/pyqt bug. I've tried rebuild pyqt with latest qtwebkit but no luck.
The following code runs without any segfault.
python -c "from PyQt4.Qt import *; app = QApplication([]); from PyQt4.QtWebKit import QWebSettings; a = QWebSettings.globalSettings(); print(3)"
Eric called QWebSettings.globalSettings() before creating a QApplication() (in class declaration) just as my snippet of code did. This does not crash when using qtwebkit 2.2.2-1, but segfaults with 2.3*.
Dunno who takes the responsibility though, got an idea?
Yichao is right that this problem occurs when the QWebSettings method or object is called or initiated inappropriately. You can reproduce this for both Python 2 and 3:
from PyQt4.QtWebKit import QWebSettings
a = QWebSettings.globalSettings()
Patching the program to insert an object instance is not appropriate since it breaks the flow of code and may unintentionally cause other problems that may first go unnoticed, so I will not apply such a patch pending upstream acceptance or acknowledgement (but you can do so at your own discretion).
Anyway, filed the upstream ticket: http://die-offenbachs.homelinux.org:48888/issues/issue81
[1] http://die-offenbachs.homelinux.org:48888/hg/eric5/rev/d041f6bcda5c