<div dir="ltr"><div dir="ltr"><div dir="ltr">Hi, <br></div><div dir="ltr"><br></div><div dir="ltr">There is a crash when an SDL2 game (Exult), using KMS-DRM back-end, terminates.<br></div><div>It appears in GBM (gbm_device_destroy()), there migh be also invalid access in egl datas.<br></div><div dir="ltr"><br>SDL2 issue can be found at <a href="https://bugzilla.libsdl.org/show_bug.cgi?id=4530">https://bugzilla.libsdl.org/show_bug.cgi?id=4530</a><br>(with a very small test case)<br>Exult game at <a href="https://github.com/exult">https://github.com/exult</a><br><br>It occurs because: <br>- Mesa uses atexit()<br>- Exult game also chooses atexit() to clean up SDL2 internals. (e.g atexit(SDL_Quit))</div><div dir="ltr"><br></div><div>Depending on how atexit callbacks are sorted/registered : <br></div><div dir="ltr">- Mesa cleans up first GBM with an atexit().<br>- If SDL2 tries to clean up things once again and it crashes.</div><div dir="ltr"><br>This is reported for SDL2, but any layer using atexit() and GBM could reproduce the same crash.<br></div><div dir="ltr"><br>There are surely several ways to avoid this, but I wonder what you would advice to solve this.<br></div><div dir="ltr"><br></div><div>Thanks for your help,</div><div>Sylvain<br></div><div dir="ltr"><br></div></div></div>