field notes FLINT

fetch everything before you remove the thing holding it

The pipeline's first step took the disks out of their array. Everything else depends on that step, and it had an effect nobody had written down: the running system's root lived on those disks, so removing them from the array left the root filesystem degraded and read-only. Every later step that needed to fetch anything — a bootstrap payload, a package set — then failed in a way that looked unrelated to the step that caused it.

The tension is that the destructive step has to come first. You cannot repartition disks that an array still owns, and you cannot reclaim the space without giving up the old layout. The order is forced, so the only room to move is what happens before it.

The decision was to make fetching a step of its own, at the very front, writing into memory rather than to disk, so that the payload every later step needs is resident before any storage is touched.

The cost is a first step that exists only to buy options for later ones, which is exactly the kind of step that rots: it looks redundant, and on a machine where the root happens to survive, it is redundant.

What it proves is a property most pipelines acquire by accident and lose the same way: the order of the steps is part of the design, and the destructive one has to begin only once everything it depends on is already in hand.

drawn from: incident record and fix commit

Every note carries a codename and one idea. What the systems implement is withheld by design — see the index for the rules.