install.sh: la_put makes ~/Library/LaunchAgents and ~/Library/Logs before each Mac plist write (v12 red, D d436) #69
Closed
caoer115
wants to merge 0 commits from
agent/8751a366-darwin-launchagents into main
pull from: agent/8751a366-darwin-launchagents
merge into: caoer115:main
caoer115:main
caoer115:agent/cd2c5f53-usage-console
caoer115:agent/1bb9add4-v12-harness
caoer115:agent/1bb9add4-start-lock-darwin-stage
caoer115:agent/1bb9add4-release-v12
caoer115:release
caoer115:release-candidate
caoer115:agent/d9c794b6-v12-cut2
caoer115:agent/8c00a11c-update-pin-race
caoer115:agent/8aba5106-kept-calls-stdin
caoer115:agent/8aba5106-release-v12
caoer115:agent/bf7fc6b6-v12-cut
caoer115:agent/c97e8aa5-kept-launcher-calls
caoer115:agent/8751a366-seat-hook-trust
caoer115:agent/8aba5106-x-proof
caoer115:agent/8aba5106-f6-race
caoer115:agent/d61ec46b-stage-mrd
caoer115:agent/63070a28-d-proof
caoer115:agent/5524462a-release-v12
caoer115:agent/6bf1f784-v12-install-fixes
caoer115:agent/0bbcab29-cross-proof
caoer115:agent/0bbcab29-legacy-crossing-rows
caoer115:agent/6d5f8a53-v11-into-main
caoer115:agent/c6edf95f-release-v11
caoer115:agent/688607e7-v11-mount-fix
caoer115:agent/162d654b-post-v10-merge
caoer115:agent/0934f56d-cross-proof
caoer115:agent/8f736dbc-legacy-crossing-rows
caoer115:agent/8e4a37e7-legacy-crossing
caoer115:agent/8f736dbc-cross-proof
caoer115:agent/49adbf87-cross-proof
caoer115:agent/49adbf87-legacy-crossing-rows
caoer115:agent/e4aec787-release-v10c
caoer115:agent/c856372a-legacy-crossing-rows
caoer115:agent/43574d94-legacy-crossing-rows
caoer115:agent/85f66b73-legacy-crossing-rows
caoer115:agent/4efa3153-legacy-crossing-rows
caoer115:agent/a731652f-legacy-crossing
caoer115:agent/7cae41de-ccc-vm-component
caoer115:agent/2d7942fe-legacy-crossing
caoer115:agent/19fa016d-legacy-crossing-rows
caoer115:agent/af623cd5-release-v10b
caoer115:agent/af623cd5-v10-mods-line-text
caoer115:agent/fad28080-ccc-vm-component
caoer115:agent/4dbe6564-release-v10
caoer115:agent/ca2d225c-v10-mods-record
caoer115:agent/e57d3421-v10-below-v8
caoer115:agent/3a930385-v10-door-slim
caoer115:agent/bad058f6-v10-items
caoer115:agent/b13eab66-stage-mods
caoer115:agent/5b599f55-release-v9
caoer115:agent/3d26db53-v9-fix-wave
caoer115:agent/35e348fe-release-v9b
caoer115:agent/35e348fe-fetch-retry
caoer115:agent/35e348fe-release-v9
caoer115:agent/69a7fdf1-release-v9
caoer115:agent/ba566c59-heredoc-own
caoer115:agent/ba566c59-glm-tool-search
caoer115:agent/7f3d8382-release-v9
caoer115:agent/14a469ef-v9-merge
caoer115:agent/b644f6ce-v9-gate
caoer115:agent/14a469ef-v9-sop-lines
caoer115:agent/9ea542d2-v9-gate
caoer115:agent/ba56aefb-v9-gate
caoer115:agent/4f84a529-v9-gate
caoer115:agent/44aecf93-v9-update-fixes
caoer115:agent/de7bbb41-v9-gate
caoer115:agent/332457e8-v9-gate
caoer115:agent/ffd97b80-v8-u8-observed
caoer115:agent/ca07f64d-v8-u8-scorer2
caoer115:agent/8a4a6bab-v8-u8-scorer2
caoer115:agent/94ceb8fb-v8-u8-scorer2
caoer115:agent/096b6985-v8-u8-scorer2
caoer115:agent/1b34987c-v8-d-mirror
caoer115:agent/b99f9d95-release-v8
caoer115:agent/ce041c2c-v8-fixes
caoer115:agent/02459334-v8-lcall
caoer115:agent/0fe774d9-release-v8
caoer115:agent/1b484ec4-careful-read-v8
caoer115:agent/71891ee9-careful-read-v8
caoer115:agent/0fe774d9-v8-changelog
caoer115:agent/2001f856-careful-read-v8
caoer115:agent/b6fb9a71-careful-read-v8
caoer115:agent/5985e5c1-careful-read-v8
caoer115:agent/ad5e3a9d-careful-read-v8
caoer115:agent/ec18c1c5-careful-read-v8
caoer115:agent/5653a49e-release-v7
caoer115:agent/902bc3e8-careful-read
caoer115:agent/63e3e1d5-careful-read
caoer115:agent/2d1e01e1-careful-read
caoer115:agent/50420c19-careful-read
caoer115:agent/a240626c-careful-read
caoer115:agent/47a1c211-page-endpoints
caoer115:agent/d68e5f0f-careful-read
caoer115:agent/3761d5f9-v7-text
caoer115:agent/83fb1096-red-causes
caoer115:agent/228ab487-darwin-fold
caoer115:agent/a8734c68-launch-plumbing
caoer115:agent/f170ef58-scratch-mrd-own
caoer115:agent/4c25135b-u8-final-turn
caoer115:agent/14bf3e75-round-remote-born
caoer115:agent/14bf3e75-split-route
caoer115:agent/f5846b15-public-read-step
caoer115:agent/ab7a6b24-release-v6
caoer115:agent/9a7bd6eb-v6-round-rows
caoer115:agent/c949f6e3-v6-round-rows
caoer115:agent/e1837f4b-v6-round-rows
caoer115:agent/d7d8cb7c-v6-installer-record
caoer115:agent/db9078c6-v6-installer-record
caoer115:agent/4f026819-v6-door-text
caoer115:agent/82787bea-v6-installer-record
caoer115:agent/77faae3f-v6-round-rows
caoer115:agent/af41c4d6-v6-u8-harness
caoer115:agent/24bde89e-v6-installer-record
caoer115:agent/5b85b031-v6-door-text
caoer115:agent/01eb6dbb-darwin-installer
caoer115:agent/7d62923e-darwin-installer
caoer115:agent/33632a84-darwin-installer
caoer115:agent/160aa4d5-darwin-installer
caoer115:agent/5ebbe0ee-darwin-proof
caoer115:agent/ed0c44c3-darwin-installer
caoer115:agent/036b15b5-darwin-installer
caoer115:agent/9a0bdb4f-darwin-installer
caoer115:agent/5be069b3-darwin-installer
caoer115:agent/ca74074f-darwin-proof
caoer115:agent/3b1e69fd-darwin-stage
caoer115:agent/58d50016-darwin-installer
caoer115:agent/091c0fca-darwin-proof
caoer115:agent/de3b7606-release-v5
caoer115:agent/1c413789-darwin-installer
caoer115:agent/b94b0a9b-darwin-stage
caoer115:agent/f0d75332-darwin-proof
caoer115:agent/ff6bbf87-mrd-skew
caoer115:agent/ae3f7d2a-p1-down-tag
caoer115:agent/38375f69-codex-zenmux-tag
caoer115:agent/de3b7606-release-v5-db48b57
caoer115:agent/6c2e2fdf-release-v5
caoer115:agent/506affc6-glm-seats-tag
caoer115:agent/2bafddc4-update-door-audit-first
caoer115:agent/506affc6-hand-e2e-tag
caoer115:agent/3ffc1d3d-tag-harness-isolation
caoer115:agent/5f677488-update-door-audit-first
caoer115:agent/90f15cbe-update-door-audit-first
caoer115:agent/4830bf08-tag-harness-e1
caoer115:agent/4830bf08-tag-harness-e1-reply
caoer115:agent/8cf617bf-tag-harness
caoer115:agent/caaa33b3-update-door-audit-first
caoer115:agent/fcc617d9-update-door-audit-first
caoer115:agent/53e0c151-desktop-reply
caoer115:agent/817f6b08-desktop-r204
caoer115:agent/50aa067d-update-door-v5
caoer115:agent/c5061cc5-update-door-v5
caoer115:agent/6ceef3ee-update-door-v5
caoer115:agent/41e202aa-update-door-v5
caoer115:agent/2f2d9ab9-update-door-v5
caoer115:agent/42a3569a-round-gate-v5b
caoer115:agent/307ea891-stock-seat-text
caoer115:agent/42a3569a-reask
caoer115:agent/42a3569a-desktop-fresh
caoer115:agent/86c7f827-update-door-v5
caoer115:agent/42a3569a-release-ci
caoer115:agent/05999a1d-update-door-v5
caoer115:agent/42a3569a-release-ci-bad
caoer115:agent/42a3569a-round-gate-v5
caoer115:agent/2b854f7e-update-door-v5
caoer115:agent/d68feee4-measure-one-call
caoer115:agent/8f3349f8-r282-harness
caoer115:agent/7434b10a-r281-harness
caoer115:agent/7434b10a-fork-one-act
caoer115:rounds/native-face-daemon-df6fd598
caoer115:agent/b44d758c-r278-harness
caoer115:agent/b44d758c-health-read
caoer115:agent/0f011458-release-v4
caoer115:agent/9c8c5bb3-handoff-edge-read
caoer115:agent/379d2e5a-stock-skill-slash
caoer115:agent/5fa27f17-update-door-readers
caoer115:agent/7fc3d9c5-update-door-readers
caoer115:agent/78dd461a-release-check-nul
caoer115:agent/379d2e5a-k4-w4-act
caoer115:agent/7ddd0997-update-door-readers
caoer115:agent/00d1fa4a-install-never-half
caoer115:agent/e71449d2-stock-e2e-reads
caoer115:agent/4b374ed3-post36-scratch
caoer115:agent/e71449d2-k3-pi-stage
caoer115:agent/2728d656-update-door-readers
caoer115:agent/4b374ed3-update-door-readers
caoer115:agent/9d4b0a6b-update-door-readers
caoer115:agent/fe85453a-update-door-readers
caoer115:agent/9ed5c380-native-seat-rows
caoer115:agent/60ae1620-round-gate-waivers
caoer115:agent/7fdb5ad4-prev-clone
caoer115:agent/ec53733e-release-v4
caoer115:agent/3fb78d71-025-join
caoer115:agent/e6841e1d-r244-e2-order
caoer115:agent/237686e8-r243-adopt-wait
caoer115:agent/ff57fafe-r242-desktop-actor
caoer115:agent/ff57fafe-r241-e3-fence
caoer115:agent/26fc9102-r240-adoption
caoer115:agent/ae735f5f-install-err-trap
caoer115:agent/a567204f-forward-updater
caoer115:agent/78587285-public-user-clone
caoer115:agent/78587285-release-v3
caoer115:agent/0902f524-narration-sweep
caoer115:agent/a11188f4-update-door-trust
caoer115:agent/0da7e7ad-stock-acts-list-row
caoer115:agent/086b94af-stock-seat-e2e
caoer115:agent/f0e7213c-stock-seat-e2e
caoer115:agent/b57025e2-update-door-trust
caoer115:agent/f75fc391-p1-daemon-down
caoer115:agent/06152cf1-release-v3
caoer115:agent/72edd65e-public-root-identity
caoer115:agent/dea99d39-release-v3
caoer115:agent/5e673049-r185-races
caoer115:agent/5e673049-u14-plant
caoer115:agent/42f61050-small-text
caoer115:agent/7a466228-f3-detector-row
caoer115:agent/cda99725-update-lock-wait
caoer115:agent/cda99725-public-update-env
caoer115:agent/fd64650c-release-install
caoer115:agent/f5f0d19e-public-release
caoer115:agent/91c9d12c-public-release
caoer115:agent/0166ebc9-round-gate
caoer115:agent/1151dbcb-public-release
caoer115:agent/ddfe626a-round-gate
caoer115:agent/04340cad-daemon-identity-rounds
caoer115:agent/7f9f4d01-stock-coordination
caoer115:agent/6b9a3132-update-door
caoer115:agent/d7ac1736-gap-small-items
caoer115:agent/66078a57-k3-window
caoer115:agent/3854d1e9-rows-at-n1-151
caoer115:agent/81d54266-u13-rename
caoer115:agent/e27c1979-u14-peer-seam
caoer115:agent/373a0534-u8-update
caoer115:agent/ce4f2d8a-r123-rows
caoer115:agent/ccbc5d38-r122-p1-rows
caoer115:agent/42e0a0a5-u8-update
caoer115:agent/fb5e4930-u12b-desktop-row
caoer115:agent/c0a02979-n1-fleet-shape
caoer115:agent/a73a9c81-u7-install
caoer115:agent/0b1adef8-u10-rows
caoer115:agent/d7f68e7b-u11-face-cost
caoer115:agent/ac6466fc-u6-face-rows
caoer115:agent/d2297324-u5-k3-rows
caoer115:agent/6b39c2fd-u4-k4-vectors
caoer115:agent/d48702aa-u5-k3-rows
No reviewers
Labels
Clear labels
No items
No labels
Milestone
Clear milestone
No items
No milestone
Projects
Clear projects
No items
No project
Assignees
Clear assignees
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".
No due date set.
Dependencies
No dependencies set.
Reference
caoer115/ucc!69
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "agent/8751a366-darwin-launchagents"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
v12 product red (D d436, both Macs):
install.shstopped at theucc.cccd-start.plistwrite on a home with no~/Library/LaunchAgents. Card:13-16-ucc-rearchitecture/tasks/v12-darwin-launchagents.Cause
a524e3f(legacy crossing) moved the follow tick intofollow_timer(), which runs after the daemon section and returns early whereucc-followis the host's own (G1). Itsmkdir -p "$LA" "$HOME/Library/Logs"was the only one, so the daemon's start plist (:2459at3c5b53f) was written before any folder existed. In v11 (39737ee) the mkdir ran first.Fix
la_put(install.sh:2354) makes~/Library/LaunchAgentsand~/Library/Logs(where launchd opens the agent's log), then writes the plist. Both write sites use it:ucc.follow(:2384, any floor, where ucc wroteucc-follow) anducc.cccd-start(:2464, floors 3 and 4). The mkdir now comes with each write, so it holds on a first install, a reinstall and a crossing, whatever order the sections run in.Rows (proved by D on this head; the release worker's proof D d437)
launchd-dirs-darwinon mac1:ucc stage --scriptstheninstall.sh --floor 3 --releasefrom the published set. It runsstage.new/install.sh:2354(la_put) through:2464(cccd-start), then:2384(follow tick, called at:2476), thenla_loadon both plists.launchd-dirs-darwinon mac2:install.sh --floor 3 --from <stage> --round, which runs the same lines from the clone'sinstall.sh.~/round-<rNN>/, so each launch runs on a home with neither. The row is scored right after the install, so it also scores when the install fails. pass = rc 0, both folders exist, and both plists are in LaunchAgents. fail gives the rc, what is missing, and the install'sNo such file or directoryline. n = only when a folder could not be moved aside. (rounds/darwin.sh:171-196, manifest +2.)Gates at
7162fc1bash -nrc 0 oninstall.sh,uccandrounds/darwin.sh, under bash 5.3.15 and 3.2.57.lint-lcall.awk install.shandlint-lockfd.awk ucc install.sh: clean, no lines.~/Library.la_puttaken frominstall.shwrote both plists and made both folders. The row block taken fromdarwin.shscored pass on a stub install that makes them, and fail (rc 1 plus the:2459line) on the d436 output. A Linux host cannot run the darwin path itself; D proves it.Step 2: darwin writes and launchctl calls read in
39737ee..3c5b53ffollow_timer(moved bya524e3f, G1-gated): the break described above. Fixed.ucc.cccd-startwrite: same position as in v11, but now the first write into$LA: the break. Fixed.la_load/la_unload/la_still(launchctl bootstrap|bootout|print): bootstrap reads$LA/<label>.plistand runs only afterla_putat both sites. Bootout and print need no file.:2471): bootout, thenrm -fbehind[ -e ]. No write.:934): L0 copies the two plists where they exist (-where they don't). The put-back (xput) renames a copy back only into the folder it was taken from, and removes the run's plist for a-row. No write ahead of its folder.:1349-1350): bootout of the jobs this run loaded. No file needed.xown'slsof -d txt, the port census'slsofpath, andexec -ain the put-back's old-daemon restart (works under bash 3.2.57). All reads; none needs a folder.la_loadis only at the two install sites). On a Mac where the crossing booted out an olducc.cccd-startorucc.follow, that job stays unloaded until the next login.Do not merge from this seat; the leader merges after the Fable correctness and security reviews of
install.sh.Merged to main as
ee28a52(pushed --no-ff merge, tree = reviewed head7162fc1; Fable correctness and security: no findings; proof D d437 0 fails on both Macs; bash -n and both lints clean; zero round scopes on nyc-2 at push). Closing as merged.Pull request closed