[W|0.7.584] Colonist stuck in feeding loop

Started by alexgophermix, October 21, 2014, 05:17:33 PM

Previous topic - Next topic

alexgophermix

One of my colonists somehow got stuck trying to eat. Each time he would go pick up food and sit at the table, instead of eating a large error log would appear and he would go back to pick up more food (still hungry). It appeared as if he was still holding the food when he was going to get more.

I couldn't do anything that would reset this behaviour, most actions just completed and then he had to go eat again. I tried euthenizing him but then I got the following conundrum http://i.imgur.com/dr8gPg4.jpg (note sleeping + dead).

I was going to paste the log that was posted but now when I load the save file with him both dead and sleeping he dies a few seconds later so the problem seems to correct itself. You'll have to refer to the one in the screenshot :(

This is all I get in the log when loading the file with the bug:

Initializing map from file Planeton56 BUG with mods Core

(Filename: C:/BuildAgent/work/d63dfc6385190b60/artifacts/StandalonePlayerGenerated/UnityEngineDebug.cpp Line: 49)

Could not resolve reference to object with loadID RawPotatoes4100838 of type Verse.Thing. Was it compressed away, destroyed, had no ID number, or not saved/loaded right?

(Filename: C:/BuildAgent/work/d63dfc6385190b60/artifacts/StandalonePlayerGenerated/UnityEngineDebug.cpp Line: 49)

JobDriver.SetupToils threw exception. Pawn=Erisen, Job=DoBill(A=MealSimple4100987, B=(150, 0, 197)), Exception=System.InvalidOperationException: DoBill on non-Billgiver.

  at Verse.AI.JobDriver_DoBill.get_BillGiver () [0x00000] in <filename unknown>:0

  at Verse.AI.JobDriver_DoBill+<MakeNewToils>c__IteratorDB.MoveNext () [0x00000] in <filename unknown>:0

  at Verse.AI.JobDriver.SetupToils () [0x00000] in <filename unknown>:0

(Filename: C:/BuildAgent/work/d63dfc6385190b60/artifacts/StandalonePlayerGenerated/UnityEngineDebug.cpp Line: 49)


Edit: Nevermind I got it again on another save. This block of error log repeats itself every time the colonist tried to eat again.

MealFine4642772 tried to de-register out of bounds at (-1000, -1000, -1000). Destroying.

(Filename: C:/BuildAgent/work/d63dfc6385190b60/artifacts/StandalonePlayerGenerated/UnityEngineDebug.cpp Line: 49)

Exception ticking Sentharia: System.IndexOutOfRangeException: Array index is out of range.

  at Verse.RegionGrid.GetValidRegionAt (IntVec3 loc) [0x00000] in <filename unknown>:0

  at Verse.Thing.DeSpawn () [0x00000] in <filename unknown>:0

  at Verse.ThingWithComponents.DeSpawn () [0x00000] in <filename unknown>:0

  at Verse.Thing.Destroy (DestroyMode mode) [0x00000] in <filename unknown>:0

  at Verse.ThingWithComponents.Destroy (DestroyMode mode) [0x00000] in <filename unknown>:0

  at Verse.ThingGrid.Deregister (Verse.Thing t) [0x00000] in <filename unknown>:0

  at Verse.Thing.set_Position (IntVec3 value) [0x00000] in <filename unknown>:0

  at Verse.GenSpawn.Spawn (Verse.Thing newThing, IntVec3 loc, IntRot rot) [0x00000] in <filename unknown>:0

  at Verse.GenSpawn.Spawn (Verse.Thing newThing, IntVec3 loc) [0x00000] in <filename unknown>:0

  at Verse.GenPlace.TryPlaceDirect (Verse.Thing thing, IntVec3 loc, Verse.Thing& resultingThing) [0x00000] in <filename unknown>:0

  at Verse.GenPlace.TryPlaceThing (Verse.Thing thing, IntVec3 center, ThingPlaceMode mode, Verse.Thing& lastResultingThing) [0x00000] in <filename unknown>:0

  at Verse.GenDrop.TryDropSpawn (Verse.Thing thing, IntVec3 dropCell, ThingPlaceMode mode, Verse.Thing& resultingThing) [0x00000] in <filename unknown>:0

  at Verse.ThingContainer.TryDrop (Verse.Thing thing, IntVec3 dropLoc, ThingPlaceMode mode, Verse.Thing& resultingThing) [0x00000] in <filename unknown>:0

  at Verse.Pawn_CarryHands.TryDropCarriedThing (IntVec3 dropLoc, ThingPlaceMode mode, Verse.Thing& resultingThing) [0x00000] in <filename unknown>:0

  at Verse.AI.Pawn_JobTracker.EndCurrentJob (JobCondition condition) [0x00000] in <filename unknown>:0

  at Verse.AI.JobDriver.EndJobWith (JobCondition condition) [0x00000] in <filename unknown>:0

  at Verse.AI.JobDriver.BeginNextToil () [0x00000] in <filename unknown>:0

  at Verse.AI.JobDriver.Notify_PatherArrived () [0x00000] in <filename unknown>:0

  at Verse.AI.Pawn_PathFollower.PatherArrived () [0x00000] in <filename unknown>:0

  at Verse.AI.Pawn_PathFollower.TryEnterNextPathSquare () [0x00000] in <filename unknown>:0

  at Verse.AI.Pawn_PathFollower.PatherTick () [0x00000] in <filename unknown>:0

  at Verse.Pawn.Tick () [0x00000] in <filename unknown>:0

  at Verse.TickList.SingleTick () [0x00000] in <filename unknown>:0

(Filename: C:/BuildAgent/work/d63dfc6385190b60/artifacts/StandalonePlayerGenerated/UnityEngineDebug.cpp Line: 49)

Wex

I can confirm this. The only cure is loading a previous save.
"You are not entitled to your opinion. You are entitled to your informed opinion. No one is entitled to be ignorant."
    Harlan Ellison

Drahkon

I've been seeing this, save and reload to fix for now.

UplandStingray

This happened to me yesterday. I went to arrest him to see if it would stop and he just disappeared, but was still there starving.

kosh271

I had the same issue happen with my colonist.  From what I could tell, he seemed to have a meal "equipped" (I'm not sure how this happened, but I think the meal was the basic one that could be cooked) and was carrying a meal (the mid-grade one you can cook) to eat.  Instead of arresting him, I attempted to put him into cryo-sleep.  Once he "entered", the cryo-sleep chamber did not register as inside.  He was still on my list of characters in-colony.  After a save/load cycle, he was removed from the colony completely.

I believe the issue appeared because I was able to push a skill of his (I think it was growing) over 20.  Once he reached 21 (or 22) the weird behavior appeared.

Cat123

Confirmed: happens if pawn has max (10) of food item. If she has less, it doesn't trigger.

skullywag

Has 10 of food item? What do you mean by that?
Skullywag modded to death.
I'd never met an iterator I liked....until Zhentar saved me.
Why Unity5, WHY do you forsake me?

ToXeye

#7
Reading the log, I realize almost anything could be wrong (except the size of the stacks). Array out of bounds would not be that the array for the food stack is too small, since that's not what the bug is about, it's about objects not connecting properly. It's not the food stack array, since the food stack, AFAIK, is only a single object that can be split and combined into a new object or new objects. For example: a food stack of 2 simple meals made of turtle meat and 3 simple meals made of berries will be combined into a new food stack that contains 5 simple meals made of both turtle meat and berries. And the number of items in the stack is defined by a simple number in the program. It still COULD be the number of items in the stack, but it doesn't trigger bugs for, for example, for hauling. So it's not about the stack size, it's about eating not triggering correctly. It's a bit like "I have to grab some food to eat" and then he does that "now I have to grab some chair to sit on next to a table" and he does that and "now I have to eat" and you get array out of bounds exception any kind of error instead.

*edit* I still can't understand how some people get bugs and I don't. Perhaps you just need a lvl 21 of something, like said above.
Features everywhere!
e_  O:
/|   /|\

Thorin

Having a lvl 21 is not required for this, could be though.
I had a hunter, whom was nowhere to be called high level. But he was, indeed, switching between sitting on the chair, grabs meal, sits down, grabs meal etc.
I noticed this when the starving message popped up.
Lucky, I had an auto-save of 2min. before. When I loaded that up, it didn't reoccur, while the hunter was still urgently hungry.

Next time I open up the debug-log, in the hopes it will tell something. I really dislike evasive bugs like these.
"Life is not a journey to the grave with the intention of arriving safely in a well preserved body, but rather to skid in broadside, totally worn out & proclaiming "WOW, what a ride!"

ToXeye

Also, My understanding of the code is WYSIWYG (since I see what I believe is the problem) and not representative. Please ignore any statements about how the code works, I just figured that since stacks combine to the average of their values they are indeed not real stacks of items, but rather an item that is called a stack, that has a certain type.
Features everywhere!
e_  O:
/|   /|\