Opened 3 years ago

Last modified 2 years ago

#6086 closed defect

Serialization issue — at Version 4

Reported by: nwtour Owned by:
Priority: Should Have Milestone:
Component: Core engine Keywords:
Cc: Patch:

Description (last modified by nwtour)

Found a issue with git version of 0ad, when loading a save, sometimes "civil center" moves to another part of the map, sometimes the minimap is displayed upside down.
Found options (echo 'rejointest = "true"' > ~/.config/0ad/config/user.cfg) for checking serialization / deserialization.

But when you use them, 0ad crashes (I think it's related)

p.s. the game works fine without saving

Change History (13)

by nwtour, 3 years ago

Attachment: console_output.txt added

by nwtour, 3 years ago

Attachment: state.before.a.bz2 added

by nwtour, 3 years ago

Attachment: state.before.b.bz2 added

by nwtour, 3 years ago

Attachment: mybattle_4p.xml added

by nwtour, 3 years ago

Attachment: mybattle_4p.pmp added

by nwtour, 3 years ago

Attachment: crashlog.txt added

by nwtour, 3 years ago

Attachment: system_info.txt added

by nwtour, 3 years ago

Attachment: userreport_hwdetect.txt added

by nwtour, 3 years ago

screenshot.png

comment:1 by nwtour, 3 years ago

There was also such an error, but I forgot with what parameters it was happening (GDB backtrace output):

GAME STARTED, ALL INIT COMPLETE
ERROR: JavaScript error: simulation/ai/petra/_petrabot.js line 157
this.queueManager is undefined
  PETRA.PetraBot.prototype.Serialize@simulation/ai/petra/_petrabot.js:157:3
terminate called after throwing an instance of 'PSERROR_Serialize_ScriptError'
  what():  Prototype Serialize function failed

Thread 1 "main" received signal SIGABRT, Aborted.
__GI_raise (sig=6) at ../sysdeps/unix/sysv/linux/raise.c:50
50      return ret;
(gdb) bt
#0  __GI_raise (sig=6) at ../sysdeps/unix/sysv/linux/raise.c:50
#1  0xb61a9276 in __GI_abort () at abort.c:79
#2  0xb64e8b3d in __gnu_cxx::__verbose_terminate_handler () at ../../../../libstdc++-v3/libsupc++/vterminate.cc:95
#3  0xb650c544 in __cxxabiv1::__terminate (handler=0xb650ea30 <__gnu_cxx::__verbose_terminate_handler()>) at ../../../../libstdc++-v3/libsupc++/eh_terminate.cc:47
#4  0xb650c5ad in std::terminate () at ../../../../libstdc++-v3/libsupc++/eh_terminate.cc:57
#5  0xb650c8ab in __cxxabiv1::__cxa_throw (obj=0xb224340, tinfo=0x8740204 <typeinfo for PSERROR_Serialize_ScriptError>,
    dest=0x812fc10 <PSERROR_Serialize_ScriptError::~PSERROR_Serialize_ScriptError()>) at ../../../../libstdc++-v3/libsupc++/eh_throw.cc:95
#6  0x0812f9c2 in CBinarySerializerScriptImpl::HandleScriptVal (this=0xb32cb70, val=...) at ../../../source/simulation2/serialization/BinarySerializer.cpp:250
#7  0x0814ca2b in CBinarySerializer<CStdSerializerImpl>::PutScriptVal (this=0xbfffd190, value=...) at ../../../libraries/source/spidermonkey/include-unix-release/js/RootingAPI.h:714
#8  0x08162d12 in CAIWorker::SerializeState (this=0x9ceed30, serializer=...) at ../../../libraries/source/spidermonkey/include-unix-release/js/RootingAPI.h:1435
#9  0x08165157 in CAIWorker::Serialize (this=0x9ceed30, stream=..., isDebug=false) at ../../../source/simulation2/components/CCmpAIManager.cpp:653
#10 0x081652e1 in CCmpAIManager::Serialize (this=0x9ceed10, serialize=...) at ../../../source/simulation2/components/CCmpAIManager.cpp:908
#11 0x08149aa1 in CComponentManager::ComputeStateHash (this=0x9d4e904, outHash="", quick=false) at ../../../source/simulation2/system/ComponentManagerSerialization.cpp:143
#12 0x0811a44e in CSimulation2Impl::DumpState (this=0x9d4e8f0) at ../../../source/simulation2/Simulation2.cpp:626
#13 0x0811d94b in CSimulation2Impl::Update (this=0x9d4e8f0, turnLength=<optimized out>, commands=std::vector of length 0, capacity 0) at ../../../source/simulation2/Simulation2.cpp:513
#14 0x0815a283 in CTurnManager::Update (this=0x9ec1b60, simFrameLength=0.0220751036, maxTurns=1) at ../../../source/simulation2/system/TurnManager.cpp:169
#15 0x0829b9b5 in CGame::Update (this=0x9e38340, deltaRealTime=0.044150207191705704, doInterpolate=true) at ../../../source/ps/Game.cpp:400
#16 0x080c2ad4 in Frame () at ../../../source/main.cpp:426
#17 RunGameOrAtlas (argc=<optimized out>, argv=<optimized out>) at ../../../source/main.cpp:692
#18 0x080ae856 in main (argc=1, argv=0xbffff874) at ../../../source/main.cpp:743

comment:2 by nwtour, 3 years ago

Description: modified (diff)

comment:3 by wraitii, 3 years ago

Milestone: BacklogAlpha 25

comment:4 by nwtour, 3 years ago

Description: modified (diff)
Note: See TracTickets for help on using tickets.