# GRAVEWALKER

Tarnhelm firmware 4.0 through 4.6, on Cassin 9 terminal servers, did not zero
the receive buffer on a warm reset. A session opened immediately after one had
been dropped therefore began with whatever was still in the buffer: the last
screenful of somebody else's line, delivered before the login prompt, in the
same colours, at the same rate, as though it were yours.

It was a defect. It was fixed. It has a name, a column, a two-word season, and
several hundred people who ran 4.6 on purpose until the hardware died.

## The mechanism, briefly

Warm reset cleared the framing state and the session table and left the ring
alone, on the theory — visible in the 4.0 release notes — that the ring is
overwritten before it is read. On a busy server that is true. On a quiet one,
where a reset might be followed by four minutes of nothing, it is not, and the
ring still held the tail of the last connection when the next one attached to
it.

The fix in 4.7 is one instruction. That is not a criticism of anyone; it is the
usual shape of this class of bug, and the reason the fix took two years is that
for most of those two years nobody was reporting it as a fault.

## The name

Coined in *The Fallow Ledger* No. 52 (1991), in a paragraph nobody has improved:

> The machine has no memory and keeps producing one. What you get is not a log,
> not a capture and not a leak in any sense a lawyer would accept — it is the
> last four hundred characters of somebody who has already hung up, walking
> through the room you are standing in. Call it a gravewalker and stop trying to
> file it.

The Ledger ran a GRAVEWALKER column for eleven issues. It printed nothing that
had been walked — that was the column's founding rule and it held — and instead
printed the conditions: which servers, which idle times, which resets produced
it and which did not. It reads, in retrospect, exactly like a reproduction
guide, and it was one, and the fact that it was published in a newsletter with
eighty subscribers is why the vendor did not see it for two years.

## The following

Three things kept 4.6 alive after 4.7 shipped.

**The obvious one**, which the tradition has never been comfortable about and
does not pretend otherwise. A buffer that hands you somebody else's last four
hundred characters is a thing some people wanted for reasons that are not
interesting and not defensible.

**The diagnostic one.** GRAVEWALKER was the only way to see what the server had
last done without holding a console line, and on a site where the console was in
a locked room forty miles away, that was a real capability. Several operators
kept one 4.6 server in a rack for this and nothing else, and called it the
listening post, and did not put anything on it.

**The third one**, which is what actually produced the following: it was the
only piece of equipment anyone owned that behaved differently at three in the
morning. Everything else on the floor was indifferent to the hour. The
gravewalker was a function of idle time, so it appeared when the building was
empty and did not appear when it was not, and people sat up for it. "Gravewalker
season" is the last two weeks of December, when the traffic drops and the
buffers stop being overwritten, and there are accounts of people going in on
Christmas Eve to watch a terminal server produce four hundred characters of the
previous week.

## Why it is on this shelf

Because it is the exact inverse of [[lore/cold-handshake]]. There, a working
protocol was withdrawn with a defect named as the reason, and the defect was not
the reason. Here, a genuine defect was fixed correctly and promptly once
reported, and a constituency kept the broken version because the breakage was
the only interesting behaviour in the building.

The tradition's summary of the pair is that a bug becomes lore when somebody
would be worse off without it, and that this says nothing whatsoever about
whether it should be fixed. Both halves of that sentence are load-bearing and
the second half is the one that gets dropped in retelling.

## Related

- [[lore/index]] — the collection
- [[lore/cold-handshake]] — the deprecation that went the other way
- [[lore/vesper-node]] — the other machine that kept producing output
- [[lore/lexicon]] — *walker*, *season*, *listening post*
- [[lore/sources]] — the Ledger's GRAVEWALKER column, issues 52–63
