MegaGlest Forum

Archives (read only) => Glest Advanced Engine => Bug reports => Topic started by: tomreyn on 19 February 2012, 09:10:55

Title: [Fixed] 5de8487: Should not freeze in case of a SIGSEGV
Post by: tomreyn on 19 February 2012, 09:10:55
For some reason, if a segmentation faul occurs, the game just freezes on Linux. This is problematic if you were in full screen mode, since there is then no way to recover other than to SSH into the affected PC and kill the process (well, magic sysrq's may work, I haven't tried, but that's not ideal either). In my opinoion the process should just exit if it runs into a SIGSEGV. I suspect a bug in the signal/exception handling code.
Title: Re: 5de8487: Should not freeze in case of a SIGSEGV
Post by: Yggdrasil on 19 February 2012, 13:04:20
Looks like it's not really freezing but waiting for you to press the ok-button on the error dialog. However the dialog isn't shown for some reason. A possible workaround is to press Alt+F4 which breaks out of the event loop and continues on. I'll see what i can do.
Title: Re: 5de8487: Should not freeze in case of a SIGSEGV
Post by: tomreyn on 19 February 2012, 16:44:18
For me, Alt-F4 works but only if you were in windowed mode already. Enter never works.
However, now that I've fixed my function keys, I can switch to another terminal by pressing Ctrl-Alt-Fn ( with n in 1..8 ) fine. Where I can then login and run killall -9 glestadv (other signals have no effect).
Title: Re: 5de8487: Should not freeze in case of a SIGSEGV
Post by: silnarm on 5 July 2012, 10:04:18
<techy>
Yup, I added support for framebuffer objects a while back, it requires a 'reset' per frame before any drawing, which I seem to have foolishly decided should be done by each ProgramState implementation, rather than just in Program::render(), CrashProgramState wasn't calling it, so it was rendering to the default frame buffer, not our own, then that was all being overwritten in Renderer::swapBuffers() which copied our custom frame buffer (which still had what was last rendered before the crash) to the default :look:
</techy>
Fixed.