View Issue Details

IDProjectCategoryView StatusLast Update
0008665Dwarf FortressDwarf Mode -- Jobs, Cancellation and Suspensionpublic2015-04-13 13:15
ReporterVeroule Assigned Touser6 
PrioritynormalSeverityminorReproducibilityalways
Status confirmedResolutionopen 
PlatformLinux 
Product Version0.40.23 
Summary0008665: Bring Item to Depot supersedes and cancels other jobs
DescriptionThe Bring Item to Depot job will steal a dwarf in the middle of other jobs. I have seen dwarves stolen from Construct Mechanisms as they arrive at the workshop with the material, resulting in a cancellation due to loss message. I have also observed a dwarf in the middle of Prepare Lavish Meal stop work on that job, leaving all the items in the kitchen and giving NO cancellation message, then proceed immediately to a Bring Item job.
Steps To ReproduceMethod 1
Order Lavish Meals prepared while traders are at the depot.
When a dwarf has brought all 4 materials to the kitchen order a huge supply of things brought to the depot.
Observe the cook.

Method 2
Order Construct Mechanisms on repeat.
When a dwarf is engaged in the Construct Mechanisms order a huge supply of things brought to the depot.
Observe the Mechanics workshop to see the dwarf become confused when arriving with the material.
TagsIntentional/Expected?

Relationships

related to 0000791 resolvedToady One Even with hauling labors off, dwarves continue to haul to trade depot and harvest food 

Activities

smjjames

2014-12-25 20:56

reporter   ~0031477

Hm, were there lots of available dwarves to do the hauling or only a few? That would definetly affect things.

user8971

2014-12-26 02:14

  ~0031480

In unit_view-go_to_unit-profession-labor-hauling ([u]-[z]-[p]-[l]-[minus]-[minus]) you can remove "Trade Good hauling" labor type from dwarves you don't want to participate on this type of haul jobs.

Does that help? Or do you even see dwarves without this labor set working on "Bring item to depot" jobs?

Veroule

2014-12-26 12:14

reporter   ~0031489

Last edited: 2014-12-26 12:15

The bug I am reporting is not related to 0000791, and the problem is not that dwarves are taking the Bring Item jobs. The bug is that dwarves are canceling or stopping a job they are in the middle of in order to take on a Bring Item job.

To repeat what I said in the description with other words:
A dwarf should not haul a stone to a mechanics workshop and when arriving with the stone CANCEL the Construct Mechanisms job with the message 'job item lost or destroyed'.
A dwarf should not stop a Prepare Lavish Meals when they are standing in the kitchen with all 4 job items loaded into the kitchen, leaving the job items in the kitchen and the job reverted to a waiting state with no messages.

PetWolverine

2014-12-26 12:38

reporter   ~0031490

This seems like an intended outcome of the recent job priorities changes. Hauling items to the depot is an important and time-limited activity, so it takes priority over other jobs, as does the actual trading job. As Detros mentioned, you can disable this labor on individual dwarves with important professions.

For the meals job, the cancellation message may have been lost due to a setting; press [o] [x] [x] to make the game announce all cancellations.

The only bug I see here is with the announcement for the mechanisms job; "Job item lost or destroyed" isn't a good description of what's going on.

user8971

2014-12-26 18:02

  ~0031496

Maybe "Trade Good hauling" job makes him drop that stone (to make space for newly assigned trade goods) before ending previous job. When then "Construct Mechanisms" job finds out it calls "Job item lost or destroyed" exception and unassigns him.

Veroule

2014-12-26 21:24

reporter   ~0031502

I am fairly certain that Toady never intended for any job to steal a dwarf that is actively doing another job. From what Toady said even the "Do it Now" thing does not take a dwarf that is already engaged in another job.

The bug, at its most basic level, is that Bring Item to Depot does not check what the dwarf is doing when it selects them for the job. What I describe above are two ways of recognizing what is happening.

PetWolverine, the cooking job is not canceled. The dwarf walks away to begin the Bring Item and the cooking job loses its active status and remains in the jobs list for the kitchen; never canceled means no message to be lost.

user8971

2014-12-27 02:22

  ~0031503

@Veroule: Yes, I have read that note about "Do it now" the same way. Automatic cancelling of other jobs to make some other one doesn't sound right.

1) Can you try if removing "Trade Good hauling" from your dwarves makes them not hear the call of trade hauling? So the problem can be narrowed only on dwarves with "Trade Good hauling" allowed.

2) Can you post a zipped save of your region folder to http://dffd.wimbli.com/ please? If others are not reporting this issue your world/fort may include something that causes this issue to happen (often enough to be noticed).

3) Also, when was that world/fort generated? And are you using any mods or just the core game? Have you seen this happen only in 40.23 or in previous versions too?

user1294

2014-12-27 03:23

  ~0031504

Toady's devlog on the 14th December includes the following:

"I finished the prioritization for meetings, depot trading and a few other important jobs. I've allowed some critical tasks to snatch up a working dwarf (provided they aren't carrying something), while another available dwarf without something better to do will eventually handle the first worker's job (it isn't cancelled)."

So if they're canceling the job, there's a bug, if they're carrying something and drop it, there's a bug, but if they're standing in the workshop ready to start the job without canceling, that's technically as expected, but grounds for fine-tuning. I agree that they shouldn't go and haul trade goods, but meetings and such should be fair game.

user8971

2014-12-27 07:58

  ~0031509

Thanks for finding that quote, Knight Otu.

Maybe that dwarf in workshop can use something like:
"Urist McWorkshop stops working on <JOB NAME>: Trade good hauling prioritized".

And Orders setting can have
"Allow dwarves with trade good hauling to stop their assigned jobs in favour of these hauling jobs" ~ YES / NO

Veroule

2014-12-28 21:33

reporter   ~0031546

Thanks for the Devlog reminder. I am thinking the timing of the behavior needs to be adjusted. If it is changed from 'not carrying anything' to once a dwarf has picked up an item for a job they are committed to that job until completion, then such a change would eliminate the problems I noted and still give the higher priority tasks a way to pull a dwarf away from jobs set on repeat.

Veroule

2015-04-13 13:15

reporter   ~0032569

Last edited: 2015-04-13 13:18

The current behavior might be fine as it is, but some adjustment should be done for food related tasks. I personally think anything involving food that can spoil should be the highest priority after personal needs. Most other tasks flag items involved in the job and have no problems with resuming.

The kitchen tasks only flag the item as part of a job while the dwarf is working with the job. When the dwarf walks away for another task all the items collected tend be assigned to being stored back in stockpiles. When a dwarf returns to the task they must start gathering everything again, and that is why I think some adjustment is needed.

This situation might apply to all workshop jobs requiring multiple items; the kitchen is the easiest to see it with since a job gathering 4 items is readily available.

Add Note

Note

Issue History

Date Modified Username Field Change
2014-12-25 20:27 Veroule New Issue
2014-12-25 20:56 smjjames Note Added: 0031477
2014-12-25 22:19 user6 Tag Attached: Intentional/Expected?
2014-12-25 22:20 user6 Relationship added related to 0000791
2014-12-26 02:14 user8971 Note Added: 0031480
2014-12-26 12:14 Veroule Note Added: 0031489
2014-12-26 12:15 Veroule Note Edited: 0031489
2014-12-26 12:38 PetWolverine Note Added: 0031490
2014-12-26 18:02 user8971 Note Added: 0031496
2014-12-26 21:24 Veroule Note Added: 0031502
2014-12-27 02:22 user8971 Note Added: 0031503
2014-12-27 03:23 user1294 Note Added: 0031504
2014-12-27 07:58 user8971 Note Added: 0031509
2014-12-27 11:14 user6 Assigned To => user6
2014-12-27 11:14 user6 Status new => confirmed
2014-12-28 21:33 Veroule Note Added: 0031546
2015-04-13 13:15 Veroule Note Added: 0032569
2015-04-13 13:18 Veroule Note Edited: 0032569