ForLoveOfCats / SkyOfSteel

Git repo and bug tracker for SkyOfSteel
https://skyofsteel.org
MIT License
42 stars 11 forks source link

Crashes sometimes on exit #70

Closed kroppt closed 4 years ago

kroppt commented 5 years ago

OS: Windows 10 Version: 0.1.4

I have not been able to replicate it exactly, but it may have to do with how long the application is running. In one case, it occurred to both clients when testing on the same PC and server for a while.

ForLoveOfCats commented 5 years ago

Hi :wave: Thanks for the bug report!

I too noticed this specifically on Windows when making sure the exported binary worked but it presented itself sporadically and I had to get 0.1.4 out the door. I've also recently spotted a hang while quitting when connected to a server with Godot complaining of a Mono error. I've been planning on waiting for the first 3.2 alphas to drop before reporting this as the whole Godot Mono module was recently rewritten and I wanted to make sure the issue was still present before reporting. Guess I'll have to build master again to test as for some reason my silly brain just made the connection that the two crashes may be related as I had assumed that the Windows crash was an issue with the modifications that SoS requires be made to Godot in order to be exported (being fixed in 3.2).

If you can figure out how to reproduce the crash you are experiencing that would be awesome, it may or may not be related to the exported binary and the Windows platform. In the mean time I'll test the client crash on the latest Godot master. Hopefully they are connected/the same.

kroppt commented 5 years ago

I have a dump of the process. It's a bit too big to upload somewhere (1 GB), so I'll look at that when I get the chance. I suppose I forgot to mention that the crash I had showed itself as the application hanging, hence why I was able to get the dump.

One thing I am having trouble with is getting symbols for the executable, as it's not accepting the SkyOfSteel.dll symbols from my clone. It is looking for them at C:\Users\ForLoveOfCats\Stuff\sos-godot-export\bin\godot.windows.opt.64.mono.pdb

If this is just an artifact of the way Mono is implemented into Godot, then waiting is the only option. But it could be a bug in the project code.

ForLoveOfCats commented 5 years ago

Yeah that's the path where the export template was original built. I've reproduced the hang on Godot master (early 3.2) so I'm going to open a bug for it with any information available. What sucks is that it occurs to intermittently that I can't nail down exactly what on my end (if anything at all) is causing Godot+Mono to hang in such a way.

codingglitch commented 5 years ago

Same bug happened to me just now, on 0.1.5, but instead of showing that it crashed, it just's... stays here without purpose.

ForLoveOfCats commented 5 years ago

That would be Godot not cleaning up after itself when this crash occurs. The engine just sits there not finishing the shutdown process. This is an extremely frustrating issue.

ForLoveOfCats commented 4 years ago

I think I've worked around the issue with https://github.com/ForLoveOfCats/SkyOfSteel/commit/5bccb9a7a7525716fe7c88a241e68cb39fd2b592 :crossed_fingers:

I'll keep this open for the time being

Edit: lol nevermind

ForLoveOfCats commented 4 years ago

This should be fixed with Godot 3.2. I will close this issue once a version of SkyOfSteel ships with the fixed Godot

ForLoveOfCats commented 4 years ago

This should be fixed with the latest (and last) stable release 0.1.7 which is now available on Itch