Ludeon Forums

Ludeon Forums

  • January 24, 2021, 02:24:29 PM
  • Welcome, Guest
Please login or register.

Login with username, password and session length
Advanced search  

Author Topic: get_smeltable call while hauling causes standing still forever  (Read 299 times)

dawudweaver

  • Muffalo
  • *
  • Posts: 1
  • Refugee
    • View Profile
get_smeltable call while hauling causes standing still forever
« on: October 20, 2020, 01:19:46 AM »

Hi all, and thanks in advance if you read through this. So there are somehow a couple of locations on the map where if the pawn tries to go through, in trying to opportunistically haul they try to call get_smeltable() on something that appears to not be a `Thing`. This results in them trying this 10 times in quick succession (since they still choose the same job after they hit the error), eventually leading to them just doing the `standing` action. The stacktrace from the event is below. If I order them to go do the job, they skip the opportunistic hauling and are fine. I've removed all items from the immediate area and blocking off paths by forbidding doors, but they still seem to be hitting the error.
 
I suspect this is either in deepstorage or the base game, as that's the only mod I have that I'm aware of that messes with storage zones. I've attached a full list of current mods. I tried adding Jobs of opportunity, but that didn't seem to make a difference either way. Is there a way to run specific commands in rimworld? that would make debugging this easier.


Code: [Select]
Exception ticking Blitz (at (157, 0, 147)): System.NullReferenceException: Object reference not set to an instance of an object
  at Verse.Thing.get_Smeltable () [0x00020] in <b02b390b894d4487a224faae4a3db641>:0
  at RimWorld.SpecialThingFilterWorker_Smeltable.Matches (Verse.Thing t) [0x00010] in <b02b390b894d4487a224faae4a3db641>:0
  at Verse.ThingFilter.Allows (Verse.Thing t) [0x000a1] in <b02b390b894d4487a224faae4a3db641>:0
  at (wrapper dynamic-method) RimWorld.StorageSettings.RimWorld.StorageSettings.AllowedToAccept_Patch0(RimWorld.StorageSettings,Verse.Thing)
  at RimWorld.Building_Storage.Accepts (Verse.Thing t) [0x00000] in <b02b390b894d4487a224faae4a3db641>:0
  at RimWorld.StoreUtility.TryFindBestBetterStoreCellForWorker (Verse.Thing t, Verse.Pawn carrier, Verse.Map map, RimWorld.Faction faction, RimWorld.SlotGroup slotGroup, System.Boolean needAccurateResult, Verse.IntVec3& closestSlot, System.Single& closestDistSquared, RimWorld.StoragePriority& foundPriority) [0x00005] in <b02b390b894d4487a224faae4a3db641>:0
  at (wrapper dynamic-method) RimWorld.StoreUtility.RimWorld.StoreUtility.TryFindBestBetterStoreCellFor_Patch0(Verse.Thing,Verse.Pawn,Verse.Map,RimWorld.StoragePriority,RimWorld.Faction,Verse.IntVec3&,bool)
  at Verse.AI.Pawn_JobTracker.TryOpportunisticJob (Verse.AI.Job job) [0x001cd] in <b02b390b894d4487a224faae4a3db641>:0
  at (wrapper dynamic-method) Verse.AI.Pawn_JobTracker.Verse.AI.Pawn_JobTracker.StartJob_Patch2(Verse.AI.Pawn_JobTracker,Verse.AI.Job,Verse.AI.JobCondition,Verse.AI.ThinkNode,bool,bool,Verse.ThinkTreeDef,System.Nullable`1<Verse.AI.JobTag>,bool,bool)
  at Verse.AI.Pawn_JobTracker.TryFindAndStartJob () [0x000bd] in <b02b390b894d4487a224faae4a3db641>:0
  at (wrapper dynamic-method) Verse.AI.Pawn_JobTracker.Verse.AI.Pawn_JobTracker.EndCurrentJob_Patch1(Verse.AI.Pawn_JobTracker,Verse.AI.JobCondition,bool,bool)
  at Verse.AI.Pawn_JobTracker.JobTrackerTick () [0x00151] in <b02b390b894d4487a224faae4a3db641>:0
  at Verse.Pawn.Tick () [0x00098] in <b02b390b894d4487a224faae4a3db641>:0
  at Verse.TickList.Tick () [0x0015c] in <b02b390b894d4487a224faae4a3db641>:0
Verse.Log:Error(String, Boolean)
Verse.TickList:Tick()
Verse.TickManager:Verse.TickManager.DoSingleTick_Patch2(TickManager)
Verse.TickManager:TickManagerUpdate()
Verse.Game:Verse.Game.UpdatePlay_Patch2(Game)
Verse.Root_Play:Update()


And a version after I tried installing Jobs of Opportunity:

Code: [Select]
Exception ticking Yuuma (at (154, 0, 140)): System.NullReferenceException: Object reference not set to an instance of an object
  at Verse.Thing.get_Smeltable () [0x00020] in <b02b390b894d4487a224faae4a3db641>:0
  at RimWorld.SpecialThingFilterWorker_Smeltable.Matches (Verse.Thing t) [0x00010] in <b02b390b894d4487a224faae4a3db641>:0
  at Verse.ThingFilter.Allows (Verse.Thing t) [0x000a1] in <b02b390b894d4487a224faae4a3db641>:0
  at RimWorld.StorageSettings.AllowedToAccept (Verse.Thing t) [0x00000] in <b02b390b894d4487a224faae4a3db641>:0
  at RimWorld.Building_Storage.Accepts (Verse.Thing t) [0x00000] in <b02b390b894d4487a224faae4a3db641>:0
  at RimWorld.StoreUtility.TryFindBestBetterStoreCellForWorker (Verse.Thing t, Verse.Pawn carrier, Verse.Map map, RimWorld.Faction faction, RimWorld.SlotGroup slotGroup, System.Boolean needAccurateResult, Verse.IntVec3& closestSlot, System.Single& closestDistSquared, RimWorld.StoragePriority& foundPriority) [0x00005] in <b02b390b894d4487a224faae4a3db641>:0
  at (wrapper dynamic-method) RimWorld.StoreUtility.RimWorld.StoreUtility.TryFindBestBetterStoreCellFor_Patch0(Verse.Thing,Verse.Pawn,Verse.Map,RimWorld.StoragePriority,RimWorld.Faction,Verse.IntVec3&,bool)
  at JobsOfOpportunity.JobsOfOpportunity+Hauling.CanHaul (JobsOfOpportunity.JobsOfOpportunity+Hauling+ProximityStage proximityStage, Verse.Pawn pawn, Verse.Thing thing, Verse.IntVec3 jobCell, JobsOfOpportunity.JobsOfOpportunity+Hauling+ProximityCheck proximityCheck, Verse.IntVec3& storeCell) [0x0018a] in <6c3f1bc4216e4e4797860fe66dd0d219>:0
  at JobsOfOpportunity.JobsOfOpportunity+Hauling.TryHaulStage (Verse.Pawn pawn, Verse.IntVec3 jobCell, JobsOfOpportunity.JobsOfOpportunity+Hauling+ProximityCheck proximityCheck) [0x00039] in <6c3f1bc4216e4e4797860fe66dd0d219>:0
  at JobsOfOpportunity.JobsOfOpportunity+Hauling.<TryHaul>g___TryHaul|5_0 (JobsOfOpportunity.JobsOfOpportunity+Hauling+<>c__DisplayClass5_0& ) [0x00071] in <6c3f1bc4216e4e4797860fe66dd0d219>:0
  at JobsOfOpportunity.JobsOfOpportunity+Hauling.TryHaul (Verse.Pawn pawn, Verse.IntVec3 jobCell) [0x00010] in <6c3f1bc4216e4e4797860fe66dd0d219>:0
  at JobsOfOpportunity.JobsOfOpportunity+Patch_TryOpportunisticJob.TryOpportunisticJob (Verse.AI.Pawn_JobTracker __instance, Verse.AI.Job job) [0x00047] in <6c3f1bc4216e4e4797860fe66dd0d219>:0
  at (wrapper dynamic-method) Verse.AI.Pawn_JobTracker.Verse.AI.Pawn_JobTracker.TryOpportunisticJob_Patch0(Verse.AI.Pawn_JobTracker,Verse.AI.Job)
  at (wrapper dynamic-method) Verse.AI.Pawn_JobTracker.Verse.AI.Pawn_JobTracker.StartJob_Patch2(Verse.AI.Pawn_JobTracker,Verse.AI.Job,Verse.AI.JobCondition,Verse.AI.ThinkNode,bool,bool,Verse.ThinkTreeDef,System.Nullable`1<Verse.AI.JobTag>,bool,bool)
  at Verse.AI.Pawn_JobTracker.TryFindAndStartJob () [0x000bd] in <b02b390b894d4487a224faae4a3db641>:0
  at (wrapper dynamic-method) Verse.AI.Pawn_JobTracker.Verse.AI.Pawn_JobTracker.EndCurrentJob_Patch1(Verse.AI.Pawn_JobTracker,Verse.AI.JobCondition,bool,bool)
  at Verse.AI.Pawn_JobTracker.JobTrackerTick () [0x00151] in <b02b390b894d4487a224faae4a3db641>:0
  at Verse.Pawn.Tick () [0x00098] in <b02b390b894d4487a224faae4a3db641>:0
  at Verse.TickList.Tick () [0x0015c] in <b02b390b894d4487a224faae4a3db641>:0
Verse.Log:Error(String, Boolean)
Verse.TickList:Tick()
Verse.TickManager:Verse.TickManager.DoSingleTick_Patch2(TickManager)
Verse.TickManager:TickManagerUpdate()
Verse.Game:Verse.Game.UpdatePlay_Patch2(Game)
Verse.Root_Play:Update()

Yuuma started 10 jobs in 10 ticks. List: (Wait_MaintainPosture (Job_4677988)) , (Wait_MaintainPosture (Job_4677990)) , (Wait_MaintainPosture (Job_4677994)) , (Wait_MaintainPosture (Job_4677996)) , (Wait_MaintainPosture (Job_4677998)) , (Wait_MaintainPosture (Job_4678000)) , (Wait_MaintainPosture (Job_4678002)) , (Wait_MaintainPosture (Job_4678004)) , (Wait_MaintainPosture (Job_4678006)) , (Wait_MaintainPosture (Job_4678008))  curDriver=JobDriver_WaitMaintainPosture (toilIndex=0) curJob=(Wait_MaintainPosture (Job_4678008))
Verse.Log:Error(String, Boolean)
Verse.AI.JobUtility:TryStartErrorRecoverJob(Pawn, String, Exception, JobDriver)
Verse.AI.Pawn_JobTracker:FinalizeTick()
Verse.AI.Pawn_JobTracker:JobTrackerTick()
Verse.Pawn:Tick()
Verse.TickList:Tick()
Verse.TickManager:Verse.TickManager.DoSingleTick_Patch2(TickManager)
Verse.TickManager:TickManagerUpdate()
Verse.Game:Verse.Game.UpdatePlay_Patch2(Game)
Verse.Root_Play:Update()

[HugsLib][ERR] Exception during PrepareLogData: System.IO.FileNotFoundException: Log file not found:/tmp/rimworld_log
  at HugsLib.Logs.LogPublisher.GetLogFileContents () [0x0002b] in <e4b32d84f714481f906e5eea5e560e3b>:0
  at HugsLib.Logs.LogPublisher.PrepareLogData () [0x00002] in <e4b32d84f714481f906e5eea5e560e3b>:0
Verse.Log:Error(String, Boolean)
HugsLib.Utils.ModLogger:ReportException(Exception, String, Boolean, String)
HugsLib.Logs.LogPublisher:PrepareLogData()
HugsLib.Logs.LogPublisher:BeginUpload()
HugsLib.Logs.LogPublisher:OnPublishConfirmed()
HugsLib.Logs.Dialog_PublishLogsOptions:OnAcceptKeyPressed()
HugsLib.Logs.Dialog_PublishLogsOptions:DoWindowContents(Rect)
Verse.Window:InnerWindowOnGUI(Int32)
UnityEngine.GUI:CallWindowDelegate(WindowFunction, Int32, Int32, GUISkin, Int32, Single, Single, GUIStyle)

[HugsLib][ERR] Exception during Execute: System.IO.FileNotFoundException: Log file path is unknown or log file does not exist. Path:/tmp/rimworld_log
Verse.Log:Error(String, Boolean)
HugsLib.Utils.ModLogger:ReportException(Exception, String, Boolean, String)
HugsLib.Shell.ShellOpenLog:Execute()
HugsLib.Logs.<>c:<AddOwnWidgets>b__15_3()
Verse.FloatMenuOption:Chosen(Boolean, FloatMenu)
Verse.FloatMenuOption:DoGUI(Rect, Boolean, FloatMenu)
Verse.FloatMenu:DoWindowContents(Rect)
Verse.Window:InnerWindowOnGUI(Int32)
UnityEngine.GUI:CallWindowDelegate(WindowFunction, Int32, Int32, GUISkin, Int32, Single, Single, GUIStyle)
« Last Edit: October 20, 2020, 01:26:05 AM by dawudweaver »
Logged

s4ltshaker

  • Muffalo
  • *
  • Posts: 3
  • Not a fan of defoliators
    • View Profile
Re: get_smeltable call while hauling causes standing still forever
« Reply #1 on: December 07, 2020, 03:18:51 PM »

I've been getting the same issue with my pawns, I'll bump this thread in the hopes others can help.
Logged