Author Topic: [Fixed] 5de8487: Should not freeze in case of a SIGSEGV  (Read 1781 times)

tomreyn

  • MegaGlest Team
  • Airship
  • ********
  • Posts: 2,764
    • View Profile
    • MegaGlest - the free and open source cross platform 3D real-time strategy game
[Fixed] 5de8487: Should not freeze in case of a SIGSEGV
« 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.
« Last Edit: 5 July 2012, 10:04:32 by silnarm »
atibox: Ryzen 1800X (8 cores @3.6GHz), 32 GB RAM, MSI Radeon RX 580 Gaming X 8G, PCI subsystem ID [1462:3417], (Radeon RX 580 chipset, POLARIS10) @3440x1440; latest stable Ubuntu release, (open source) radeon (amdgpu) / mesa video driver
atibox (old): Core2Quad Q9400 (4 cores @2.66GHz), 8 GB RAM, XFX HD-467X-DDF2, PCI subsystem ID [1682:2931], (Radeon HD 4670, RV730 XT) @1680x1050; latest stable Ubuntu release, (open source) radeon / mesa video driver
notebook: HP envy13d020ng
internet access: VDSL2+

· · · How YOU can contribute to MG · Latest development snapshot · How to build yourself · Megapack techtree · Currently hosted MG games · · ·

Yggdrasil

  • Local Moderator
  • Ornithopter
  • ********
  • Posts: 408
    • View Profile
Re: 5de8487: Should not freeze in case of a SIGSEGV
« Reply #1 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.

tomreyn

  • MegaGlest Team
  • Airship
  • ********
  • Posts: 2,764
    • View Profile
    • MegaGlest - the free and open source cross platform 3D real-time strategy game
Re: 5de8487: Should not freeze in case of a SIGSEGV
« Reply #2 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).
atibox: Ryzen 1800X (8 cores @3.6GHz), 32 GB RAM, MSI Radeon RX 580 Gaming X 8G, PCI subsystem ID [1462:3417], (Radeon RX 580 chipset, POLARIS10) @3440x1440; latest stable Ubuntu release, (open source) radeon (amdgpu) / mesa video driver
atibox (old): Core2Quad Q9400 (4 cores @2.66GHz), 8 GB RAM, XFX HD-467X-DDF2, PCI subsystem ID [1682:2931], (Radeon HD 4670, RV730 XT) @1680x1050; latest stable Ubuntu release, (open source) radeon / mesa video driver
notebook: HP envy13d020ng
internet access: VDSL2+

· · · How YOU can contribute to MG · Latest development snapshot · How to build yourself · Megapack techtree · Currently hosted MG games · · ·

silnarm

  • Local Moderator
  • Behemoth
  • ********
  • Posts: 1,373
    • View Profile
Re: 5de8487: Should not freeze in case of a SIGSEGV
« Reply #3 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.
Glest Advanced Engine - Code Monkey

Timeline | Downloads