Hi, AIUI, GDM considers that an X server that has lasted more than 3 seconds has not failed. The fact that it respawns it indefinitely is therefore an intended and desirable behavior (one could discuss whether 3 seconds is enough, but I think this is a different topic). This is what Neil's debug logs are about.
For the case where X lasts less than 3 seconds, GDM has a mechanism that is supposed to stop respawning after a certain number of tries. This mechanism however does not work, as Cyril initially reported, and as Neil reproduced by replacing /usr/bin/Xorg with a simple "exit 1" shell script. I attach a debug log corresponding to that latter case. As one can see, before moving into GDM_DISPLAY_FAILED state, the display is first moved to the GDM_DISPLAY_FINISHED state. The problem is that the code handling the GDM_DISPLAY_FINISHED state resets to zero the counter of the number of failures (line 330 of gdm-local-display-factory.c). Hence the maximum number of failures is never reached, and GDM spawns X servers like crazy. -- .''`. Sébastien Villemot : :' : Debian Developer `. `' http://www.dynare.org/sebastien `- GPG Key: 4096R/381A7594
debug.log.xz
Description: application/xz
signature.asc
Description: This is a digitally signed message part