Repository navigation
issues: sixteen records whose defect, code or test is gone are deleted - #1220
Conversation
Review of #1220 at
|
Each was checked against the tree at 422915e before it went. Written against the shadow-paging storage crate, which #1152 (e11b6a7) replaced with the bcachefs engine (lib/bcachefs/src/engine/): - a-crash-leaks-the-blocks-of-its-last-commit: there is no bitmap written in place. A bucket's state is a key of the alloc btree, journaled with the change that took or emptied it. The crash suites (engine/tests/crash.rs, `judge`) mount every sampled crash state, unmount it and require `fsck` to find nothing, and fsck's derived-btree walk reports an alloc key that the volume's pointers do not derive. - a-btree-split-leaves-nodes-holding-a-few-entries: `split_node` and `pack` are gone. Publication and reclaim split with `mkfs::spread`, which fills the new nodes evenly, and reclaim splits at two thirds. - a-write-over-a-files-committed-page-is-not-shadowed: file data is copy-on-write and a pointer is journaled only after its bytes complete (engine/mount/data.rs). `data_and_logged_truncate_survive_torn_ reordered_writes` and its encrypted twin overwrite committed bytes and judge every crash state as one commit or the other. - a-file-on-data-is-refused-at-250-runs-while-blocks-are-free: a file's extents are keys of the extents btree, not one entry of at most `MAX_ENTRY_SIZE`; that constant, `file_entry_fits` and the cited test are gone. - deviceerror-classify-trusts-a-lying-transfererror: `DeviceError`, `TransferError` and `classify` went with the crate (24560b3 removed its tests). The engine's device error is `toyos_blockdev::Error`. Code that left the kernel: - a-console-holders-line-state-guards-writers-that-no-longer-exist: `ConsoleLine`, `MID_LINE` and `MAX_CONSOLE_LINE` went when the console UART became a userland driver's (a788d31); kernel/CLAUDE.md no longer carries the caveat the record's exit named. - the-i8042-tallys-release-acquire-pair-has-no-negative-control: the tally and its loom test left with the i8042 driver (febfd21). - copy-meets-a-remap-holds-a-cpu-the-thread-it-waits-on-may-be-queued- behind: the spin it describes, `remap_race::hold`, was deleted by 2f366a9. Nothing is owed in its place because a user copy now runs through the process's own mapping (kernel/src/user_ptr.rs's header), so a racing unmap meets the fault path that `user_copy_faults` and `unmap_touch` cover. Tests that are gone, and with them what the record asked of them: - fs-turns-judges-the-scheduler-with-the-lock and hda-client-stall-prints-a-stream-error-and-passes: both guest tests were cut by ff1a11d. - a-loaded-suite-reds-a-volume-checker-on-both-arms: one cluster on the log volume marked allocated and reached by no directory entry, found by the FAT checker after guest tests that are all deleted since. The leak was real and reproduced: the record's last sighting, `toybox_cp_volume`, was red run alone on both arms, reached through a deliberately failed write. What holds it now is 0d73b99 (2026-09-26, after every sighting), which gave toyos-fat32 its repair contract (lib/fat32/src/repair.rs), and lib/fat32/tests/refused_writes.rs, which refuses every write of every structural call, `append_two_clusters` and `first_allocation` included, and requires of the independent toyos-fat32-check that no cluster is orphaned. - a-double-panic-at-boots-edge-says-nothing-but-its-name: one sighting under host load on 2026-08-19 of `log_poll_outlives_a_close`, deleted by ad6dc07. Its second finding was resolved in kernel/src/panic.rs; its first was not seen again in 612 boots, and the log ring and console paths it pointed at were replaced (88a17fe, a788d31). Fixed: - logkeeper-still-says-a-budget-refusal-leaves-the-device-untouched: system/logkeeper/src/policy.rs holds neither sentence. - a-log-rings-owner-is-named-only-when-logkeeper-reads-its-registration: the supervisor lays each ring out with a placeholder owner and names the owner itself before it sends the registration. d565ff4 added `a_placeholder_owned_ring_keeps_its_slots_from_every_pid_until_named` (sdk/toyos/src/log/proof.rs), which a `keep` of zero fails. - an-fsync-of-a-served-file-syncs-its-whole-volume: built by b3897d5, and the measurement it owed exists. On the AMD bench `persist.write_4k_fsync_beside_1m` reads 3.03 ms against 2.36 ms for `persist.write_4k_fsync` and 4.18 ms on Linux, where the megabyte written beside it would cost about 3.8 ms more at `persist.seq_write_fsync`'s 266 MB/s if the fsync carried it: https://github.com/ToyOSOrg/evidence/blob/7efbe1295aa54370b213719b4d4f460e7a103554/ab/README.md The base-against-head pair its exit named cannot be run, since the base is the storage crate #1152 removed. The code establishes it more directly: `Files::fsync` (system/fileserver/src/pages.rs) writes back only the named file and those the volume reports `carried`; `DataVolume` keeps `Volume::carried`'s default of false (system/fileserver/src/volume.rs); and `DataVolume::commit` (system/fileserver/src/data.rs) persists only the named node before the journal commit. issues/toyos-builds-itself.md's row 28 no longer names it. - kernel-issues-cite-the-cut-https-tests-as-cover-that-runs: issues/a-claims-own-refusals-are-read-by-nothing.md no longer names either test. The lines that still do are the tracks' plans for the metal row. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
7fdc430 to
74cea1d
Compare
|
Orchestrator verification at 74cea1d, after review r1 SEND BACK (text-only blockers). This PR changes only files under |
The tracker carried records whose defect was fixed, whose code no longer exists, or whose test was cut. This deletes sixteen of them. Records only; no code changes.
Each record was checked against the tree at
422915e2c: whether the function, file or test it cites exists, and, where the code was replaced, whether the defect is still reachable in what replaced it. The commit message carries the same evidence in prose.a-crash-leaks-the-blocks-of-its-last-commitlib/bcachefs/src/engine/tests/crash.rsjudgemounts every sampled crash state and requiresfsckto find nothing; fsck's derived-btree walk reports alloc keys the pointers do not derivea-btree-split-leaves-nodes-holding-a-few-entriessplit_node/packare gone; publication and reclaim split throughmkfs::spread(even fill), reclaim at two thirds (engine/mount/publish.rs,reclaim.rs)a-write-over-a-files-committed-page-is-not-shadowedengine/mount/data.rs);data_and_logged_truncate_survive_torn_reordered_writesoverwrites committed bytes and judges each crash state as one commit or the othera-file-on-data-is-refused-at-250-runs-while-blocks-are-freeMAX_ENTRY_SIZE,file_entry_fitsand the cited test do not existdeviceerror-classify-trusts-a-lying-transfererrorDeviceError,TransferError,classify: no hit outsideissues/a-console-holders-line-state-guards-writers-that-no-longer-existConsoleLine,MID_LINE,MAX_CONSOLE_LINEremoved bya788d314b;kernel/CLAUDE.mdholds no line-buffer caveatthe-i8042-tallys-release-acquire-pair-has-no-negative-controltally.rsandi8042_tally.rsremoved byfebfd21e8copy-meets-a-remap-holds-a-cpu-the-thread-it-waits-on-may-be-queued-behindremap_race::hold, was deleted by2f366a930. A user copy now runs through the process's own mapping (kernel/src/user_ptr.rsheader), so a racing unmap meets the fault pathuser_copy_faultsandunmap_touchcoverfs-turns-judges-the-scheduler-with-the-lockfs_turnscut byff1a11dbdhda-client-stall-prints-a-stream-error-and-passeshda_client_stallcut byff1a11dbda-loaded-suite-reds-a-volume-checker-on-both-armstoybox_cp_volumered run alone on both arms, through a deliberately failed write).0d73b9957gavetoyos-fat32its repair contract, andlib/fat32/tests/refused_writes.rsrefuses every write of every structural call and requires of the independenttoyos-fat32-checkthat no cluster is orphaneda-double-panic-at-boots-edge-says-nothing-but-its-namelog_poll_outlives_a_closedeleted byad6dc0781; finding 2 resolved inkernel/src/panic.rs; finding 1 not seen in 612 boots and the log paths it named were replaced (88a17feee,a788d314b). It also cited a record that no longer existslogkeeper-still-says-a-budget-refusal-leaves-the-device-untouchedsystem/logkeeper/src/policy.rsholds neither sentencea-log-rings-owner-is-named-only-when-logkeeper-reads-its-registrationa_placeholder_owned_ring_keeps_its_slots_from_every_pid_until_named(sdk/toyos/src/log/proof.rs,d565ff418)an-fsync-of-a-served-file-syncs-its-whole-volumetoyos-builds-itselfno longer cites itpersist.write_4k_fsync_beside_1m3.03 ms againstpersist.write_4k_fsync2.36 ms on the AMD bench, Linux 4.18 ms: evidencekernel-issues-cite-the-cut-https-tests-as-cover-that-runsa-claims-own-refusals-are-read-by-nothingnames neither test; the remaining mentions are the tracks' plans for the metal rowRecords: 752 on
mainat34cb4c918, 736 on this branch.Decisions a reviewer may want to question
Files::fsync(system/fileserver/src/pages.rs) writes back only the named file and those the volume reportscarried,DataVolumekeepsVolume::carried's default offalse(volume.rs), andDataVolume::commit(data.rs) persists only the named node before the journal commit. The AMD reading confirms it: the megabyte written beside the fsynced file would add about 3.8 ms atpersist.seq_write_fsync's 266 MB/s if the fsync carried it, and the row costs 0.67 ms more than the fsync alone.Checks
No code or instruction file changes, so no host check applies. For each deleted slug,
git grep <slug>on the branch finds nothing.🤖 Generated with Claude Code