Hospitality icon indicating copy to clipboard operation
Hospitality copied to clipboard

Hospitality: Multiplayer desync when hotel was on fire

Open magicarm22 opened this issue 2 years ago • 1 comments

Describe the bug We got a desync when the short circuit was in the hotel. When the fire was gone, everything is ok

To Reproduce Steps to reproduce the behavior:

  1. Start a new game in multiplayer with other players
  2. Create a hotel
  3. Wait for a guests
  4. Create a fire in the hotel
  5. Desync

Error stacktrace Here you can see RimWorld.Fire.RimWorld.Fire.Tick_Patch2:

Trace of first desynced map random state:
59 Tick:839012 Hash:447827011 'Fire3486568 Player514's faction 15 58054672 '
at Multiplayer.Client.Desyncs.DeferredStackTracing.Postfix () <0xffffffff>
at (wrapper dynamic-method) Verse.Rand.Verse.Rand.get_Int_Patch1 () <0xffffffff>
at Verse.Rand.Range (int,int) <0xffffffff>
at Verse.GenCollection.RandomElement<T_REF> (System.Collections.Generic.IEnumerable`1<T_REF>) <0xffffffff>
at RimWorld.Fire.DoComplexCalcs () <0xffffffff>
at (wrapper dynamic-method) RimWorld.Fire.RimWorld.Fire.Tick_Patch2 (RimWorld.Fire) <0xffffffff>
at Verse.TickList.Tick () <0xffffffff>
at Multiplayer.Client.AsyncTimeComp.Tick () <0xffffffff>
at Multiplayer.Client.TickPatch.TickTickable (Multiplayer.Client.ITickable) <0xffffffff>
at Multiplayer.Client.TickPatch.Tick (bool&) <0xffffffff>
at Multiplayer.Client.TickPatch.Prefix () <0xffffffff>
at (wrapper dynamic-method) Verse.TickManager.Verse.TickManager.TickManagerUpdate_Patch2 (Verse.TickManager) <0xffffffff>
at Verse.Game.UpdatePlay () <0xffffffff>
at Verse.Root_Play.Update () <0xffffffff>
at (wrapper runtime-invoke) object.runtime_invoke_void__this__ (object,intptr,intptr,intptr) <0xffffffff>

And here is the problem with hospitality:

55 Tick:839012 Hash:-1567968193 'Human3222031 Player514's faction 32 58054662 '
at Multiplayer.Client.Desyncs.DeferredStackTracing.Postfix () <0xffffffff>
at (wrapper dynamic-method) Verse.Rand.Verse.Rand.get_Int_Patch1 () <0xffffffff>
at Verse.Rand.Range (int,int) <0xffffffff>
at Verse.AI.ThinkNode_PrioritySorter.TryIssueJobPackage (Verse.Pawn,Verse.AI.JobIssueParams) <0xffffffff>
at Verse.AI.ThinkNode_Priority.TryIssueJobPackage (Verse.Pawn,Verse.AI.JobIssueParams) <0xffffffff>
at Verse.AI.ThinkNode_Tagger.TryIssueJobPackage (Verse.Pawn,Verse.AI.JobIssueParams) <0xffffffff>
at Verse.AI.ThinkNode_Priority.TryIssueJobPackage (Verse.Pawn,Verse.AI.JobIssueParams) <0xffffffff>
at Hospitality.ThinkNode_FilterGuestRooms.TryIssueJobPackage (Verse.Pawn,Verse.AI.JobIssueParams) <0xffffffff>
at Verse.AI.ThinkNode_Priority.TryIssueJobPackage (Verse.Pawn,Verse.AI.JobIssueParams) <0xffffffff>
at RimWorld.ThinkNode_Duty.TryIssueJobPackage (Verse.Pawn,Verse.AI.JobIssueParams) <0xffffffff>
at Verse.AI.ThinkNode_Priority.TryIssueJobPackage (Verse.Pawn,Verse.AI.JobIssueParams) <0xffffffff>
at Verse.AI.ThinkNode_Conditional.TryIssueJobPackage (Verse.Pawn,Verse.AI.JobIssueParams) <0xffffffff>
at Verse.AI.ThinkNode_Priority.TryIssueJobPackage (Verse.Pawn,Verse.AI.JobIssueParams) <0xffffffff>
at Verse.AI.ThinkNode_Tagger.TryIssueJobPackage (Verse.Pawn,Verse.AI.JobIssueParams) <0xffffffff>
at Verse.AI.ThinkNode_Subtree.TryIssueJobPackage (Verse.Pawn,Verse.AI.JobIssueParams) <0xffffffff>
at Verse.AI.ThinkNode_Priority.TryIssueJobPackage (Verse.Pawn,Verse.AI.JobIssueParams) <0xffffffff>
at RimWorld.ThinkNode_JoinVoluntarilyJoinableLord.TryIssueJobPackage (Verse.Pawn,Verse.AI.JobIssueParams) <0xffffffff>
at Verse.AI.ThinkNode_Priority.TryIssueJobPackage (Verse.Pawn,Verse.AI.JobIssueParams) <0xffffffff>
at Verse.AI.Pawn_JobTracker.DetermineNextJob (Verse.ThinkTreeDef&) <0xffffffff>
at Verse.AI.Pawn_JobTracker.TryFindAndStartJob () <0xffffffff>
at (wrapper dynamic-method) Verse.AI.Pawn_JobTracker.Verse.AI.Pawn_JobTracker.EndCurrentJob_Patch2 (Verse.AI.Pawn_JobTracker,Verse.AI.JobCondition,bool,bool) <0xffffffff>
at Verse.AI.Pawn_JobTracker.JobTrackerTick () <0xffffffff>
at (wrapper dynamic-method) Verse.Pawn.Verse.Pawn.Tick_Patch2 (Verse.Pawn) <0xffffffff>
at Verse.TickList.Tick () <0xffffffff>
at Multiplayer.Client.AsyncTimeComp.Tick () <0xffffffff>
at Multiplayer.Client.TickPatch.TickTickable (Multiplayer.Client.ITickable) <0xffffffff>
at Multiplayer.Client.TickPatch.Tick (bool&) <0xffffffff>
at Multiplayer.Client.TickPatch.Prefix () <0xffffffff>
at (wrapper dynamic-method) Verse.TickManager.Verse.TickManager.TickManagerUpdate_Patch2 (Verse.TickManager) <0xffffffff>
at Verse.Game.UpdatePlay () <0xffffffff>
at Verse.Root_Play.Update () <0xffffffff>
at (wrapper runtime-invoke) object.runtime_invoke_void__this__ (object,intptr,intptr,intptr) <0xffffffff>

magicarm22 avatar Jun 11 '22 08:06 magicarm22

I'll see if I can reproduce the problem.

OrionFive avatar Jun 11 '22 09:06 OrionFive