[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