Details
Description
Sometimes (especially in the CI) the qwebenginehistoryinterface test (in 5.10 renamed to qwebengineshutdown) hang without any output.
If verbose logging is enabled using:
QTWEBENGINE_CHROMIUM_FLAGS="--v=1" ./tst_qwebengineshutdown
One can see that the application is trying to revive the GPU thread again and again.
[76822:46851:1215/191343.753288:VERBOSE1:ipc_sync_channel.cc(509)] Canceling pending sends [76822:48387:1215/191343.753460:VERBOSE1:ipc_sync_channel.cc(509)] Canceling pending sends [76822:44035:1215/191343.753874:VERBOSE1:browser_gpu_channel_host_factory.cc(125)] Failed to create channel on existing GPU process. Trying to restart GPU process. [76822:44035:1215/191343.753931:VERBOSE1:browser_gpu_channel_host_factory.cc(125)] Failed to create channel on existing GPU process. Trying to restart GPU process. [76822:46851:1215/191343.753963:VERBOSE1:ipc_sync_channel.cc(509)] Canceling pending sends [76822:44035:1215/191343.753980:VERBOSE1:browser_gpu_channel_host_factory.cc(125)] Failed to create channel on existing GPU process. Trying to restart GPU process. [76822:44035:1215/191343.754029:VERBOSE1:browser_gpu_channel_host_factory.cc(125)] Failed to create channel on existing GPU process. Trying to restart GPU process.
In the attached stacktrace file, one can see that the main thread is waiting in a thread join operation, whereas an IO thread tries to recreate the GPU thread.