OGL: deadlock encountered with Xinerama enabled

XMLWordPrintable

    • Type: Bug
    • Resolution: Duplicate
    • Priority: P4
    • None
    • Affects Version/s: 5.0
    • Component/s: client-libs
    • None
    • 2d
    • b27
    • 6
    • generic
    • solaris_9

      A deadlock has been found, caused indirectly by the recent integration
      of the STR (single-threaded rendering) changes for the OGL pipeline.
      The deadlock only occurs when both OGL and Xinerama are enabled; see
      attached thread dump. The following shows basically what is happening
      to cause the deadlock. (The QFT is the one thread that processes all
      OGL-related operations, including some GLXGraphicsConfig initialization.)

             XToolkit thread QueueFlusher thread
      - handleConfigureNotifyEvent()
        - acquire AWT lock
          - checkIfOnNewScreen()
            - getDefaultConfiguration()
              - GLXGC.getConfig()
                - // init GLXGC on QFT
                                               - OGLRenderQueue.flushNow()
                                                 - acquire AWT lock
                                                   (but the lock has already
                                                    been grabbed by the
                                                    XToolkit thread, so
                                                    deadlock)

      So it should be noted that GLXGraphicsConfig initialization happens on a
      different thread (the QFT), which tries to acquire the AWT lock. I'm
      not that familiar with the code in
      XDecoratedPeer.handleConfigureNotifyEvent(), but it seems dangerous to
      have such a large synchronized() block around such complex code.
      ###@###.### 2005-04-01 01:36:52 GMT

            Assignee:
            Christopher Campbell (Inactive)
            Reporter:
            Christopher Campbell (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported:
              Indexed: