[QScintilla] QScintilla v2.9 Release Candidate

Baz Walter bazwal at ftml.net
Sun Apr 5 19:27:55 BST 2015


On 04/04/15 18:56, Baz Walter wrote:
> On 04/04/15 09:23, Phil Thompson wrote:
>> The current QScintilla snapshot is a release candidate for v2.9. Please
>> test.
>
> Hello Phil
>
> I'm currently getting segfaults whenever I close a QScintilla widget in
> a program that otherwise works fine with the current stable releases.
>
> I don't have a simple test case at the moment, but after opening a blank
> editor and then immediately closing it, I get the backtrace below.
>
> This is on Linux (gcc 4.9.2) using all the latest snapshots with the
> Python bindings (Python3/Qt5):
>
Hi Phil

Here's a simple test case that segfaults every time for me after I click 
the "Test" button:

import sys
from PyQt5 import QtWidgets, Qsci

class Window(QtWidgets.QWidget):
     def __init__(self):
         super().__init__()
         self.editor = Qsci.QsciScintilla(self)
         self.button = QtWidgets.QPushButton('Test', self)
         self.button.clicked.connect(self.handleButton)
         layout = QtWidgets.QVBoxLayout(self)
         layout.addWidget(self.editor)
         layout.addWidget(self.button)

     def handleButton(self):
         self.editor.deleteLater()

if __name__ == "__main__":

     app = QtWidgets.QApplication(sys.argv)
     window = Window()
     window.show()
     app.exec_()


And here's the backtrace:

[Thread debugging using libthread_db enabled]
Using host libthread_db library "/usr/lib/libthread_db.so.1".
[New Thread 0x7fffe83f0700 (LWP 1439)]

Program received signal SIGSEGV, Segmentation fault.
0x00007fffeb690525 in Window::GetPosition() () from 
/home/usr/opt/snapshot5-3/lib/qt5/lib/libqscintilla2.so.12
(gdb) bt
#0  0x00007fffeb690525 in Window::GetPosition() () from 
/home/usr/opt/snapshot5-3/lib/qt5/lib/libqscintilla2.so.12
#1  0x00007fffeb690739 in Window::GetClientPosition() () from 
/home/usr/opt/snapshot5-3/lib/qt5/lib/libqscintilla2.so.12
#2  0x00007fffeb856a23 in Editor::GetClientDrawingRectangle() () from 
/home/usr/opt/snapshot5-3/lib/qt5/lib/libqscintilla2.so.12
#3  0x00007fffeb857341 in Editor::RectangleFromRange(Range, int) () from 
/home/usr/opt/snapshot5-3/lib/qt5/lib/libqscintilla2.so.12
#4  0x00007fffeb857877 in Editor::InvalidateRange(int, int) () from 
/home/usr/opt/snapshot5-3/lib/qt5/lib/libqscintilla2.so.12
#5  0x00007fffeb857e63 in Editor::InvalidateCaret() () from 
/home/usr/opt/snapshot5-3/lib/qt5/lib/libqscintilla2.so.12
#6  0x00007fffeb692e3f in QsciScintillaQt::timerEvent(QTimerEvent*) () 
from /home/usr/opt/snapshot5-3/lib/qt5/lib/libqscintilla2.so.12
#7  0x00007ffff551f023 in QObject::event(QEvent*) () from 
/usr/lib/libQt5Core.so.5
#8  0x00007ffff5dd4acc in QApplicationPrivate::notify_helper(QObject*, 
QEvent*) () from /usr/lib/libQt5Widgets.so.5
#9  0x00007ffff5dd9f10 in QApplication::notify(QObject*, QEvent*) () 
from /usr/lib/libQt5Widgets.so.5
#10 0x00007ffff65ba79e in sipQApplication::notify(QObject*, QEvent*) () 
from 
/home/usr/opt/snapshot5-3/lib/python3.4/site-packages/PyQt5/QtWidgets.so
#11 0x00007ffff54edd1b in QCoreApplication::notifyInternal(QObject*, 
QEvent*) () from /usr/lib/libQt5Core.so.5
#12 0x00007ffff5544f6d in QTimerInfoList::activateTimers() () from 
/usr/lib/libQt5Core.so.5
#13 0x00007ffff55453b1 in ?? () from /usr/lib/libQt5Core.so.5
#14 0x00007ffff4a3a71d in g_main_context_dispatch () from 
/usr/lib/libglib-2.0.so.0
#15 0x00007ffff4a3aa08 in ?? () from /usr/lib/libglib-2.0.so.0
#16 0x00007ffff4a3aabc in g_main_context_iteration () from 
/usr/lib/libglib-2.0.so.0
#17 0x00007ffff5546077 in 
QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) 
() from /usr/lib/libQt5Core.so.5
#18 0x00007ffff54eb7b2 in 
QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from 
/usr/lib/libQt5Core.so.5
#19 0x00007ffff54f318c in QCoreApplication::exec() () from 
/usr/lib/libQt5Core.so.5
#20 0x00007ffff651f38b in meth_QApplication_exec_ () from 
/home/usr/opt/snapshot5-3/lib/python3.4/site-packages/PyQt5/QtWidgets.so
#21 0x00007ffff7a46508 in call_function (oparg=<optimized out>, 
pp_stack=0x7fffffffe280) at Python/ceval.c:4234
#22 PyEval_EvalFrameEx (f=0x7ffff6b95438, throwflag=<optimized out>) at 
Python/ceval.c:2836
#23 0x00007ffff7a47793 in PyEval_EvalCodeEx (_co=0x97e2b8, 
_co at entry=0x7ffff6a8e1e0, globals=0x0, globals at entry=0x7ffff6b92348,
     locals=0x7fffeb8566d0 <Editor::GetClientRectangle() const>, 
locals at entry=0x7ffff6b92348, args=0x0, argcount=1, argcount at entry=0, 
kws=0x2,
     kws at entry=0x0, kwcount=-156704288, defs=0x0, defcount=0, 
kwdefs=0x0, closure=0x0) at Python/ceval.c:3585
#24 0x00007ffff7a4783b in PyEval_EvalCode (co=co at entry=0x7ffff6a8e1e0, 
globals=globals at entry=0x7ffff6b92348, locals=locals at entry=0x7ffff6b92348)
     at Python/ceval.c:773
#25 0x00007ffff7a7061e in run_mod (arena=0x6c8550, flags=0x7fffffffe4e0, 
locals=0x7ffff6b92348, globals=0x7ffff6b92348, filename=0x7ffff6a85af0,
     mod=0x68bf10) at Python/pythonrun.c:2180
#26 PyRun_FileExFlags (fp=<optimized out>, filename_str=<optimized out>, 
start=<optimized out>, globals=0x7ffff6b92348, locals=0x7ffff6b92348,
     closeit=1, flags=0x7fffffffe4e0) at Python/pythonrun.c:2133
#27 0x00007ffff7a71a33 in PyRun_SimpleFileExFlags (fp=0x97e2b8, 
fp at entry=0x6920a0, filename=0x7ffff6b89350 "test_qsci_29.py", closeit=1,
     flags=0x45504f52505f5445, flags at entry=0x7fffffffe4e0) at 
Python/pythonrun.c:1606
#28 0x00007ffff7a72833 in PyRun_AnyFileExFlags (fp=fp at entry=0x6920a0, 
filename=<optimized out>, closeit=closeit at entry=1,
     flags=flags at entry=0x7fffffffe4e0) at Python/pythonrun.c:1292
#29 0x00007ffff7a8cff4 in run_file (p_cf=0x7fffffffe4e0, 
filename=0x629060 L"test_qsci_29.py", fp=0x6920a0) at Modules/main.c:319
#30 Py_Main (argc=argc at entry=2, argv=argv at entry=0x602010) at 
Modules/main.c:751
#31 0x0000000000400a81 in main (argc=2, argv=<optimized out>) at 
./Modules/python.c:69



More information about the QScintilla mailing list