I wrote: >From the stack trace that Paul Goyette provided it looks to me like >a Firefox bug is triggering one in Mesa.
I have now got a debug system and firefox build with debug-info, a firefox build with debug wouldn't display an URL. I commented out the locking code to see what happened: Index: errors.c =================================================================== RCS file: /cvsroot/xsrc/external/mit/MesaLib/dist/src/mesa/main/errors.c,v retrieving revision 1.1.1.4 diff -u -r1.1.1.4 errors.c --- errors.c 24 Sep 2019 18:10:11 -0000 1.1.1.4 +++ errors.c 15 Oct 2019 10:57:17 -0000 @@ -306,6 +306,7 @@ do_output = should_output(ctx, error, fmtString); +#if 0 simple_mtx_lock(&ctx->DebugMutex); if (ctx->Debug) { do_log = _mesa_debug_is_message_enabled(ctx->Debug, @@ -318,6 +319,9 @@ do_log = GL_FALSE; } simple_mtx_unlock(&ctx->DebugMutex); +#else + do_log = GL_FALSE; +#endif if (do_output || do_log) { char s[MAX_DEBUG_MESSAGE_LENGTH], s2[MAX_DEBUG_MESSAGE_LENGTH]; The it now crashes here (also errors.c): static GLboolean should_output(struct gl_context *ctx, GLenum error, const char *fmtString) { static GLint debug = -1; /* Check debug environment variable only once: */ if (debug == -1) { const char *debugEnv = getenv("MESA_DEBUG"); #ifdef DEBUG if (debugEnv && strstr(debugEnv, "silent")) debug = GL_FALSE; else debug = GL_TRUE; #else if (debugEnv) debug = GL_TRUE; else ==> debug = GL_FALSE; #endif Is there some problem with writing to static variables defined in a shlib ? I also think that it is a bug in Firefox for it to be triggering this assertion: ASSERT_OUTSIDE_BEGIN_END_WITH_RETVAL(ctx, NULL); It is within a call to glGetString(GL_VERSION) in glxtest().