[PyQt] Qt 5.13: Segfault on exit with Windows + QtWebEngine
Phil Thompson
phil at riverbankcomputing.com
Wed Jul 17 16:58:22 BST 2019
On 17/07/2019 12:48, Florian Bruhin wrote:
> On Wed, Jul 17, 2019 at 11:54:10AM +0100, Phil Thompson wrote:
>> On 13/07/2019 16:43, Florian Bruhin wrote:
>> > With a quite minimal QtWebEngine example like this:
>> >
>> > from PyQt5.QtWebEngineWidgets import QWebEngineProfile
>> > from PyQt5.QtWidgets import QApplication
>> > from PyQt5.QtCore import QTimer
>> >
>> > qapp = QApplication([])
>> > p = QWebEngineProfile()
>> > QTimer.singleShot(500, qapp.quit)
>> > qapp.exec_()
>> >
>> > I get a segfault on exit with Python 3.7.4 and PyQt5/PyQtWebEngine
>> > 5.13.0
>> > on Windows 10.
>> >
>> > When I downgrade to PyQt5 5.12.3 and PyQtWebEngine 5.12.1 things work
>> > fine.
>> >
>> > Unfortunately I haven't been able to get a reliable stacktrace. Here are
>> > some
>> > examples of the stacks I got:
>> > https://paste.the-compiler.org/view/5774da86
>> > I don't think they really make sense though.
>>
>> I can't reproduce this - although I am using Python v3.7.0.
>
> I can reproduce it with Python 3.7.0 as well (both 32 and 64-bit).
>
> Note that I don't get a "Python.exe has stopped" window, but "echo $?"
> shows
> False in Powershell.
>
> Similarly, running it from Python:
>
> subprocess.run([sys.executable, 'segv.py'], check=True)
>
> Gives me:
>
> subprocess.CalledProcessError: Command '['...\\python.exe',
> 'segv.py']' returned non-zero exit status 3221225477.
>
> Where 3221225477 is 0xC0000005, i.e. an access violation.
I can reproduce that. However if I build the latest PyQt against Qt
v5.12.4 the problem goes away, which suggests a Qt problem. I can only
suggest playing with things to try and get things destroyed in a
different order, then I might be able to add a workaround.
Phil
More information about the PyQt
mailing list