Details
-
Bug
-
Resolution: Done
-
P3: Somewhat important
-
5.6.0
-
OpenSuse 13.2
-
e2b8c3fe8f83cf448df4b0476f4f0dd4dd7d1b80
Description
This is quite likely a follow up for QTBUG-48969 and this change https://codereview.qt-project.org/#/c/145458/
When a webengineview is instantiated on an X11 screen differing from the one the app is started at more and more memory is consumed with every repaint.
Eventually the application is terminated.
Memory is leaked in the application itself, not in the QtWebengine process.
My guess is that textures created when "slow copy of mailbox textures when contexts are not shared" is happening are not freed.
The problem is reproducible with the test app from QTBUG-48969. Just scroll around for some time on a second screen.
It is even easier when using a site like flightradar24.com.
I have seen backtraces where memory allocation in unrelated parts of the app fails as well as problems when doing the actual painting.
Program terminated with signal SIGABRT, Aborted.
#0 0xb774de4c in __kernel_vsyscall ()
#0 0xffffffff in __kernel_vsyscall ()
#1 0xffffffff in raise () at /lib/libc.so.6
#2 0xffffffff in abort () at /lib/libc.so.6
#3 0xffffffff in __assert_fail_base () at /lib/libc.so.6
#4 0xffffffff in () at /lib/libc.so.6
#5 0xffffffff in _XReply () at /usr/lib/libX11.so.6
#6 0xffffffff in () at /usr/X11R6/lib/libGL.so.1
#7 0xffffffff in () at /usr/X11R6/lib/libGL.so.1
#8 0xffffffff in () at /usr/X11R6/lib/libGL.so.1
#9 0xffffffff in () at /usr/X11R6/lib/libGL.so.1
#10 0xffffffff in () at /usr/lib/libnvidia-glcore.so.340.65
#11 0xffffffff in () at /usr/lib/libnvidia-glcore.so.340.65
#12 0xffffffff in () at /usr/lib/libnvidia-glcore.so.340.65
#13 0xffffffff in () at /usr/lib/libnvidia-glcore.so.340.65
#14 0xffffffff in () at /usr/X11R6/lib/libGL.so.1
#15 0xffffffff in () at /usr/X11R6/lib/libGL.so.1
#16 0xffffffff in () at /usr/X11R6/lib/libGL.so.1
#17 0xffffffff in glXMakeContextCurrent () at /usr/X11R6/lib/libGL.so.1
#18 0xffffffff in QGLXContext::makeCurrent(QPlatformSurface*) (this=0xc85b828, surface=0xca4a708) at /home/m2puser/devel/qt5/qtbase/src/plugins/platforms/xcb/gl_integrations/xcb_glx/qglxintegration.cpp:487
#19 0xffffffff in QOpenGLContext::makeCurrent(QSurface*) (this=this@entry=0xc88ebf8, surface=surface@entry=0xbfdcb620) at /home/m2puser/devel/qt5/qtbase/src/gui/kernel/qopenglcontext.cpp:968
#20 0xffffffff in QtWebEngineCore::DelegatedFrameNode::preprocess() (this=0x1756be30) at /home/m2puser/devel/qt5/qtwebengine/src/core/delegated_frame_node.cpp:452
#21 0xffffffff in QSGRenderer::preprocess() (this=0x17561b30) at /home/m2puser/devel/qt5/qtdeclarative/src/quick/scenegraph/coreapi/qsgrenderer.cpp:277