View Issue Details

IDProjectCategoryView StatusLast Update
0008907Dwarf FortressPathfindingpublic2016-07-07 07:12
Reporterm-logik Assigned To 
PrioritynormalSeverityminorReproducibilityN/A
Status newResolutionopen 
OSWindowsOS Version8.1 
Product Version0.40.24 
Summary0008907: Multiple incorrect "cancels Construct Building: Cannot reach site."
DescriptionAfter digging out a large, multi-z hall intended to be dedicated to stone works, dwarves repeatedly suspend construction of mason's shops due to an inability to path to the buildings. Every tile of every shop can be pathed to, however, and dwarves will sometimes walk through a suspended shop to reach another before suspending construction of that one as well.
Steps To ReproduceI haven't seen this before, so I can't really say yet.
Additional InformationThere are 10 mason's shops set to be built adjacent to one another. The eastern-most one (nearest the hall's entrance) was built without problem. Each other one has been suspended at least once. They can all be reached by pathing through the shops themselves, going around the southern section of the hall, or pathing into the shop through its southern tiles from 1z below via ramps. There are several minor mods: a change to how leather is produced, some changes to goblins, a few items made native to dwarves, and a display case building added, but nothing that affects mason's shops. Save to follow.
TagsNo tags attached.

Relationships

related to 0008879 new "Dwarf cancels Construct Building: Cannot reach site" when blocked by an item in a diagonal corridor 

Activities

m-logik

2015-04-05 19:06

reporter   ~0032520

http://dffd.bay12games.com/file.php?id=10734
This save is centered on the area in question. One shop is already built and two of the shops are suspended, with another to be suspended shortly after unpausing.

Afghani84

2015-04-05 19:06

reporter   ~0032521

Hmm...did you check for burrows? Apart from that...one of the workshops might be cluttered and impede movement that way.

Would be good if you had a save to check what exactly is going on!

m-logik

2015-04-05 19:31

reporter   ~0032522

@ Afghani84: the save is already provided in the comment above yours. The entire area is a part of the only burrow that has been made on the map, to which no dwarves are currently assigned. The only shop that was successfully built has never been used yet, and cluttered workshops don't impede passability anyway, as far as I'm aware.

m-logik

2015-04-05 22:03

reporter   ~0032526

An update: it appears that unsuspending the shops in order from outside-in allows them to be built two at a time. i.e. In a row of 10 shops set to be built, the first and tenth can built, then the second and ninth, etc. This is even more confusing, as the impassable tiles in a completed mason's shop reduce the number of paths to each building.

m-logik

2015-04-08 18:27

reporter   ~0032552

Here it is again, this time along the southern wall of the same room.
http://dffd.bay12games.com/file.php?id=10744
In this instance, there are a variety of shops set to be built in the same configuration as before. As before, the outermost shops will be constructed and all others will be suspended, unsuspending them in outside-in order as each successive shop is built allows them to all be built eventually.
In the save provided, the very first build cancellation of this series has just occurred. The dwarf that was constructing the building that was suspended is actually standing in the shop that he was unable to path to. If you allow it to run, 7 more cancellations will follow, with dwarves moving through the supposedly inaccessible shops the entire time.

m-logik

2016-01-22 00:15

reporter   ~0034510

Still occurs in .42.04 and .42.05. I'm pretty sure I've figured out what causes this.
When multiple buildings are set to be constructed adjacent to one another, if building one would require a dwarf to move material onto a tile occupied by a not-yet-constructed building, the job suspends with the erroneous cancellation. In the example above, this is why the outermost buildings were able to complete; there were always adjacent tiles without unfinished buildings occupying them that dwarves could move boulders into.
Any easy way to replicate this is dig a 1-wide corridor and designate a few tiles in it as a stockpile for a plentiful item like stone. When the tiles are filled, delete the stockpile and try to build 3 doors adjacent to one another on those tiles. Assuming enough idle dwarves to try to build all 3 doors simultaneously, the center door will be suspended with "cannot reach site" cancellation message, because the dwarf cannot move the stone into an adjacent tile.
The same can be observed in a 3-wide corridor with any workshops, but if you try to replicate it that way be sure you don't set them to be built with materials on the tiles where they're being built, or you may see a different, correct cancellation (item blocking site) due to the materials they want to move being tasked for another job.
In any of these cases, once the outer buildings are completed the dwarves will freely move material onto them to construct the inner buildings. Whether or not the cancellation and suspension is a bug isn't obvious, but the cancellation message itself is misleading and probably not intended.

Loci

2016-01-22 12:28

viewer   ~0034513

Related to 0008879; same erroneous error message and apparently the blocking items cannot be moved diagonally.

Add Note

Note

Issue History

Date Modified Username Field Change
2015-04-05 18:57 m-logik New Issue
2015-04-05 19:06 m-logik Note Added: 0032520
2015-04-05 19:06 Afghani84 Note Added: 0032521
2015-04-05 19:31 m-logik Note Added: 0032522
2015-04-05 22:03 m-logik Note Added: 0032526
2015-04-08 18:27 m-logik Note Added: 0032552
2016-01-22 00:15 m-logik Note Added: 0034510
2016-01-22 12:28 Loci Note Added: 0034513
2016-07-07 07:12 Loci Relationship added related to 0008879