[Development] [OS X/xcb] error: xp_attach_gl_context returned: 2 followed by hang during application exit

René J.V. Bertin rjvbertin at gmail.com
Sun Mar 29 23:02:41 CEST 2015


On Sunday March 29 2015 11:57:16 Jeremy Huddleston Sequoia wrote:

> > The OpenGL examples run on a local X server, despite the fact that the xcb plugin links to both the X11 GL libraries and {OpenGL,AGL}.framework .
> 
> Yeah, you should drop those other links.  Hopefully the libGL link is at least first.  Most of the gl* function calls in the mesa libGL just forward on to OpenGL.framework, but there are a few that don't.

I can try (once more) to see if it changes anything if I drop those links, but the list currently seems to have an appropriate order:

%> otool -L  /opt/local/share/qt5/plugins/platforms/libqxcb.dylib
/opt/local/share/qt5/plugins/platforms/libqxcb.dylib:
        libqxcb.dylib (compatibility version 0.0.0, current version 0.0.0)
        /opt/local/lib/libX11-xcb.1.dylib (compatibility version 2.0.0, current version 2.0.0)
        /opt/local/lib/libXi.6.dylib (compatibility version 8.0.0, current version 8.0.0)
        /opt/local/lib/libGL.1.dylib (compatibility version 1.2.0, current version 1.2.0)
        /opt/local/lib/libxcb-render-util.0.dylib (compatibility version 1.0.0, current version 1.0.0)
        /opt/local/lib/libSM.6.dylib (compatibility version 7.0.0, current version 7.1.0)
        /opt/local/lib/libICE.6.dylib (compatibility version 10.0.0, current version 10.0.0)
        /opt/local/lib/libxcb-glx.0.dylib (compatibility version 1.0.0, current version 1.0.0)
        /opt/local/lib/libxcb-render.0.dylib (compatibility version 1.0.0, current version 1.0.0)
        /opt/local/lib/libxcb.1.dylib (compatibility version 3.0.0, current version 3.0.0)
        /opt/local/lib/libxcb-image.0.dylib (compatibility version 1.0.0, current version 1.0.0)
        /opt/local/lib/libxcb-icccm.4.dylib (compatibility version 5.0.0, current version 5.0.0)
        /opt/local/lib/libxcb-sync.1.dylib (compatibility version 2.0.0, current version 2.0.0)
        /opt/local/lib/libxcb-xfixes.0.dylib (compatibility version 1.0.0, current version 1.0.0)
        /opt/local/lib/libxcb-shm.0.dylib (compatibility version 1.0.0, current version 1.0.0)
        /opt/local/lib/libxcb-randr.0.dylib (compatibility version 2.0.0, current version 2.0.0)
        /opt/local/lib/libxcb-shape.0.dylib (compatibility version 1.0.0, current version 1.0.0)
        /opt/local/lib/libxcb-keysyms.1.dylib (compatibility version 2.0.0, current version 2.0.0)
        /opt/local/lib/libxcb-xkb.1.dylib (compatibility version 2.0.0, current version 2.0.0)
        /opt/local/lib/libfontconfig.1.dylib (compatibility version 10.0.0, current version 10.0.0)
        /opt/local/lib/libfreetype.6.dylib (compatibility version 18.0.0, current version 18.4.0)
        /opt/local/libexec/qt5/Library/Frameworks/QtGui.framework/Versions/5/QtGui (compatibility version 5.4.0, current version 5.4.1)
        /opt/local/libexec/qt5/Library/Frameworks/QtCore.framework/Versions/5/QtCore (compatibility version 5.4.0, current version 5.4.1)
        /System/Library/Frameworks/DiskArbitration.framework/Versions/A/DiskArbitration (compatibility version 1.0.0, current version 1.0.0)
        /System/Library/Frameworks/IOKit.framework/Versions/A/IOKit (compatibility version 1.0.0, current version 275.0.0)
        /opt/local/libexec/qt5/Library/Frameworks/QtDBus.framework/Versions/5/QtDBus (compatibility version 5.4.0, current version 5.4.1)
        /opt/local/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.8)
        /System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa (compatibility version 1.0.0, current version 20.0.0)
        /System/Library/Frameworks/OpenGL.framework/Versions/A/OpenGL (compatibility version 1.0.0, current version 1.0.0)
        /opt/local/lib/libgthread-2.0.0.dylib (compatibility version 4201.0.0, current version 4201.1.0)
        /opt/local/lib/libglib-2.0.0.dylib (compatibility version 4201.0.0, current version 4201.1.0)
        /opt/local/lib/libintl.8.dylib (compatibility version 10.0.0, current version 10.3.0)
        /System/Library/Frameworks/ApplicationServices.framework/Versions/A/ApplicationServices (compatibility version 1.0.0, current version 48.0.0)
        /opt/local/lib/libXrender.1.dylib (compatibility version 5.0.0, current version 5.0.0)
        /opt/local/lib/libXext.6.dylib (compatibility version 11.0.0, current version 11.0.0)
        /opt/local/lib/libX11.6.dylib (compatibility version 10.0.0, current version 10.0.0)
        /System/Library/Frameworks/AGL.framework/Versions/A/AGL (compatibility version 1.0.0, current version 1.0.0)
        /usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 120.0.0)
        /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1197.1.1)

But that would just be the xcb plugin. The host applications will still be linked against {OpenGL,AGL}.framework, at least as long as I just build the xcb platform plugin as an alternative for a Qt install that uses Cocoa by (and as the supported) default.

> BTW, assuming you're using XQuartz, we provide the dSYMS.  Eg:
> http://xquartz-dl.macosforge.org/SL/XQuartz-2.7.8_rc1.dSYMS.tar.bz2

That's good to know, thanks.

> I suspect this is http://xquartz.macosforge.org/trac/ticket/420

That does seem relevant indeed.

> No, it's almost certainly the XQuartz-specific GLX bits in mesa that haven't had much attention in 6+ years.

The fact that there's a BadValue error is unlikely to be Qt's doing, nor the deadlock in XLockDisplay. But is there nothing Qt applications could or should do to handle the window-close event in such a way that the issue is avoided?

> Note that we need a few patches to get things working:
> http://trac.macports.org/browser/trunk/dports/x11/mesa/files

I'll see if installing the latest port:mesa changes anything.

R.



More information about the Development mailing list