Xserv aborts with __glXExtensionInit: AddExtensions failed.
Submitted by Dietmar M. Zettl
Assigned to Jeremy Huddleston Sequoia
Link to original bug (#103662)
Description
Created attachment 135370 Xquartz stack trace
I'm using Xquartz to connect via XDM to a FreeBSD 10.3 machine with CDE 2.2.4 running. It happens quite regularly that Xquartz aborts with the error: __glXExtensionInit: AddExtensions failed. (see also the attached stack trace)
I tried to track down the issue with my limited knowledge of Xquartz and Xserver code. So, please be forgiving if my conclusions are totally wrong. This is the result of my analysis:
- When Xquartz receives an exception it resets the sever -> cleaning everything up and then starting it up again. When starting up, however, it initializes GLX extension (GlxExtensionInit) more than once. This results in exceeding the maximum number of extension errors (LAST_ERROR). I couldn't figure out what actually calls GLX extension again and why.
I did implement a hack to work-a-round this problem: I'm keeping track of the number of invocations of GlxExtensionInit and then check at the beginning of GlxExtensionInit whether the number of GlxExtensionInit invocations exceeds the number of serverGenerations. If that's the case GlxExtensionInit does nothing. My preliminary tests indicate, this hack cures the symptom. However, it is not a proper treatment.
Attachment 135370, "Xquartz stack trace":
Stacktrace-Xquartz-09112017.txt
Version: 2.7.11 (xserver-1.18.4)