vegastrike / Vega-Strike-Engine-Source

Vega Strike Engine
Other
255 stars 42 forks source link

hangs in trade center - requires "killall-9 vega-engine to exit #672

Open LifWirser opened 2 years ago

LifWirser commented 2 years ago

Twice in two different "trade centers", when in seller frame "starship/hunter/light/hyena" when selected hangs game. so far np other trade entries have misbehaved, Dont know if data corrupt/missing

Suggest some sort of error msssage once cause determinded

Had to change to another runlevel to exit

LifWirser commented 2 years ago

UPDATE: This is some py3 problem some items have in py3 , to test I compiled vegastrike-engine without py3. I found another ship regional Guard/medium/dostoesky that locked up.in addition when I tried to sel items some but not all would cause lockups. All these disappeared when test against py2 engine. All problem items are repeatable with py3 engine

stephengtuggy commented 2 years ago

Good to know! OK, we'll need to look into these.

Can you provide a complete list of every problem item you have found so far?

LifWirser commented 2 years ago

If I'm right the types of troubled in the nav and ship generation python as well. A starting new issue about debugging python

LifWirser commented 2 years ago

to avoid needing to change runlevel, run in windowed mode(change with .vegasettings) Start vegastrike-engine from terminal ,when hangs close terminal.

stephengtuggy commented 2 years ago

to avoid needing to change runlevel, run in windowed mode(change with .vegasettings) Start vegastrike-engine from terminal ,when hangs close terminal.

Yes, I almost always run Vega Strike in windowed mode now, for this very reason. Perhaps we should make windowed mode the default?

BenjamenMeyer commented 2 years ago

at least for development, it probably should default to windowed mode.

LifWirser commented 2 years ago

update+1 I created a save game before hang ( with "starship/hunter/light/hyena" available. then ran gdb via "gdb --args ./vegastrike-engine-p3 --debug =3 -d../../Assets-Production-0.8.0" loaded save game then selected offending trade center item ,after hang exited via {cntr}{c} and recieved

Thread 1 "vegastrike-engi" received signal SIGINT, Interrupt. 0x0000000000869e54 in prettyPrintFloat (buffer=buffer@entry=0x7fffffffb2f0 "0.75", f=f@entry=-nan(0x400000), digitsBefore=digitsBefore@entry=0, digitsAfter=digitsAfter@entry=2, bufferLen=bufferLen@entry=128) at /home/enon/build/Vega-Strike-Engine-Source-0.8.0/engine/src/cmd/basecomputer.cpp:4592 4592 before++; `

LifWirser commented 2 years ago

Well I have so far two starship : /hunter/medium/hyena, /regenal guard/medium/ Dostoevsky (while /adoralian/med.../Dostoevsky does not both share same subdir in /units/)

Also all my inventory causes hangs at same place (void prettyPrintFloat in engine/src/cmd/basecomputer.cpp). gdb backtraces on invetory side hangs reveal

0 0x0000000000869e54 in prettyPrintFloat (buffer=buffer@entry=0x7fffffffb2f0 "0", f=-nan(0x400000),

digitsBefore=digitsBefore@entry=0, digitsAfter=digitsAfter@entry=0, bufferLen=bufferLen@entry=128) at /home/enon/build/Vega-Strike-Engine-Source-0.8.0/engine/src/cmd/basecomputer.cpp:4592

1 0x00000000008945f5 in showUnitStats (playerUnit=0x10b69e30,

text="#c0:1:.5#[NOTES]#n##n##-c@cargo/personal_transport.image@Whether dropping down to the local dispensary, or travelling around the planet to visit friends, these wheeled, hover and flight conveyances se"..., subunitlevel=0, mode=0, item=...) at /home/enon/build/Vega-Strike-Engine-Source-0.8.0/engine/src/cmd/damageable.h:79

2 0x000000000089df6c in buildShipDescription (item=..., texturedescription="")

at /home/enon/build/Vega-Strike-Engine-Source-0.8.0/engine/src/cmd/basecomputer.cpp:3967 Notice line #2 "texturedescription="") which indicates some pointer got corupted between buying and attempting to select in invetory

Currently I can not display any 2d graphics via gimp- getting possible file corruption msg instead

I an also suspecting the call to void prettyPrintFloat in engine/src/cmd/basecomputer.cpp). may reflect python >3 code. which would still pass gcc as valid c++ but cause trouble at runtime

stephengtuggy commented 2 years ago

Those stack traces show that the number the game is trying to print is -NaN. The game engine should handle that case, but I'm also wondering how you got -NaN in the first place.

What version of the assets are you using?

LifWirser commented 2 years ago

both assets and engine are 0.8.0 from Assets-Production-0.8.0.tar.gz, Vega-Strike-Engine-Source-0.8.0.tar.gz

on another thought While looking at "prettyprint" occurances I found two declarations engine/src/cmd/basecomputer.cpp:void prettyPrintFloat( char buffer, float f, int digitsBefore, int digitsAfter, int bufferLen = 128 ); engine/src/cmd/basecomputer.cpp:void prettyPrintFloat( char buffer, float f, int digitsBefore, int digitsAfter, int bufferLen )

which for c++ may be ok , I am trying to consider py2vs py3 print changes . on that note I grepped what could be relevent py print usages and will file seperate issue.. another issue will about variation in /units/vessels/* files

LifWirser commented 2 years ago

Seems to have been corrected in 0.8.x engine/assets. build diffences - running cmake/make in bash instead of dash (default for buster). copied bianaries from objconv to bin directory (have not knowingly run

still more bugs