View Issue Details

IDProjectCategoryView StatusLast Update
0004996Spring engineLuapublic2015-11-18 12:52
Reporterwoutershep Assigned Toabma  
PrioritynormalSeveritycrashReproducibilityalways
Status closedResolutionunable to reproduce 
Product Version100.0 
Target Version101.0 
Summary0004996: Crash while loading LuaUI.
DescriptionI was trying to package this software for the linux distribution Exherbo, a from source distribution sorta like gentoo. Whilst i managed to compile it and get all the things installed in the right places actually playing a game doesn't seem to work. The game starts properly into the main screen, but when pressing Test the Game it loads properly all the way up until Loading LuaUI and then it crashes. Ive tried to debug it myself but it seems to be outside of my ability to fully track down. There seems to be some weirdness with exceptions going on that i don't know how to track further in gdb.

Sometimes it segfaults, sometimes it aborts, sometimes it reports on throwing a lua_longjmp*.
I've compiled and debugged various spring builds with different -O values but i haven't noted down what i saw with which. But its always in LuaVFS::Include.
Steps To ReproduceStart spring. Press Test the Game.
Additional InformationI think its important to note that exherbo uses a different filesystem layout than most and that this might be related. I had to give quite a lot arguments to cmake to make spring install everything into the right place and so that spring could properly find it itself.

"""
-DCMAKE_INSTALL_PREFIX=/usr
-DBINDIR=$(exhost --target)/bin
-DLIBDIR=$(exhost --target)/lib
-DDATADIR=share/${PN}

-DAI_LIBS_DIR=$(exhost --target)/lib/${PN}
-DAI_DATA_DIR=share/${PN}

-DPRD_BINDIR=/usr/$(exhost --target)/bin
-DPRD_LIBDIR=/usr/$(exhost --target)/lib

-DAPPLICATIONS_DIR=/usr/share/applications
-DDOCDIR=/usr/share/doc/${PNVR}
-DMANDIR=/usr/share/man
-DMIME_DIR=/usr/share/mime
-DPIXMAPS_DIR=/usr/share/pixmaps
"""

Where $(exhost --target) is something like x86_64-pc-linux-gnu. and ${PN} is spring.

The following is a short synopsis of my attempt to debug:

I strace'd it with -e trace=file which clearly showed that the crash was directly after checking for L10N/commands_fr.lua, which is done by cont/LuaUI/layout.lua.

A backtrace (there is one at the end of the attachment) showed the problem was within the lua VFS stuff too.

So with that in mind i zoned in on that specific part stepping over the lines, it can be seen in the attachment the code gets up to lua_error(L) (which is expected the way i understand it) and combined with this peice of information:

"""As you know, compiling Lua as C++ basically changes longjmp() in
LUAI_THROW to throw; and setjmp() in LUAI_TRY to try {} catch() {}.
This change is crucial as longjmp/setjmp basically do not call any
destructors in C++ objects."""

in mind it can then be seen that it then unwinds the stack, destructing the three strings in the process. Just before it explodes with the SIGABRT.
TagsNo tags attached.
Attached Files
spring.gdb.txt (Attachment missing)
Checked infolog.txt for Errors

Activities

cleanrock

2015-11-15 08:08

reporter   ~0015329

Last edited: 2015-11-15 08:09

I doubt you need to make spring a distro package, lobby clients download pre-built spring engines which i believe only need the non-standard libs SDL2 and OpenAL from distro.
You find the current (100.0) pre-built engine here:
http://springrts.com/dl/buildbot/default/master/100.0/

Instead try to package SpringLobby: https://github.com/springlobby/springlobby

Since it is for a Linux distro you may want try flobby which also support the Zero-K game server:
https://github.com/cleanrock/flobby

abma

2015-11-16 02:58

administrator   ~0015330

Last edited: 2015-11-16 02:59

does it work with LoadingMT = 0 ?

you have manually set LoadingMT = 1, why?

abma

2015-11-18 12:52

administrator   ~0015337

sorry, can't reproduce. without more info i don't see what could be fixed.

if you can provide the info, please reopen this bug report

Issue History

Date Modified Username Field Change
2015-11-14 02:19 woutershep New Issue
2015-11-14 02:19 woutershep File Added: spring.gdb.txt
2015-11-15 08:08 cleanrock Note Added: 0015329
2015-11-15 08:09 cleanrock Note Edited: 0015329
2015-11-16 02:58 abma Note Added: 0015330
2015-11-16 02:58 abma Assigned To => abma
2015-11-16 02:58 abma Status new => feedback
2015-11-16 02:59 abma Note Edited: 0015330
2015-11-16 02:59 abma Target Version => 101.0
2015-11-18 12:52 abma Note Added: 0015337
2015-11-18 12:52 abma Status feedback => closed
2015-11-18 12:52 abma Resolution open => unable to reproduce