[1.0.2059] Bug Meal

Started by Firty, November 01, 2018, 02:59:56 PM

Previous topic - Next topic

Firty

Could not reserve Thing_MealFine883636(current stack count: 1) (layer: null) for Leo for job Ingest (Job_6582248) A=Thing_MealFine883636 (now doing job Ingest (Job_6582248) A=Thing_MealFine883636(curToil=5)) for maxPawns 1 and stackCount -1. Existing reserver: Nyx doing job Ingest (Job_6582404) A=Thing_MealFine883636 (toilIndex=4)

Sometimes this happens.

k2ymg

+1.

This message frequently appear when a item stack is low or exists many colonist , and stop the game. I wouldn't disable developer mode because I test my mods.

(also, there are some likewise error message as 'enter to the destroyed thing'(?). I'm not remember exact text.)

Razuhl

It's because food is taken from a stack by splitting of one meal and creating an item that is essentially exclusive to the job and does not need to be checked for the possibility of reservation. However taking the last item(or all) does not create a new item it simply returns the stack. That stack is not exclusive and other jobs can try to grab the same item(or already have). When the job was given and plays out it tries to make the reservation and the error appears. Other job giver test if they can reserve an item before using it for a job avoiding the error that way.

Been in the game since they allowed multiple people to use items from the same stack.

Kenneth

#3
Is there a reliable way to reproduce this issue?
I can confirm it happens sometimes (I've met it quite often in my own playthroughs in 1.0), but it would be ace if i can reproduce it targeted without hoping on RnG :)

I've tried a few things, but I haven't been able to reproduce the issue in another way except letting a colony just run until it happens :P
@Razuhl: Thanks for sharing your knowledge, I'll check the reservation thing out.

Razuhl

Start a new colony(3 colonists)
pause
place 2 simple meals in a stack
use debug menu food -20% to starve everyone
draft them and move them into a staggered distance to the 2 meals(they must arrive one after the other)
undraft all at once - now you can observe that 3 people try to eat the 2 meals.
wait till the first one removes a meal - now you have two colonists that have no reservations but try to interact with the last meal
draft and undraft the furthest away pawn - now that pawn will place a reservation on the non stacked meal
wait till the second pawn tries to pickup the meal and the error shows

Kenneth

Thanks again - I've implemented partial stack reservation for all ingestion-related jobs.
Fixed! ;)