OXYGENHUB

Log importer memory, determinism and the metalgear extension fixes 8eb39658a940

Author
Andy McCall @andymccall <[email protected]>
When
· 2026-09-29 13:30 UTC
Signature
✔ signed by Andy McCall
Hash
8eb39658a94040047549d5519af299ea7385dd31b63de827f95a5827d5fc7030
Depends on
75036530b621 e811b0813473
Depended on by
a5d2fbe7c10d
In bookmarks
agents-in-readme bare-hashes carried-not-removed carry-identical doctor-trust identical-sides keyless-tags main merge-remote-bookmark only-help-103 paths-for-resolutions-and-amend push-notes show-stat subrepo-pin-state switch-says
In tags
v0.1.0 v0.10.0 v0.11.0 v0.2.0 v0.3.0 v0.3.1 v0.4.0 v0.4.1 v0.4.2 v0.4.3 v0.4.4 v0.4.5 v0.4.6 v0.5.0 v0.5.1 v0.6.0 v0.7.0 v0.8.0 v0.9.0
Edits
1 atom, 0 tree operations, 1 file

Browse the tree at this change

modified docs/backlog-overnight-2.md +12 −0
…
775 unchanged lines
776 776
- 2026-09-29 **Out-of-memory incident on Sarturn at 12:28.** The full vscode import (14.2 GB RSS at about 3 850 s) plus a hub gate build exhausted Andy's workstation. The kernel killed the import, and VS Code and Chrome crashed. The 16 GB watchdog did not allow for concurrent builds and the desktop.
777 777
  - **Next:** fix the importer's memory growth first (candidates: at most 8 kept state clones, the `new_changes` vector holding every change, and full file graphs for every file). Measure on slices on **Earth only**, inside a hard cgroup memory limit (for example `systemd-run --user --scope -p MemoryMax=…`) that leaves room for the hub and the runner.
778 778
  - **Saturn:** no heavy jobs there. The partial import was removed; `~/scratch-vscode/vscode.git` (1.4 GB) remains and can be deleted once Earth has its own clone.
779 +
- 2026-09-29 **P5c progress: importer memory and determinism** (oxygen#28). All measurements were on Earth under `systemd-run --user --scope -p MemoryMax=8G`, in `~/bench`, with its own vscode clone (166 425 commits).
780 +
  - **Where the memory went:** deep clones of the kept states, not the closure memo (a few thousand entries). With 8 kept states, 1 000 commits took 3.0 GB; with 1, 1.2 GB but slower.
781 +
  - **The fix:** a state's file graphs are `Arc`-shared and copied on edit, and heads are tracked incrementally. 1 000 commits: 0.8 GB, 91 s. 5 000: 2.25 GB, 410 s.
782 +
  - **Determinism:** random NodeIds made imports non-deterministic, and not only in their hashes: the same binary gave 370 and 366 heads. New NodeIds now derive from the commit and path (spec §23, Draft 0.8p), and two imports of 5 000 commits give identical heads.
783 +
  - **Next:**
784 +
    - `oxy git verify` of the 5 000 slice (running on Earth);
785 +
    - memory still grows with history (tombstoned atoms in every graph), so try dropping the graphs of long-untouched files and rebuilding them on demand from the store, as history-only states already do;
786 +
    - then the full import on Earth.
787 +
- 2026-09-29 **Andy's metalgear VS Code problems, fixed.**
788 +
  - **Flashing Source Control:** a refresh loop through the subrepo's `.oxy`. Status no longer rewrites an unchanged manifest (oxygen#28 commit), and the extension ignores every `.oxy` directory (oxygen-vscode#7, 0.13.0).
789 +
  - **"OxygenHub: fetch failed":** plain fetch against Earth's self-signed certificate. The OxygenHub extension now uses the remote's CA file, or the `oxygenhub.caFiles` setting (oxygenhub-vscode#1, 0.7.0), and `oxy remote list --json` reports the CA.
790 +
  - Both extensions are installed in both profiles.