cseelhoff / RimThreaded

RimThreaded is a RimWorld mod designed to enable RimWorld to utilize multiple threads.
MIT License
117 stars 21 forks source link

Mental break errors `Exception in BreadthFirstTraverse: System.NullReferenceException:` #726

Open Niilo007 opened 2 years ago

Niilo007 commented 2 years ago

IMPORTANT:

Please first search existing bugs to ensure you are not creating a duplicate bug report!
Make sure you have the latest version of Rimworld!

Developer To Do Notes:

Vanilla Bug Report

Describe the bug

Errors during mental breaks, noticed during tantrums, possibly other breaks too. Seems like wandering also triggers the error! Probably the same as / related to #719

Steps to reproduce the behavior (VERY IMPORTANT)

  1. Have pawns
  2. Have the go on a mental break (specifically a tantrum, beserk or wandering)
  3. Should get errors
  4. See errors

Error Logs ?

Exception in BreadthFirstTraverse: System.NullReferenceException: Object reference not set to an instance of an object
  at Verse.AI.Job.MakeDriver (Verse.Pawn driverPawn) [0x00000] in <e13bd2f1929544099ed2b58e66ece833>:0 
  at Verse.AI.Job.GetCachedDriver (Verse.Pawn driverPawn) [0x00008] in <e13bd2f1929544099ed2b58e66ece833>:0 
  at Verse.AI.ReservationManager.ReservedBy[TDriver] (Verse.LocalTargetInfo target, Verse.Pawn claimant, System.Nullable`1[T] targetAIsNot, System.Nullable`1[T] targetBIsNot, System.Nullable`1[T] targetCIsNot) [0x0004d] in <e13bd2f1929544099ed2b58e66ece833>:0 
  at Verse.AI.ReservationUtility.HasReserved[TDriver] (Verse.Pawn p, Verse.LocalTargetInfo target, System.Nullable`1[T] targetAIsNot, System.Nullable`1[T] targetBIsNot, System.Nullable`1[T] targetCIsNot) [0x00010] in <e13bd2f1929544099ed2b58e66ece833>:0 
  at RimWorld.RestUtility.IsValidBedFor (Verse.Thing bedThing, Verse.Pawn sleeper, Verse.Pawn traveler, System.Boolean checkSocialProperness, System.Boolean allowMedBedEvenIfSetToNoCare, System.Boolean ignoreOtherReservations, System.Nullable`1[T] guestStatus) [0x0003a] in <e13bd2f1929544099ed2b58e66ece833>:0 
  at RimWorld.RestUtility+<>c__DisplayClass10_1.<FindBedFor>b__0 (Verse.Thing b) [0x0003b] in <e13bd2f1929544099ed2b58e66ece833>:0 
  at Verse.GenClosest+<>c__DisplayClass4_0.<RegionwiseBFSWorker>b__1 (Verse.Region r) [0x000f7] in <e13bd2f1929544099ed2b58e66ece833>:0 
  at (wrapper dynamic-method) Verse.RegionTraverser+BFSWorker.Verse.RegionTraverser+BFSWorker.BreadthFirstTraverseWork_Patch0(Verse.RegionTraverser/BFSWorker,Verse.Region,Verse.RegionEntryPredicate,Verse.RegionProcessor,int,Verse.RegionType)
  at (wrapper dynamic-method) Verse.RegionTraverser.Verse.RegionTraverser.BreadthFirstTraverse_Patch0(Verse.Region,Verse.RegionEntryPredicate,Verse.RegionProcessor,int,Verse.RegionType)
UnityEngine.StackTraceUtility:ExtractStackTrace ()
Verse.Log:Error (string)
(wrapper dynamic-method) Verse.RegionTraverser:Verse.RegionTraverser.BreadthFirstTraverse_Patch0 (Verse.Region,Verse.RegionEntryPredicate,Verse.RegionProcessor,int,Verse.RegionType)
Verse.GenClosest:RegionwiseBFSWorker (Verse.IntVec3,Verse.Map,Verse.ThingRequest,Verse.AI.PathEndMode,Verse.TraverseParms,System.Predicate`1<Verse.Thing>,System.Func`2<Verse.Thing, single>,int,int,single,int&,Verse.RegionType,bool)
Verse.GenClosest:ClosestThingReachable (Verse.IntVec3,Verse.Map,Verse.ThingRequest,Verse.AI.PathEndMode,Verse.TraverseParms,single,System.Predicate`1<Verse.Thing>,System.Collections.Generic.IEnumerable`1<Verse.Thing>,int,int,bool,Verse.RegionType,bool)
RimWorld.RestUtility:FindBedFor (Verse.Pawn,Verse.Pawn,bool,bool,System.Nullable`1<RimWorld.GuestStatus>)
RimWorld.WorkGiver_TakeToBed:FindBed (Verse.Pawn,Verse.Pawn)
RimWorld.WorkGiver_RescueDowned:HasJobOnThing (Verse.Pawn,Verse.Thing,bool)
RimThreaded.JobGiver_Work_Patch/<>c__DisplayClass1_0:<TryIssueJobPackage>b__2 (Verse.Thing)
Verse.GenClosest/<>c__DisplayClass4_0:<RegionwiseBFSWorker>b__1 (Verse.Region)
(wrapper dynamic-method) Verse.RegionTraverser/BFSWorker:Verse.RegionTraverser+BFSWorker.BreadthFirstTraverseWork_Patch0 (Verse.RegionTraverser/BFSWorker,Verse.Region,Verse.RegionEntryPredicate,Verse.RegionProcessor,int,Verse.RegionType)
(wrapper dynamic-method) Verse.RegionTraverser:Verse.RegionTraverser.BreadthFirstTraverse_Patch0 (Verse.Region,Verse.RegionEntryPredicate,Verse.RegionProcessor,int,Verse.RegionType)
Verse.GenClosest:RegionwiseBFSWorker (Verse.IntVec3,Verse.Map,Verse.ThingRequest,Verse.AI.PathEndMode,Verse.TraverseParms,System.Predicate`1<Verse.Thing>,System.Func`2<Verse.Thing, single>,int,int,single,int&,Verse.RegionType,bool)
Verse.GenClosest:ClosestThingReachable (Verse.IntVec3,Verse.Map,Verse.ThingRequest,Verse.AI.PathEndMode,Verse.TraverseParms,single,System.Predicate`1<Verse.Thing>,System.Collections.Generic.IEnumerable`1<Verse.Thing>,int,int,bool,Verse.RegionType,bool)
RimThreaded.JobGiver_Work_Patch:TryIssueJobPackage (RimWorld.JobGiver_Work,Verse.AI.ThinkResult&,Verse.Pawn,Verse.AI.JobIssueParams)
(wrapper dynamic-method) RimWorld.JobGiver_Work:RimWorld.JobGiver_Work.TryIssueJobPackage_Patch1 (RimWorld.JobGiver_Work,Verse.Pawn,Verse.AI.JobIssueParams)
Verse.AI.ThinkNode_Priority:TryIssueJobPackage (Verse.Pawn,Verse.AI.JobIssueParams)
Verse.AI.ThinkNode_Conditional:TryIssueJobPackage (Verse.Pawn,Verse.AI.JobIssueParams)
Verse.AI.ThinkNode_Priority:TryIssueJobPackage (Verse.Pawn,Verse.AI.JobIssueParams)
RimThreaded.Pawn_JobTracker_Patch:DetermineNextJob2 (Verse.AI.Pawn_JobTracker,Verse.ThinkTreeDef&)
RimThreaded.Pawn_JobTracker_Patch:TryFindAndStartJob (Verse.AI.Pawn_JobTracker)
(wrapper dynamic-method) Verse.AI.Pawn_JobTracker:Verse.AI.Pawn_JobTracker.TryFindAndStartJob_Patch1 (Verse.AI.Pawn_JobTracker)
Verse.AI.Pawn_JobTracker:EndCurrentJob (Verse.AI.JobCondition,bool,bool)
Verse.AI.Pawn_JobTracker:JobTrackerTick ()
Verse.Pawn:Tick ()
RimThreaded.TickList_Patch:NormalThingTick ()
RimThreaded.RimThreaded:ExecuteTicks ()
RimThreaded.RimThreaded:ProcessTicks (RimThreaded.RimThreaded/ThreadInfo)
RimThreaded.RimThreaded:InitializeThread (object)
System.Threading.ThreadHelper:ThreadStart_Context (object)
System.Threading.ExecutionContext:RunInternal (System.Threading.ExecutionContext,System.Threading.ContextCallback,object,bool)
System.Threading.ExecutionContext:Run (System.Threading.ExecutionContext,System.Threading.ContextCallback,object,bool)
System.Threading.ExecutionContext:Run (System.Threading.ExecutionContext,System.Threading.ContextCallback,object)
System.Threading.ThreadHelper:ThreadStart (object)

HugsLib log

!!! Link to HugsLib log. (MUST BE LINK) !!!

Player.log (Optional)

!!! Link to contents of Player.log or Error.log (MUST BE LINK) !!!

Save file ?

!!! Please add a save file where the issue occurs to speed up testing and fixing of the issue !!!

Screenshots (Optional) ?

image

Mod list (For vanilla report, it has to be same as below list.) ?

[Mod list length: 6]
Harmony [https://steamcommunity.com/sharedfiles/filedetails/?id=2009463077]
Core [https:// no link (local mod)]
Royalty [Official DLC] [https:// no link (local mod)]
Ideology [Official DLC] [https:// no link (local mod)]
HugsLib [https://steamcommunity.com/sharedfiles/filedetails/?id=818773962]
RimThreaded [https://steamcommunity.com/sharedfiles/filedetails/?id=2222907981]
Niilo007 commented 2 years ago

image

sealvessel commented 2 years ago

So the bug I reported has been found.