Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-69780

GUI is deadlocked when a MessageBox popped up after QOpenGLDebugLogger::messageLogged signal due to SOME OpenGL errors

    XMLWordPrintable

Details

    • Bug
    • Resolution: Out of scope
    • P2: Important
    • None
    • 5.11.0
    • GUI: OpenGL
    • None
    • Windows

    Description

      I've written a program, demonstrating strange behavior, when some OpenGL errors cause deadlock, if a QOpenGLDebugLogger::messageLogged signal has being emitted in an OpenGL engine thread with DirectConnection, and its slot emits another signal with BlockingQueueConnection, so the GUI thread enteres this last signal slot and calls QMessageBox::warning there.

      My idea is to block both the engine and the GUI threads, when i want to show some message manually or an OpenGL error has occured, so i can click OK on a Message Box, and so continue the GUI thread executing, and so the engine thread executing.

      I suppose that this is a bug because not all OpenGL errors triggering QOpenGLDebugLogger::messageLogged signal lead to a deadlock in the GUI thread. The program shows this different behavior too. And as this behavior is different in same situations (error handling) it seems like unexpected/undefined behavior for me.

      Attachments

        1. main.cpp
          3 kB
          mr.indieperson
        2. main.h
          0.8 kB
          mr.indieperson
        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

        Activity

          People

            lagocs Laszlo Agocs
            mr.indieperson mr.indieperson
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes