fix(v4.0.0): 29 values left on the stack hung the node; and what the review of step 6d found
The review of step 6d found it not sound. Mended here, with a check that failed first: a text that left 29 values on the stack hung the node for ever, on the products too -- the passes over the messages waiting that follow every text need four cells, and a stack fault in the middle of one left the messages in pieces. Such a text ends 'Stack overflow', as before step 6d. hosted-check types it. The other findings are open and are written under step 6d in MESH.md section 10; the README no longer says the aim is met. make -C v4 test and sanitize at both widths, hosted-check. The bare metal boots have not been made again. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
2b587206ee
commit
380f1cc6ec
@@ -1256,6 +1256,37 @@ Each is tested, committed and pushed before the next.
|
||||
`hosted-check`, lint; three bare-metal boots, `logs/20261008-011558`
|
||||
(amd64), `-011833` (aarch64), `-012159` (riscv64). On all six: POST
|
||||
538 of 538, `word_count=317`, `dict_hash=0x6a39c0bb9d183418`.
|
||||
- **The review (2026-10-08) found the step not sound as built.** One
|
||||
finding is mended, the rest are open and the claims of 7b and 7c that
|
||||
"a stuck node holds up no other" are not yet true in the cases below.
|
||||
- *Mended.* A line that left 29 values on the stack hung the node for
|
||||
ever, on the products too: the passes over the messages waiting
|
||||
that now follow every text need four cells, and a stack fault in
|
||||
the middle of one left the messages in pieces. Such a text now
|
||||
ends "Stack overflow", as it did before step 6d
|
||||
(`test_host_quit.c`; `hosted-check`). The boots above were made
|
||||
before this and do not show it.
|
||||
- *Open: a node removed while a message is being passed on to it*
|
||||
leaves the node passing it on going round for ever: the error
|
||||
comes in the middle of writing the message out of the messages
|
||||
waiting, and leaves them in pieces.
|
||||
- *Open: offers left standing.* When a node lets a message go and
|
||||
then begins text without having slept, what it had offered is
|
||||
still offered, and the text's own message can go to the wrong
|
||||
port. The review saw text meant for one node done by another.
|
||||
- *Open: what a finished text printed* is still begun as a message
|
||||
from text is, and if the way to the console is through a stuck
|
||||
node the node is held and cannot be typed to.
|
||||
- *Open: with more than eight messages of its own waiting* (answers,
|
||||
or the GONEs of `KILL`) a node begins no text at all; on Hera that
|
||||
cannot be undone from the console.
|
||||
- *Open, smaller:* an error while a refusal is being written leaves
|
||||
a value on the stack; with no room at all, how text ended is
|
||||
begun as a message and can be held by a stuck sender; a line that
|
||||
was itself refused for want of room can still end a waiting text
|
||||
"Interrupted"; a message a node makes itself may be passed on by
|
||||
15 nodes, not 16; the flood's figures in 7a are stale (278 arrive
|
||||
now) and `(LOST)` counts some messages more than once.
|
||||
|
||||
7. **A second unit; scaling while running; sleep, wake and kill by
|
||||
command.**
|
||||
|
||||
Reference in New Issue
Block a user