Project-RimFactory-Revived icon indicating copy to clipboard operation
Project-RimFactory-Revived copied to clipboard

Started 10 Jobs Spam under certain Conditions

Open Sn1p3rr3c0n opened this issue 1 year ago • 3 comments

Reported by Bradson Confirmed by me (I was able to reproduce this once on my own.)

Under Certain Conditions, currently unknown to me a Haul Loop can Occur with items Stored in the DSU. See: https://gist.github.com/HugsLibRecordKeeper/3d392fe8366656386715cdbe984d3865#file-output_log-txt-L216 Sample Save Provided by Bradson digitalstorage.zip

It appears to be caused by attempting to stack? two incomplete stacks (in all known cases this was with Packaged Survival Meals, but it might not be restricted to that)

Dropping one of the Incomplete Stacks seems to resolve that issue

Analyzing the Provided Save

The Pawn is stuck on the following Job: HaulToCell (Job_XXXXX) A=Thing_MealSurvivalPack10344 B=(120, 0, 125) jobGiver=RimWorld.JobGiver_Work

Thing_MealSurvivalPack10344 is located at (120, 0, 125) The Target Cell is (120, 0, 125)

So the Pawn attempts to haul an item to the same cell where it is already located at repentantly

Thing_MealSurvivalPack10344 in the Save

<thing Class="ThingWithComps">
	<def>MealSurvivalPack</def>
	<id>MealSurvivalPack10344</id>
	<map>0</map>
	<pos>(120, 0, 125)</pos>
	<health>50</health>
	<stackCount>7</stackCount>
	<questTags IsNull="True" />
	<ingredients />
</thing>

MealSurvivalPack10355 in the Save (The other partial Stack)

<thing Class="ThingWithComps">
	<def>MealSurvivalPack</def>
	<id>MealSurvivalPack10355</id>
	<map>0</map>
	<pos>(120, 0, 125)</pos>
	<health>50</health>
	<stackCount>9</stackCount>
	<questTags IsNull="True" />
	<ingredients />
</thing>

I Currently have no idea why that Job is started in the first place

Sn1p3rr3c0n avatar Jan 29 '24 16:01 Sn1p3rr3c0n

Job Logging

132821 Kisaragi: JobGiver_Work produced scan Job HaulToCell (Job_33972) A=Thing_MealSurvivalPack10344 B=(120, 0, 125) from RimWorld.WorkGiver_Merge
132821 Kisaragi: StartJob [HaulToCell (Job_33972) A=Thing_MealSurvivalPack10344 B=(120, 0, 125)] lastJobEndCondition=None, jobGiver=RimWorld.JobGiver_Work, cancelBusyStances=False
132821 Kisaragi: JobDriver_HaulToCell ends current job HaulToCell (Job_33972) A=Thing_MealSurvivalPack53764 B=(120, 0, 125) because of toil CarryHauledThingToCell at toils[6].endConditions[0]
132821 Kisaragi: EndCurrentJob HaulToCell (Job_33972) A=Thing_MealSurvivalPack53764 B=(120, 0, 125) condition=Incompletable curToil=CarryHauledThingToCell at toils[6]
132821 Kisaragi: CleanupCurrentJob HaulToCell condition Incompletable

Sn1p3rr3c0n avatar Jan 29 '24 16:01 Sn1p3rr3c0n

I think the report by xexe has tem same core issue Screenshot 2024-03-01 182306

Sn1p3rr3c0n avatar Mar 03 '24 08:03 Sn1p3rr3c0n

maybe a possible solution would be to automatically stack incomplete stacks once the DSU is full. but that could have quite a bit of an performance impact hmm

Sn1p3rr3c0n avatar Mar 03 '24 08:03 Sn1p3rr3c0n

That issue appears to have solved itself in 1.5 Closing as a result

Sn1p3rr3c0n avatar Jul 24 '24 10:07 Sn1p3rr3c0n