Opened 9 years ago

Closed 9 years ago

Last modified 9 years ago

#3188 closed defect (fixed)

Serializer crashes when rejoining

Reported by: elexis Owned by: Itms
Priority: Must Have Milestone: Alpha 19
Component: Core engine Keywords:
Cc: Patch:

Description

For some days I get a crash with like 50% probability when I rejoin a hosted game with the most recent svn version.

StdDeserializer.cpp(114): Assertion failed: "m_ScriptBackrefs.size() > tag"
Assertion failed: "m_ScriptBackrefs.size() > tag"
Location: StdDeserializer.cpp:114 (GetScriptBackref)

Change History (9)

comment:1 by elexis, 9 years ago

It seems that it only crashes on the second rejoin.

comment:2 by elexis, 9 years ago

With r16514 and earlier revisions I get the following AuraManager errors when rejoining twice:

WARNING: JavaScript warning: simulation/components/Auras.js line 437
reference to undefined property mod.value
...
WARNING: JavaScript warning: simulation/components/Auras.js line 427
reference to undefined property mod.value
ERROR: JavaScript error: simulation/components/AuraManager.js line 59
TypeError: value is undefined
  AuraManager.prototype.ApplyBonus@simulation/components/AuraManager.js:59:69
  Auras.prototype.ApplyBonus@simulation/components/Auras.js:427:3
  Auras.prototype.OnRangeUpdate@simulation/components/Auras.js:302:4
ERROR: Script message handler OnRangeUpdate failed
ERROR: JavaScript error: simulation/components/AuraManager.js line 116
TypeError: value is undefined
  AuraManager.prototype.RemoveBonus@simulation/components/AuraManager.js:116:69
  Auras.prototype.RemoveBonus@simulation/components/Auras.js:437:3
  Auras.prototype.OnRangeUpdate@simulation/components/Auras.js:311:4
ERROR: Script message handler OnRangeUpdate failed

With r16515 and later 0ad crashes with the serializer error mentioned in the description.

comment:3 by fcxSanya, 9 years ago

A related ticket with some more details: #3164

comment:4 by elexis, 9 years ago

After rebooting and using the most recent revision, i.e. 16562 I get the crash only occasionally, but either the AuraManager error or crash appears when rejoining twice.

With the nested_maps.diff patch in #3164 I only get an OOS on second rejoin, no errors, no crash. The OOS might be unrelated.

in reply to:  4 ; comment:5 by historic_bruno, 9 years ago

Replying to elexis:

With the nested_maps.diff patch in #3164 I only get an OOS on second rejoin

Maps were removed, is this report still valid, do you have oos dumps for it?

in reply to:  5 comment:6 by elexis, 9 years ago

Milestone: Alpha 19Backlog
Resolution: worksforme
Status: newclosed

Replying to historic_bruno:

Maps were removed, is this report still valid, do you have oos dumps for it?

I didn't experience any crashes or Aura errors since r16591. oos dumps were not generated, since it is not oos but the application crashes. I don't have coredumps.

The crash was probably caused by the aura serialization error in combination with the new version of gloox.

comment:7 by Itms, 9 years ago

Milestone: Backlog

comment:8 by Itms, 9 years ago

Owner: set to Itms
Resolution: worksformefixed

In 16929:

Revert r16591.

The problem caused by nested Maps is actually #3374.
Cloning the data object saved by the AuraManager fixes #3188.
Also, using Map fixes a serialization problem, refs #3375.

On top of those changes, some reordering of add/multiply to avoid any ordering mistake.

Fixes #3164, Refs #3374

comment:9 by Itms, 9 years ago

Milestone: Alpha 19
Priority: Release BlockerMust Have
Note: See TracTickets for help on using tickets.