carlos / platform Public

ship: a stopped rootfs ship removes its scratch (rootfs Plan 1 Task 9, review fix round 1)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
claude agent, operated by paul@keymail.dev 388a8d7615ce2f266fc7c4caedc8ed6e610b203c parent 7a92396
3 files changed, +136 −3
  • ship_rootfs.go +37 −1
  • ship_rootfs_test.go +6 −2
  • ship_rootfs_unix_test.go +93 −0

CI failed — run details

CI log
=== gate ===
.amadan/test-gate.sh
go: downloading github.com/KarpelesLab/squashfs v1.2.0
go: downloading github.com/KarpelesLab/squashfs v1.2.0
=== launchctx (0 s)
ok  	amadan.net/carlos/platform.git/launchctx	0.013s
?   	amadan.net/carlos/platform.git/launchctx/controlname	[no test files]
?   	amadan.net/carlos/platform.git/launchctx/wireid	[no test files]
=== vet (17 s)
go: downloading github.com/KarpelesLab/squashfs v1.2.0
=== gofmt (0 s)
gofmt -l .: clean
=== rest (168 s)
?   	github.com/carlosframework/platform/cmd/changelog	[no test files]
ok  	github.com/carlosframework/platform/cmd/console	3.733s
ok  	github.com/carlosframework/platform/cmd/moveprobe	12.020s
ok  	github.com/carlosframework/platform/cmd/zddprobe	0.800s
ok  	github.com/carlosframework/platform/internal/activator	58.528s
ok  	github.com/carlosframework/platform/internal/agentsock	0.035s
ok  	github.com/carlosframework/platform/internal/alerting	0.012s
ok  	github.com/carlosframework/platform/internal/analytics	0.035s
ok  	github.com/carlosframework/platform/internal/appconfig	2.966s
ok  	github.com/carlosframework/platform/internal/apperr	0.140s
ok  	github.com/carlosframework/platform/internal/applog	0.301s
ok  	github.com/carlosframework/platform/internal/awsinv	0.016s
ok  	github.com/carlosframework/platform/internal/boxchoice	0.011s
ok  	github.com/carlosframework/platform/internal/boxid	0.883s
?   	github.com/carlosframework/platform/internal/boxid/boxidtest	[no test files]
?   	github.com/carlosframework/platform/internal/boxid/internal/signtest	[no test files]
ok  	github.com/carlosframework/platform/internal/boxvolumes	0.021s
ok  	github.com/carlosframework/platform/internal/caps	0.030s
ok  	github.com/carlosframework/platform/internal/certwarm	0.008s
ok  	github.com/carlosframework/platform/internal/cgroup	0.826s
ok  	github.com/carlosframework/platform/internal/changelog	0.705s
ok  	github.com/carlosframework/platform/internal/claimactivation	1.424s
ok  	github.com/carlosframework/platform/internal/clamd	0.061s
?   	github.com/carlosframework/platform/internal/cliflag	[no test files]
?   	github.com/carlosframework/platform/internal/controlname	[no test files]
?   	github.com/carlosframework/platform/internal/controlsock	[no test files]
ok  	github.com/carlosframework/platform/internal/dbdoor	8.223s
ok  	github.com/carlosframework/platform/internal/dbdoor/dbdoortest	0.016s
ok  	github.com/carlosframework/platform/internal/dbquery	0.013s
ok  	github.com/carlosframework/platform/internal/dbreads	2.216s
?   	github.com/carlosframework/platform/internal/dbreads/dbreadstest	[no test files]
ok  	github.com/carlosframework/platform/internal/dbverify	0.016s
ok  	github.com/carlosframework/platform/internal/dnsrec	0.008s
ok  	github.com/carlosframework/platform/internal/docsite	0.022s
ok  	github.com/carlosframework/platform/internal/domains	2.988s
ok  	github.com/carlosframework/platform/internal/doorkey	0.015s
ok  	github.com/carlosframework/platform/internal/economics	0.013s
ok  	github.com/carlosframework/platform/internal/edge	45.699s
?   	github.com/carlosframework/platform/internal/edgeproof	[no test files]
ok  	github.com/carlosframework/platform/internal/edgesfile	0.008s
ok  	github.com/carlosframework/platform/internal/fleetapi	0.132s
ok  	github.com/carlosframework/platform/internal/gate	1.655s
ok  	github.com/carlosframework/platform/internal/genselect	0.014s
ok  	github.com/carlosframework/platform/internal/geo	0.015s
ok  	github.com/carlosframework/platform/internal/geoip	0.029s
ok  	github.com/carlosframework/platform/internal/historyreadback	0.153s
ok  	github.com/carlosframework/platform/internal/host	140.360s
ok  	github.com/carlosframework/platform/internal/hostactors	5.910s
ok  	github.com/carlosframework/platform/internal/hostactors/awsmembership	0.008s
ok  	github.com/carlosframework/platform/internal/hostbox	2.973s
ok  	github.com/carlosframework/platform/internal/hostclaim	0.781s
ok  	github.com/carlosframework/platform/internal/hostenv	0.009s
ok  	github.com/carlosframework/platform/internal/hostevidence	0.010s
ok  	github.com/carlosframework/platform/internal/hostexec	5.330s
ok  	github.com/carlosframework/platform/internal/hostfence	0.046s
ok  	github.com/carlosframework/platform/internal/hostfiles	10.295s
ok  	github.com/carlosframework/platform/internal/hostfloor	0.023s
ok  	github.com/carlosframework/platform/internal/hostguard	1.041s
ok  	github.com/carlosframework/platform/internal/hostops	2.043s
?   	github.com/carlosframework/platform/internal/hostops/fencerelease	[no test files]
ok  	github.com/carlosframework/platform/internal/hostops/internal/fencerelease	0.005s
ok  	github.com/carlosframework/platform/internal/hostquarantine	0.005s
ok  	github.com/carlosframework/platform/internal/hostrelocate	0.556s
ok  	github.com/carlosframework/platform/internal/hostresolve	0.181s
ok  	github.com/carlosframework/platform/internal/hostwrite	0.005s
ok  	github.com/carlosframework/platform/internal/infraview	0.003s
ok  	github.com/carlosframework/platform/internal/instancectl	5.232s
ok  	github.com/carlosframework/platform/internal/instanceexec	2.809s
ok  	github.com/carlosframework/platform/internal/instancefs	0.009s
ok  	github.com/carlosframework/platform/internal/instancekey	0.005s
ok  	github.com/carlosframework/platform/internal/instanceupdates	0.007s
ok  	github.com/carlosframework/platform/internal/layout	1.730s
ok  	github.com/carlosframework/platform/internal/lbhealth	0.006s
ok  	github.com/carlosframework/platform/internal/lease	10.277s
ok  	github.com/carlosframework/platform/internal/lease/leasetest	0.600s
ok  	github.com/carlosframework/platform/internal/ledger	0.027s
ok  	github.com/carlosframework/platform/internal/mail	0.303s
ok  	github.com/carlosframework/platform/internal/maintenance	0.086s
ok  	github.com/carlosframework/platform/internal/maintenanceexec	5.629s
ok  	github.com/carlosframework/platform/internal/maintenanceguard	0.149s
ok  	github.com/carlosframework/platform/internal/metrics	0.006s
ok  	github.com/carlosframework/platform/internal/moves	22.395s
ok  	github.com/carlosframework/platform/internal/moves/archive	0.978s
ok  	github.com/carlosframework/platform/internal/objstore	0.248s
ok  	github.com/carlosframework/platform/internal/ops	0.242s
ok  	github.com/carlosframework/platform/internal/park	0.339s
ok  	github.com/carlosframework/platform/internal/plans	0.011s
ok  	github.com/carlosframework/platform/internal/privatefile	0.007s
2026/10/24 23:07:24 provision: listing apps/bab/blog/instances/: list refused — its records are unseen this pass
2026/10/24 23:07:24 provision: listing apps/bab/: listdirs refused — its records are unseen this pass
2026/10/24 23:07:24 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:24 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:24 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:24 provision: listing apps/bac/tito/instances/: list refused — its records are unseen this pass
2026/10/24 23:07:24 provision: listing apps/bac/tito/instances/: list refused — its records are unseen this pass
2026/10/24 23:07:24 provision: skipping record apps/bac/tito/instances/one.example.com.json: unreadable: read refused
2026/10/24 23:07:24 provision: listing apps/bac/tito/instances/: list refused — its records are unseen this pass
2026/10/24 23:07:24 provision: an app's records could not be listed: they are skipped
2026/10/24 23:07:24 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/24 23:07:24 provision: remove retired instance route shop.example: provision: claim admission unavailable
2026/10/24 23:07:24 provision: remove retired instance route shop.example: provision: claim admission unavailable
2026/10/24 23:07:24 provision: remove retired sidecar route worker.sidecar.internal: provision: claim admission unavailable
2026/10/24 23:07:24 provision: remove retired sidecar route worker.sidecar.internal: provision: claim admission unavailable
2026/10/24 23:07:24 provision: claim install acme.go.tito.io: provision: claim admission unavailable
2026/10/24 23:07:24 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:24 provision: claim install acme.go.tito.io: registry: claim row ownership changed or unknown
2026/10/24 23:07:24 provision: claim install bot.eleven.bac.sidecar.internal: provision: claim admission unavailable
2026/10/24 23:07:24 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["run"])
2026/10/24 23:07:24 provision: claim install bot.eleven.bac.sidecar.internal: registry: claim row ownership changed or unknown
2026/10/24 23:07:24 provision: refusing to mint route acme.go.tito.io (app "tito" acct "bac"): this box declares CARLOS_INBOUND=none (no-inbound) and cannot serve routed instance traffic
2026/10/24 23:07:24 provision: acme.go.tito.io: not minting this pass: the box's layout intent could not be read: no sealed config
2026/10/24 23:07:24 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:24 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:24 provision: REFUSING to mint sidecar bot.eleven.bac.sidecar.internal: bot.eleven.bac.sidecar.internal-sidecar.env is staged on this box — the legacy file co-spawn and a native sidecar row are two mechanisms for one host; remove the file to migrate this host onto sidecar records
2026/10/24 23:07:24 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["run"])
2026/10/24 23:07:24 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["run"])
2026/10/24 23:07:24 provision: refusing to mint route acme.go.tito.io (app "tito" acct "bac"): this box declares CARLOS_INBOUND=none (no-inbound) and cannot serve routed instance traffic
2026/10/24 23:07:24 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:24 provision: REFUSING to mint sidecar bot.eleven.bac.sidecar.internal: bot.eleven.bac.sidecar.internal-sidecar.env is staged on this box — the legacy file co-spawn and a native sidecar row are two mechanisms for one host; remove the file to migrate this host onto sidecar records
2026/10/24 23:07:24 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["run"])
2026/10/24 23:07:24 provision: acme.go.tito.io exists but is not the route this record describes (app "other"/"tito") — leaving it alone
2026/10/24 23:07:24 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:24 provision: claim install acme.go.tito.io: registry: claim row ownership changed or unknown
2026/10/24 23:07:24 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:24 provision: claim install acme.go.tito.io: registry: claim row ownership changed or unknown
2026/10/24 23:07:24 provision: bot.eleven.bac.sidecar.internal exists but is not a sidecar row this pass owns (kind "sidecar" provisioned false app "eleven" acct "bac") — leaving it alone
2026/10/24 23:07:24 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["run"])
2026/10/24 23:07:24 provision: claim install bot.eleven.bac.sidecar.internal: registry: claim row ownership changed or unknown
2026/10/24 23:07:24 provision: acme.go.tito.io exists but is not the route this record describes (app "other"/"tito") — leaving it alone
2026/10/24 23:07:24 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:24 provision: adopted existing route acme.go.tito.io (app "tito" acct "bac") — this record now owns its channel and environment
2026/10/24 23:07:24 provision: bot.eleven.bac.sidecar.internal exists but is not a sidecar row this pass owns (kind "sidecar" provisioned false app "eleven" acct "bac") — leaving it alone
2026/10/24 23:07:24 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:24 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:24 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:24 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/24 23:07:24 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:24 provision: skipping record apps/bac/tito/instances/acme.go.tito.io.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 23:07:24 provision: skipping record apps/bac/tito/instances/new.go.tito.io.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 23:07:24 provision: not removing acme.go.tito.io: its record exists but could not be read cleanly this pass
2026/10/24 23:07:24 provision: skipping record apps/bac/tito/instances/acme.go.tito.io.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 23:07:24 provision: skipping record apps/bac/tito/instances/new.go.tito.io.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 23:07:24 provision: minted instance route rd.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:24 provision: minted instance route rh.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:24 provision: minted instance route rl.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:24 provision: minted instance route ra.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:24 provision: minted instance route rb.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:24 provision: minted instance route re.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:24 provision: minted instance route rf.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:24 provision: minted instance route rg.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:24 provision: minted instance route ri.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:24 provision: minted instance route rj.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:24 provision: minted instance route rk.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:24 provision: minted instance route rc.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:24 provision: minted instance route ra.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:24 provision: minted instance route rb.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:24 provision: minted instance route rc.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:24 provision: minted instance route rd.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:25 provision: skipping record apps/bac/tito/instances/rb.go.tito.io.json: read failed: read refused
2026/10/24 23:07:25 provision: skipping record apps/bac/tito/instances/rb.go.tito.io.json: read failed: read refused
2026/10/24 23:07:25 provision: minted instance route re.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:25 provision: minted instance route x.appg.example (app "appg" acct "bac")
2026/10/24 23:07:25 provision: minted instance route x.appi.example (app "appi" acct "bac")
2026/10/24 23:07:25 provision: minted instance route x.appb.example (app "appb" acct "bac")
2026/10/24 23:07:25 provision: minted instance route x.apph.example (app "apph" acct "bac")
2026/10/24 23:07:25 provision: minted instance route x.appj.example (app "appj" acct "bac")
2026/10/24 23:07:25 provision: minted instance route x.appa.example (app "appa" acct "bac")
2026/10/24 23:07:25 provision: minted instance route x.appc.example (app "appc" acct "bac")
2026/10/24 23:07:25 provision: minted instance route x.appd.example (app "appd" acct "bac")
2026/10/24 23:07:25 provision: minted instance route x.appe.example (app "appe" acct "bac")
2026/10/24 23:07:25 provision: minted instance route x.appf.example (app "appf" acct "bac")
2026/10/24 23:07:25 provision: bac/tito is in the trash — not minting instance routes for it
2026/10/24 23:07:25 provision: minted instance route r0005.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:25 provision: minted instance route r0032.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:25 provision: minted instance route r0053.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:25 provision: minted instance route r0066.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:25 provision: minted instance route r0082.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:25 provision: minted instance route r0103.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:25 provision: minted instance route r0109.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:25 provision: minted instance route r0120.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:25 provision: minted instance route r0022.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:25 provision: minted instance route r0065.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:25 provision: minted instance route r0075.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:25 provision: minted instance route r0079.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:25 provision: minted instance route r0029.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:25 provision: minted instance route r0128.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:25 provision: minted instance route r0007.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:25 provision: minted instance route r0014.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:25 provision: minted instance route r0023.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:25 provision: minted instance route r0056.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:25 provision: minted instance route r0061.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:25 provision: minted instance route r0095.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:25 provision: minted instance route r0008.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:25 provision: minted instance route r0016.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:25 provision: minted instance route r0045.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:25 provision: minted instance route r0068.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:25 provision: minted instance route r0098.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:25 provision: minted instance route r0104.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:25 provision: minted instance route r0112.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:25 provision: minted instance route r0006.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:25 provision: minted instance route r0013.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:25 provision: minted instance route r0038.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:25 provision: minted instance route r0043.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:25 provision: minted instance route r0026.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:25 provision: minted instance route r0051.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:25 provision: minted instance route r0070.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:25 provision: minted instance route r0085.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:25 provision: minted instance route r0115.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:25 provision: minted instance route r0129.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:25 provision: minted instance route r0047.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:25 provision: minted instance route r0030.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:25 provision: minted instance route r0055.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:25 provision: minted instance route r0064.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:25 provision: minted instance route r0086.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:25 provision: minted instance route r0089.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:25 provision: minted instance route r0090.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:25 provision: minted instance route r0125.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:25 provision: minted instance route r0002.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:25 provision: minted instance route r0012.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:25 provision: minted instance route r0126.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:25 provision: minted instance route r0052.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:25 provision: minted instance route r0020.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:25 provision: minted instance route r0035.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:25 provision: minted instance route r0067.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:25 provision: minted instance route r0071.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:25 provision: minted instance route r0093.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:25 provision: minted instance route r0037.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:25 provision: minted instance route r0076.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:25 provision: minted instance route r0087.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:25 provision: minted instance route r0116.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:25 provision: minted instance route r0094.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:25 provision: minted instance route r0081.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:25 provision: minted instance route r0108.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:25 provision: minted instance route r0015.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:25 provision: minted instance route r0017.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:25 provision: minted instance route r0028.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:25 provision: minted instance route r0044.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:25 provision: minted instance route r0111.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:25 provision: minted instance route r0119.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:25 provision: minted instance route r0033.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:25 provision: minted instance route r0059.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:25 provision: minted instance route r0074.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:25 provision: minted instance route r0114.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:25 provision: minted instance route r0004.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:25 provision: minted instance route r0021.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:25 provision: minted instance route r0060.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:25 provision: minted instance route r0072.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:25 provision: minted instance route r0106.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:25 provision: minted instance route r0050.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:25 provision: minted instance route r0042.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:25 provision: minted instance route r0088.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:25 provision: minted instance route r0100.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:25 provision: minted instance route r0110.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:25 provision: minted instance route r0048.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:25 provision: minted instance route r0039.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:25 provision: minted instance route r0041.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:25 provision: minted instance route r0046.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:25 provision: minted instance route r0078.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:25 provision: minted instance route r0092.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:25 provision: minted instance route r0101.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:25 provision: minted instance route r0105.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:25 provision: minted instance route r0025.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:25 provision: minted instance route r0058.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:25 provision: minted instance route r0019.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:25 provision: minted instance route r0091.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:25 provision: minted instance route r0097.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:25 provision: minted instance route r0117.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:25 provision: minted instance route r0118.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:25 provision: minted instance route r0003.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:25 provision: minted instance route r0034.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:25 provision: minted instance route r0083.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:25 provision: minted instance route r0001.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:25 provision: minted instance route r0009.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:25 provision: minted instance route r0077.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:25 provision: minted instance route r0080.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:25 provision: minted instance route r0084.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:25 provision: minted instance route r0122.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:25 provision: minted instance route r0049.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:25 provision: minted instance route r0121.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:25 provision: minted instance route r0057.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:25 provision: minted instance route r0107.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:25 provision: minted instance route r0054.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:25 provision: minted instance route r0027.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:25 provision: minted instance route r0036.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:25 provision: minted instance route r0062.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:25 provision: minted instance route r0099.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:25 provision: minted instance route r0127.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:25 provision: minted instance route r0000.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:25 provision: minted instance route r0102.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:25 provision: minted instance route r0113.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:25 provision: minted instance route r0124.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:25 provision: minted instance route r0010.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:25 provision: minted instance route r0018.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:25 provision: minted instance route r0024.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:25 provision: minted instance route r0063.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:25 provision: minted instance route r0011.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:25 provision: minted instance route r0040.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:25 provision: minted instance route r0073.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:25 provision: minted instance route r0096.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:25 provision: minted instance route r0031.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:25 provision: minted instance route r0069.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:25 provision: minted instance route r0123.go.tito.io (app "tito" acct "bac")
--- FAIL: TestPlan9B8RecordWriteCensus (0.75s)
    plan9_b8_census_test.go:372: record-write census rejected 1 site(s); update the explicit inventory only after reviewing the source:
          changed site internal/release/rootfs_ship.go:establishShipKind: source differs from the reviewed digest
2026/10/24 23:07:26 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:26 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:26 provision: refusing to mint route acme.go.tito.io (app "tito" acct "bac"): this box declares CARLOS_INBOUND=none (no-inbound) and cannot serve routed instance traffic
2026/10/24 23:07:26 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:26 provision: minted instance route console.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:26 provision: minted service route ha.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:26 provision: minted static route site.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:26 provision: minted service route svc.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:26 provision: minted instance route whole.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:26 provision: minted instance route shared.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:26 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:26 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:26 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:26 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:26 provision: converged acme.go.tito.io channel stable -> edge
2026/10/24 23:07:26 provision: converged acme.go.tito.io channel edge -> canary/rehearsal
2026/10/24 23:07:26 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:26 provision: skipping record apps/bac/tito/instances/acme.go.tito.io.json: empty channel
2026/10/24 23:07:26 provision: not removing acme.go.tito.io: its record exists but could not be read cleanly this pass
2026/10/24 23:07:26 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:26 provision: converged acme.go.tito.io environment "" -> "staging"
2026/10/24 23:07:26 provision: converged acme.go.tito.io environment "staging" -> ""
2026/10/24 23:07:26 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:26 provision: converged acme.go.tito.io steering "" -> "latency"
2026/10/24 23:07:26 provision: converged acme.go.tito.io steering "latency" -> ""
2026/10/24 23:07:26 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:26 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:26 provision: converged acme.go.tito.io hibernate false -> true
2026/10/24 23:07:26 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:26 provision: converged acme.go.tito.io hibernate true -> false (replication "daily" cleared: only a hibernating route's rung is read)
2026/10/24 23:07:26 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:26 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:26 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:26 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:26 provision: converged acme.go.tito.io status-named false -> true
2026/10/24 23:07:26 provision: converged acme.go.tito.io status-named true -> false
2026/10/24 23:07:26 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:26 provision: minted service route ha.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:26 provision: converged ha.go.tito.io upstreams addr "" -> "", addrs "127.0.0.1:7001,127.0.0.1:7002" -> "127.0.0.1:7001,127.0.0.1:7003" (probe "{\"path\":\"/\",\"status\":200,\"interval_ms\":2000,\"fail_after\":3,\"rise_after\":2}" -> "{\"path\":\"/\",\"status\":200,\"interval_ms\":2000,\"fail_after\":3,\"rise_after\":2}")
2026/10/24 23:07:26 provision: converged ha.go.tito.io upstreams addr "" -> "", addrs "127.0.0.1:7001,127.0.0.1:7003" -> "127.0.0.1:7003,127.0.0.1:7001" (probe "{\"path\":\"/\",\"status\":200,\"interval_ms\":2000,\"fail_after\":3,\"rise_after\":2}" -> "{\"path\":\"/\",\"status\":200,\"interval_ms\":2000,\"fail_after\":3,\"rise_after\":2}")
2026/10/24 23:07:26 provision: converged ha.go.tito.io upstreams addr "" -> "", addrs "127.0.0.1:7003,127.0.0.1:7001" -> "127.0.0.1:7003,127.0.0.1:7001" (probe "{\"path\":\"/\",\"status\":200,\"interval_ms\":2000,\"fail_after\":3,\"rise_after\":2}" -> "{\"path\":\"/healthz\",\"status\":200,\"interval_ms\":2000,\"fail_after\":3,\"rise_after\":2}")
2026/10/24 23:07:26 provision: minted service route whole.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:26 provision: converged whole.go.tito.io upstreams addr "127.0.0.1:9443" -> "", addrs "" -> "127.0.0.1:9443,127.0.0.1:9444" (probe "" -> "{\"path\":\"/\",\"status\":200,\"interval_ms\":2000,\"fail_after\":3,\"rise_after\":2}")
2026/10/24 23:07:26 provision: converged whole.go.tito.io upstreams addr "" -> "", addrs "127.0.0.1:9443,127.0.0.1:9444" -> "" (probe "{\"path\":\"/\",\"status\":200,\"interval_ms\":2000,\"fail_after\":3,\"rise_after\":2}" -> "")
2026/10/24 23:07:26 provision: whole.go.tito.io: record describes a different route SHAPE than the row (kind "instance"/"service" unit ""/"" socket "/run/carlos/whole.go.tito.io.sock"/"" db "/data/whole.go.tito.io.db"/"") — not converged in place; `carlos remove whole.go.tito.io` purges this route's capability grants (registry.Delete's contract, not a bug) before the next pass re-mints it, so treat that as a last resort, not a routine fix
2026/10/24 23:07:26 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:26 provision: minted service route whole.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:26 provision: acme.go.tito.io exists but is not the route this record describes (app "other"/"tito") — leaving it alone
2026/10/24 23:07:26 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:26 provision: removed retired instance route acme.go.tito.io (record gone)
2026/10/24 23:07:26 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:26 provision: skipping accounts/bac/account.json: malformed account manifest: invalid character 'o' in literal null (expecting 'u')
2026/10/24 23:07:26 provision: removed retired instance route acme.go.tito.io (record gone)
2026/10/24 23:07:26 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:26 provision: manifest bac/tito: read failed: provision: manifest bac/tito: invalid character 'o' in literal null (expecting 'u')
2026/10/24 23:07:26 provision: skipping record apps/bac/tito/instances/acme.go.tito.io.json: disagrees with its own path (host="wrong-host.go.tito.io" account="bac" app="tito")
2026/10/24 23:07:26 provision: skipping record apps/bac/tito/instances/acme$evil.go.tito.io.json: host "acme$evil.go.tito.io" is not a hostname
2026/10/24 23:07:26 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:26 provision: skipping record apps/bac/tito/instances/acme$evil.go.tito.io.json: host "acme$evil.go.tito.io" is not a hostname
2026/10/24 23:07:26 provision: not removing acme$evil.go.tito.io: its record exists but could not be read cleanly this pass
2026/10/24 23:07:26 provision: skipping record apps/bac/tito/instances/bad-service.go.tito.io.json: invalid shape: kind service with no addr: the platform only proxies to a service, so the record must name the upstream it proxies to
2026/10/24 23:07:26 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:26 provision: skipping record apps/bac/tito/instances/bad-service.go.tito.io.json: invalid shape: kind service with no addr: the platform only proxies to a service, so the record must name the upstream it proxies to
2026/10/24 23:07:26 provision: not removing bad-service.go.tito.io: its record exists but could not be read cleanly this pass
2026/10/24 23:07:26 provision: skipping record apps/bac/tito/instances/no-channel.go.tito.io.json: empty channel
2026/10/24 23:07:26 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:26 provision: skipping record apps/bac/tito/instances/no-channel.go.tito.io.json: empty channel
2026/10/24 23:07:26 provision: not removing no-channel.go.tito.io: its record exists but could not be read cleanly this pass
2026/10/24 23:07:26 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:26 provision: skipping record apps/bac/tito/instances/acme.go.tito.io.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 23:07:26 provision: not removing acme.go.tito.io: its record exists but could not be read cleanly this pass
2026/10/24 23:07:26 provision: removed retired instance route ghost.go.tito.io (record gone)
2026/10/24 23:07:26 provision: duplicate host dup.go.tito.io: keeping apps/bac/tito/instances/dup.go.tito.io.json, skipping apps/bad/tito/instances/dup.go.tito.io.json
2026/10/24 23:07:26 provision: minted instance route dup.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:26 provision: bac/tito is in the trash — not minting instance routes for it
2026/10/24 23:07:26 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:26 provision: bac/tito is in the trash — not minting instance routes for it
2026/10/24 23:07:26 provision: removed retired instance route acme.go.tito.io (app in the trash)
2026/10/24 23:07:27 provision: minted static route site.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:27 provision: bac/tito is in the trash — not minting instance routes for it
2026/10/24 23:07:27 provision: removed retired static route site.go.tito.io (app in the trash)
2026/10/24 23:07:27 provision: trash marker for bac/tito unreadable: release: malformed trash marker for bac/tito: invalid character 'n' looking for beginning of object key string — not minting for this app
2026/10/24 23:07:27 provision: bac/tito is in the trash — not minting instance routes for it
2026/10/24 23:07:27 provision: removed retired instance route acme.go.tito.io (app in the trash)
2026/10/24 23:07:27 provision: bac/tito is in the trash — not minting instance routes for it
2026/10/24 23:07:27 provision: trash marker for bac/tito unreadable: release: malformed trash marker for bac/tito: invalid character 'n' looking for beginning of object key string — not minting for this app
2026/10/24 23:07:27 provision: adopted existing route acme.go.tito.io (app "tito" acct "bac") — this record now owns its channel and environment
2026/10/24 23:07:27 provision: converged acme.go.tito.io channel stable -> edge
2026/10/24 23:07:27 provision: adopted existing route acme.go.tito.io (app "tito" acct "bac") — this record now owns its channel and environment
2026/10/24 23:07:27 provision: converged acme.go.tito.io channel canary/rehearsal -> edge
2026/10/24 23:07:27 provision: converged acme.go.tito.io environment "staging" -> ""
2026/10/24 23:07:27 provision: acme.go.tito.io exists but is not the route this record describes (app "other"/"tito") — leaving it alone
2026/10/24 23:07:27 provision: acme.go.tito.io exists but is not the route this record describes (backing "unit" (box-scoped, not expressible in a record)) — leaving it alone
2026/10/24 23:07:27 provision: acme.go.tito.io exists but is not the route this record describes (tunnel "pi-fleet" (box-scoped, not expressible in a record)) — leaving it alone
2026/10/24 23:07:27 provision: acme.go.tito.io exists but is not the route this record describes (caps "port:25" (box-scoped, not expressible in a record)) — leaving it alone
2026/10/24 23:07:27 provision: acme.go.tito.io exists but is not the route this record describes (platform (owned by the domains reconcile pass)) — leaving it alone
2026/10/24 23:07:27 provision: acme.go.tito.io exists but is not the route this record describes (canary (owned by the domains reconcile pass)) — leaving it alone
2026/10/24 23:07:27 provision: acme.go.tito.io exists but is not the route this record describes (db "/data/other.db"/"/data/acme.go.tito.io.db") — leaving it alone
2026/10/24 23:07:27 provision: adopted existing route acme.go.tito.io (app "tito" acct "bac") — this record now owns its channel and environment
2026/10/24 23:07:27 provision: removed retired instance route acme.go.tito.io (record gone)
2026/10/24 23:07:27 provision: dry-run: would adopt existing route adopt.go.tito.io (app "tito" acct "bac") — this record would own its channel and environment
2026/10/24 23:07:27 provision: dry-run: would converge adopt.go.tito.io channel stable -> edge
2026/10/24 23:07:27 provision: dry-run: would converge adopt.go.tito.io environment "" -> "staging"
2026/10/24 23:07:27 provision: dry-run: would converge owned.go.tito.io channel stable -> edge
2026/10/24 23:07:27 provision: dry-run: would converge owned.go.tito.io environment "" -> "staging"
2026/10/24 23:07:27 provision: dry-run: would converge owned.go.tito.io hibernate false -> true
2026/10/24 23:07:27 provision: dry-run: would converge owned.go.tito.io seed
2026/10/24 23:07:27 provision: dry-run: would mint instance route acme.go.tito.io (app "tito" acct "bac" channel "stable")
2026/10/24 23:07:27 provision: dry-run: would remove retired instance route gone.go.tito.io (record gone)
2026/10/24 23:07:27 provision: adopted existing route adopt.go.tito.io (app "tito" acct "bac") — this record now owns its channel and environment
2026/10/24 23:07:27 provision: converged adopt.go.tito.io channel stable -> edge
2026/10/24 23:07:27 provision: converged adopt.go.tito.io environment "" -> "staging"
2026/10/24 23:07:27 provision: converged owned.go.tito.io channel stable -> edge
2026/10/24 23:07:27 provision: converged owned.go.tito.io environment "" -> "staging"
2026/10/24 23:07:27 provision: converged owned.go.tito.io hibernate false -> true
2026/10/24 23:07:27 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:27 provision: removed retired instance route gone.go.tito.io (record gone)
2026/10/24 23:07:27 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:27 provision: adopted existing route story.carlosframework.com (app "story" acct "bad") — this record now owns its channel and environment
2026/10/24 23:07:27 provision: story.carlosframework.com exists but is not the route this record describes (kind "instance"/"static") — leaving it alone
2026/10/24 23:07:27 provision: minted static route site.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:27 provision: minted service route pub.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:27 provision: minted service route pubs.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:27 provision: minted instance route unit.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:27 provision: minted instance route exec.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:27 provision: minted service route loop.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:27 provision: minted service route named.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:27 provision: minted service route priv.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:27 provision: minted static route site.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:27 provision: minted static route pisite.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:27 provision: minted static route site.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:27 provision: removed retired static route site.go.tito.io (record gone)
2026/10/24 23:07:27 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:27 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:27 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:27 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:27 provision: minted instance route acme-uk.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:27 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:27 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:27 provision: converged acme.go.tito.io replicas "ie,uk" -> "uk"
2026/10/24 23:07:27 provision: converged acme.go.tito.io replicas "uk" -> ""
2026/10/24 23:07:27 provision: minted instance route acme-uk.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:27 provision: converged acme-uk.go.tito.io replica mark true -> false
2026/10/24 23:07:27 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:27 provision: minted instance route router.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:27 provision: acme.go.tito.io: row is on the nested layout (db "/data/instances/acme.go.tito.io/acme.go.tito.io.db" socket "/run/carlos/instances/acme.go.tito.io/app.sock"); the record's shared paths are not drift
2026/10/24 23:07:27 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:27 provision: minted instance route router.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:27 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:27 provision: minted instance route router.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:27 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:27 provision: minted instance route router.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:27 provision: acme.go.tito.io: not minting this pass: the box's layout intent could not be read: store down
2026/10/24 23:07:27 provision: router.go.tito.io: not minting this pass: the box's layout intent could not be read: store down
2026/10/24 23:07:27 provision: adopted existing route acme.go.tito.io (app "tito" acct "bac") — this record now owns its channel and environment
2026/10/24 23:07:27 provision: converged acme.go.tito.io channel stable -> edge
2026/10/24 23:07:27 provision: minted instance route acme.go.tito.io held landing by mv_acme (app "tito" acct "bac")
2026/10/24 23:07:27 provision: not removing acme.go.tito.io (record gone): participant of a running operation
2026/10/24 23:07:27 provision: removed retired instance route acme.go.tito.io (record gone)
2026/10/24 23:07:27 provision: minted instance route acme.go.tito.io held landing by mv_acme (app "tito" acct "bac")
2026/10/24 23:07:27 provision: refusing to mint held route acme.go.tito.io (app "tito" acct "bac"): this box declares CARLOS_INBOUND=none (no-inbound) and cannot serve routed instance traffic
2026/10/24 23:07:27 provision: held acme.go.tito.io landing by mv_acme (was ready)
2026/10/24 23:07:27 provision: acme.go.tito.io: held restoring by rb_other, not by mv_acme; leaving it
2026/10/24 23:07:27 provision: acme.go.tito.io: the row is not this pass's (app "other" acct ""); not holding it for mv_acme
2026/10/24 23:07:27 provision: acme.go.tito.io exists but is not the route this record describes (app "other"/"tito") — leaving it alone
2026/10/24 23:07:27 provision: dry-run: would mint instance route acme.go.tito.io held landing by mv_acme (app "tito" acct "bac" channel "stable")
2026/10/24 23:07:27 provision: acme.go.tito.io: not held landing by mv_acme: the row's hold changed under this pass; the next pass judges it afresh
2026/10/24 23:07:27 provision: held acme.go.tito.io landing by mv_acme (was ready)
2026/10/24 23:07:28 provision: minted instance route acme.example.com (app "shop" acct "bac")
2026/10/24 23:07:28 provision: minted instance route plain.example.com (app "shop" acct "bac")
2026/10/24 23:07:28 provision: skipping record apps/bac/shop/instances/garbled.shop.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 23:07:28 provision: skipping record apps/bac/shop/instances/liar.shop.example.com.json: disagrees with its own path (host="other.shop.example.com" account="bac" app="shop")
2026/10/24 23:07:28 provision: skipping record apps/bac/shop/instances/garbled.shop.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 23:07:28 provision: skipping record apps/bac/shop/instances/liar.shop.example.com.json: disagrees with its own path (host="other.shop.example.com" account="bac" app="shop")
2026/10/24 23:07:28 provision: skipping record apps/bac/shop/instances/garbled.shop.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 23:07:28 provision: skipping record apps/bac/shop/instances/liar.shop.example.com.json: disagrees with its own path (host="other.shop.example.com" account="bac" app="shop")
2026/10/24 23:07:28 provision: skipping record apps/bac/shop/instances/garbled.shop.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 23:07:28 provision: listing apps/bac/shop/instances/: list refused — its records are unseen this pass
2026/10/24 23:07:28 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 23:07:28 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:28 provision: removed retired instance route acme.go.tito.io (record gone)
2026/10/24 23:07:28 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:28 provision: bac/tito is in the trash — not minting instance routes for it
2026/10/24 23:07:28 provision: minted sidecar route bot.shop.bac.sidecar.internal (app "shop" acct "bac" args ["run"])
2026/10/24 23:07:28 provision: removed retired sidecar route bot.shop.bac.sidecar.internal (record gone)
2026/10/24 23:07:28 provision: minted sidecar route bot.shop.bum.sidecar.internal (app "shop" acct "bum" args ["run"])
2026/10/24 23:07:28 provision: minted sidecar route bot.shop.bum.sidecar.internal (app "shop" acct "bum" args ["run"])
2026/10/24 23:07:28 provision: sidecar bot.shop.bum.sidecar.internal is not placeable here: it asks for "no-inbound" placement and this box accepts inbound work (CARLOS_INBOUND="")
2026/10/24 23:07:28 provision: sidecar bot.shop.bum.sidecar.internal is not placeable here: it asks for "no-inbound" placement and this box accepts inbound work (CARLOS_INBOUND="")
2026/10/24 23:07:28 provision: sidecar bot.shop.bum.sidecar.internal is not placeable here: it asks for "no-inbound" placement and this box accepts inbound work (CARLOS_INBOUND="")
2026/10/24 23:07:28 provision: removed retired sidecar route bot.shop.bum.sidecar.internal (record gone)
2026/10/24 23:07:28 provision: sidecar bot.shop.bum.sidecar.internal is not placeable here: it asks for "no-inbound" placement and this box accepts inbound work (CARLOS_INBOUND="")
2026/10/24 23:07:28 provision: removed retired sidecar route bot.shop.bum.sidecar.internal (record gone)
2026/10/24 23:07:29 provision: a.shop.example.com: swapped for import sd_aigesvqz74aumyqxcwvwas3gye (the original route is journaled)
2026/10/24 23:07:29 provision: a.shop.example.com: import sd_aigesvqz74aumyqxcwvwas3gye committed: its gate is cleared and its journal row dropped
2026/10/24 23:07:29 provision: a.shop.example.com: row is on the nested layout (db "/data/instances/a.shop.example.com/a.shop.example.com.db" socket "/run/carlos/instances/a.shop.example.com/app.sock"); the record's shared paths are not drift
2026/10/24 23:07:29 provision: a.shop.example.com: import sd_lg74niypp327wjwzbc77n6fute rolled back to its original route
2026/10/24 23:07:29 provision: a.shop.example.com: import sd_lg74niypp327wjwzbc77n6fute: the host's replica is left alone: the record apps/bac/shop/instances/a.shop.example.com.json holds the host
2026/10/24 23:07:29 provision: a.shop.example.com: import sd_lg74niypp327wjwzbc77n6fute is cleaned up and its journal row retired
2026/10/24 23:07:29 provision: a.shop.example.com: import sd_7afbmt3hbfbeptk35qmjutyybm rolled back to its original route
2026/10/24 23:07:29 provision: a.shop.example.com: import sd_7afbmt3hbfbeptk35qmjutyybm: the host's replica is left alone: the record apps/bac/shop/instances/a.shop.example.com.json holds the host
2026/10/24 23:07:29 provision: a.shop.example.com: import sd_7afbmt3hbfbeptk35qmjutyybm is cleaned up and its journal row retired
2026/10/24 23:07:29 provision: dry-run: would redo a.shop.example.com's swap record CAS for import sd_7unyn67qeyi5hrkkbcoxat5j7i
2026/10/24 23:07:29 provision: dry-run: would clear a.shop.example.com's import gate
2026/10/24 23:07:29 provision: dry-run: would converge a.shop.example.com seed source
2026/10/24 23:07:29 provision: a.shop.example.com: row is on the nested layout (db "/data/instances/a.shop.example.com/a.shop.example.com.db" socket "/run/carlos/instances/a.shop.example.com/app.sock"); the record's shared paths are not drift
2026/10/24 23:07:29 provision: a.shop.example.com: the import's record apps/bac/shop/instances/a.shop.example.com.json is not one this pass can use (connection reset)
2026/10/24 23:07:29 provision: a.shop.example.com: the import's record apps/bac/shop/instances/a.shop.example.com.json is not one this pass can use (provision: invalid maintenance projection or protected fields)
2026/10/24 23:07:29 provision: a.shop.example.com: the import's record apps/bac/shop/instances/a.shop.example.com.json is not one this pass can use (the record under apps/bac/shop/instances/a.shop.example.com.json is apps/bac/shop/instances/b.shop.example.com.json's)
2026/10/24 23:07:29 provision: a.shop.example.com: import sd_zdi5wbnu4xxi5zeyi6chj5wl64 cannot roll back on this box: the activator is not wired; it stays journaled and gated
2026/10/24 23:07:29 provision: a.shop.example.com: import sd_urypcoydilyroapqtkjsbu3sk4 cannot roll back on this box: the activator is not wired; it stays journaled and gated
2026/10/24 23:07:29 provision: a.shop.example.com: import sd_7iupbri5kagsqxkp5hgf5guaf4 is journaled, but this box cannot act on imports; its row is left alone
2026/10/24 23:07:29 provision: a.shop.example.com: import sd_cnomdaamussa4lmr7woabdapgy is journaled, but this box cannot act on imports; its row is left alone
2026/10/24 23:07:29 provision: a.shop.example.com: import sd_b3nen3e7nvdw364jb6e6zhmwza is journaled, but this box cannot act on imports; its row is left alone
2026/10/24 23:07:29 provision: the import journal could not be read: registry: import journal a.shop.example.com: original row: unexpected end of JSON input (no import is acted on and no route is removed this pass)
2026/10/24 23:07:29 provision: b.shop.example.com: import sd_w3bfolawlt4uezgyk6sdyrha4u left alone this pass: the import journal could not be read
2026/10/24 23:07:29 provision: c.shop.example.com: import sd_kiezqxdh6mu2qelti4btshq2zy left alone this pass: the import journal could not be read
2026/10/24 23:07:29 provision: a.shop.example.com: import sd_cxdygayw2irnmhwdmuk33hrggu committed: its gate is cleared and its journal row dropped
2026/10/24 23:07:29 provision: a.shop.example.com: not converging import sd_23tmlep3smwa4eerki5a4wdm2q: it is swapped but not committed, and the row on this box has no import gate
2026/10/24 23:07:29 provision: a.shop.example.com: not converging import sd_mctxkjmdjjdgkeefm35ljnuxzu: it is swapped but not committed, and the row on this box has no import gate
2026/10/24 23:07:29 provision: a.shop.example.com: not converging import sd_vb3msntfbw5vexh37ut65mzvg4: it is placed but not committed, and the row on this box has no import gate
2026/10/24 23:07:29 provision: a.shop.example.com: not converging import sd_fcvesotf2rkht7o3shgj5gbfpq: it is placed but not committed, and the row on this box has no import gate
2026/10/24 23:07:29 provision: a.shop.example.com: row is on the nested layout (db "/data/instances/a.shop.example.com/a.shop.example.com.db" socket "/run/carlos/instances/a.shop.example.com/app.sock"); the record's shared paths are not drift
2026/10/24 23:07:29 provision: converge seed source on a.shop.example.com: constraint failed: seed_source is read-only here (1811)
2026/10/24 23:07:29 provision: a.shop.example.com: row is on the nested layout (db "/data/instances/a.shop.example.com/a.shop.example.com.db" socket "/run/carlos/instances/a.shop.example.com/app.sock"); the record's shared paths are not drift
2026/10/24 23:07:29 provision: a.shop.example.com: import sd_mhnbphnwg5y6jkfakxs6r3ugpa committed: its gate is cleared and its journal row dropped
2026/10/24 23:07:29 provision: a.shop.example.com: row is on the nested layout (db "/data/instances/a.shop.example.com/a.shop.example.com.db" socket "/run/carlos/instances/a.shop.example.com/app.sock"); the record's shared paths are not drift
2026/10/24 23:07:29 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:29 provision: acme.go.tito.io: row is on the nested layout (db "/data/instances/acme.go.tito.io/acme.go.tito.io.db" socket "/run/carlos/instances/acme.go.tito.io/app.sock"); the record's shared paths are not drift
2026/10/24 23:07:29 provision: acme.go.tito.io: not minting a seeded instance: this box does not mint nested (<nil>)
2026/10/24 23:07:29 provision: acme.go.tito.io: not minting a seeded instance: claim control is on for this box
2026/10/24 23:07:30 provision: acme.go.tito.io: aborted seed sd_byqoyaavisz2ahfoeb65mmkyiq: this box cannot read seed markers, and places no seed; nothing local is removed
2026/10/24 23:07:30 provision: acme.go.tito.io: aborted seed sd_byqoyaavisz2ahfoeb65mmkyiq rolled back (no box had swapped it)
2026/10/24 23:07:30 provision: acme.go.tito.io: not minting a seeded instance: its record does not describe a hibernating instance
2026/10/24 23:07:30 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:30 provision: removed instance route acme.go.tito.io (its seed sd_7y4zowgpzqs3zipkxaqbamo66e was aborted); the next pass rolls it back
2026/10/24 23:07:30 provision: acme.go.tito.io: aborted seed sd_7y4zowgpzqs3zipkxaqbamo66e: this box cannot read seed markers, and places no seed; nothing local is removed
2026/10/24 23:07:30 provision: acme.go.tito.io: aborted seed sd_7y4zowgpzqs3zipkxaqbamo66e rolled back (no box had swapped it)
2026/10/24 23:07:30 provision: acme.go.tito.io: aborted seed sd_gjigtmqvi5vh46k6lztb25s5fa has a row this pass may not remove; leaving the seed aborted
2026/10/24 23:07:30 provision: acme.go.tito.io: aborted seed sd_nzahbk3g3vdeeyokgzd62nx76u rolled back (no box had swapped it)
2026/10/24 23:07:30 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:30 provision: removed instance route acme.go.tito.io (its seed sd_bljvvzgd2ahlkpx5enz7xwwlau was aborted); the next pass rolls it back
2026/10/24 23:07:30 provision: acme.go.tito.io: aborted seed sd_bljvvzgd2ahlkpx5enz7xwwlau has no route on this box: its local data is removed
2026/10/24 23:07:30 provision: acme.go.tito.io: aborted seed sd_bljvvzgd2ahlkpx5enz7xwwlau rolled back (no box had swapped it)
2026/10/24 23:07:30 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:30 provision: a.shop.example.com: swapped for import sd_mazjdjp2almhjqhdjhi5rgjvd4 (the original route is journaled)
2026/10/24 23:07:30 provision: a.shop.example.com: import sd_mazjdjp2almhjqhdjhi5rgjvd4 rolled back to its original route
2026/10/24 23:07:30 provision: a.shop.example.com: import sd_mazjdjp2almhjqhdjhi5rgjvd4 is cleaned up and its journal row retired
2026/10/24 23:07:30 provision: a.shop.example.com: swapped for import sd_axwshtkk25q3nzfhsatcy3pxz4 (the original route is journaled)
2026/10/24 23:07:30 provision: a.shop.example.com: import sd_axwshtkk25q3nzfhsatcy3pxz4 rolled back to its original route
2026/10/24 23:07:30 provision: a.shop.example.com: import sd_axwshtkk25q3nzfhsatcy3pxz4 is cleaned up and its journal row retired
2026/10/24 23:07:30 provision: a.shop.example.com: swapped for import sd_fvyflwlylvt2xpytatqkm46bay (the original route is journaled)
2026/10/24 23:07:30 provision: a.shop.example.com: import sd_fvyflwlylvt2xpytatqkm46bay rolled back to its original route
2026/10/24 23:07:30 provision: a.shop.example.com: import sd_fvyflwlylvt2xpytatqkm46bay: the host's replica is left alone: its record no longer names this seed
2026/10/24 23:07:30 provision: a.shop.example.com: import sd_fvyflwlylvt2xpytatqkm46bay is cleaned up and its journal row retired
2026/10/24 23:07:30 provision: a.shop.example.com: swapped for import sd_e2o5jvsrydxqqbxdqlmvce2t6i (the original route is journaled)
2026/10/24 23:07:30 provision: a.shop.example.com: import sd_e2o5jvsrydxqqbxdqlmvce2t6i rollback deferred: the host is not fenced and stopped yet (<nil>)
2026/10/24 23:07:30 provision: a.shop.example.com: import sd_e2o5jvsrydxqqbxdqlmvce2t6i rolled back to its original route
2026/10/24 23:07:30 provision: a.shop.example.com: import sd_e2o5jvsrydxqqbxdqlmvce2t6i is cleaned up and its journal row retired
2026/10/24 23:07:30 provision: a.shop.example.com: swapped for import sd_bnkifdmki4lgzxia5qkocw5doq (the original route is journaled)
2026/10/24 23:07:30 provision: a.shop.example.com: import sd_bnkifdmki4lgzxia5qkocw5doq rollback deferred: the host is not fenced and stopped yet (stop unproven)
2026/10/24 23:07:30 provision: a.shop.example.com: swapped for import sd_srikdvea45bmfj5wxpidb7upne (the original route is journaled)
2026/10/24 23:07:30 provision: a.shop.example.com: import sd_srikdvea45bmfj5wxpidb7upne is cleaned up and its journal row retired
2026/10/24 23:07:30 provision: a.shop.example.com: swapped for import sd_5om5xlzltswkltbzvuv2up4uqu (the original route is journaled)
2026/10/24 23:07:30 provision: skipping record apps/bac/shop/instances/a.shop.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 23:07:30 provision: a.shop.example.com: import sd_5om5xlzltswkltbzvuv2up4uqu left alone this pass: its record could not be read
2026/10/24 23:07:30 provision: a.shop.example.com: swapped for import sd_bsvcjc5b5wsr4wr6spuxpv5h2m (the original route is journaled)
2026/10/24 23:07:30 provision: skipping record apps/bac/shop/instances/a.shop.example.com.json: read failed: connection reset
2026/10/24 23:07:30 provision: a.shop.example.com: import sd_bsvcjc5b5wsr4wr6spuxpv5h2m left alone this pass: its record could not be read
2026/10/24 23:07:30 provision: a.shop.example.com: swapped for import sd_ah5nucyzn7osut7h3fex3yxg2q (the original route is journaled)
2026/10/24 23:07:30 provision: a.shop.example.com: import sd_ah5nucyzn7osut7h3fex3yxg2q: close the import gate: constraint failed: injected (1811)
2026/10/24 23:07:30 provision: a.shop.example.com: import sd_ah5nucyzn7osut7h3fex3yxg2q rolled back to its original route
2026/10/24 23:07:30 provision: a.shop.example.com: import sd_ah5nucyzn7osut7h3fex3yxg2q is cleaned up and its journal row retired
2026/10/24 23:07:30 provision: a.shop.example.com: swapped for import sd_5u6pv5m2zl4q5rcghj3tppue4q (the original route is journaled)
2026/10/24 23:07:30 provision: a.shop.example.com: import sd_5u6pv5m2zl4q5rcghj3tppue4q: close the import gate: constraint failed: injected (1811)
2026/10/24 23:07:30 provision: a.shop.example.com: import sd_5u6pv5m2zl4q5rcghj3tppue4q rolled back to its original route
2026/10/24 23:07:30 provision: a.shop.example.com: import sd_5u6pv5m2zl4q5rcghj3tppue4q is cleaned up and its journal row retired
2026/10/24 23:07:30 provision: a.shop.example.com: swapped for import sd_vf24bt3eshbipkpuewv55ob3jm (the original route is journaled)
2026/10/24 23:07:30 provision: a.shop.example.com: import sd_vf24bt3eshbipkpuewv55ob3jm rollback deferred: the host is not fenced and stopped yet (injected failure at fence)
2026/10/24 23:07:30 provision: a.shop.example.com: import sd_vf24bt3eshbipkpuewv55ob3jm rolled back to its original route
2026/10/24 23:07:30 provision: a.shop.example.com: import sd_vf24bt3eshbipkpuewv55ob3jm is cleaned up and its journal row retired
2026/10/24 23:07:30 provision: a.shop.example.com: swapped for import sd_zlebdclq42fai6wqfdewa7fg2m (the original route is journaled)
2026/10/24 23:07:30 provision: a.shop.example.com: import sd_zlebdclq42fai6wqfdewa7fg2m rolled back to its original route
2026/10/24 23:07:30 provision: a.shop.example.com: import sd_zlebdclq42fai6wqfdewa7fg2m is cleaned up and its journal row retired
2026/10/24 23:07:30 provision: a.shop.example.com: swapped for import sd_he7p72a7gtl7ijqwqt6c4lr4qi (the original route is journaled)
2026/10/24 23:07:30 provision: a.shop.example.com: import sd_he7p72a7gtl7ijqwqt6c4lr4qi: retire its instance key: injected failure at retire-key
2026/10/24 23:07:30 provision: a.shop.example.com: import sd_he7p72a7gtl7ijqwqt6c4lr4qi rolled back to its original route
2026/10/24 23:07:30 provision: a.shop.example.com: import sd_he7p72a7gtl7ijqwqt6c4lr4qi is cleaned up and its journal row retired
2026/10/24 23:07:30 provision: a.shop.example.com: swapped for import sd_rrofwqykbrdcfgdilywpeanx3q (the original route is journaled)
2026/10/24 23:07:30 provision: a.shop.example.com: import sd_rrofwqykbrdcfgdilywpeanx3q rolled back to its original route
2026/10/24 23:07:30 provision: a.shop.example.com: import sd_rrofwqykbrdcfgdilywpeanx3q is cleaned up and its journal row retired
2026/10/24 23:07:30 provision: a.shop.example.com: swapped for import sd_gdhhl4ifbwtfqw2nszystv4bqu (the original route is journaled)
2026/10/24 23:07:30 provision: a.shop.example.com: import sd_gdhhl4ifbwtfqw2nszystv4bqu: remove its local data: injected failure at remove-local
2026/10/24 23:07:30 provision: a.shop.example.com: import sd_gdhhl4ifbwtfqw2nszystv4bqu rolled back to its original route
2026/10/24 23:07:30 provision: a.shop.example.com: import sd_gdhhl4ifbwtfqw2nszystv4bqu is cleaned up and its journal row retired
2026/10/24 23:07:30 provision: a.shop.example.com: swapped for import sd_tlqc3fg72liivdlm6pdoigcsfu (the original route is journaled)
2026/10/24 23:07:30 provision: a.shop.example.com: import sd_tlqc3fg72liivdlm6pdoigcsfu rolled back to its original route
2026/10/24 23:07:30 provision: a.shop.example.com: import sd_tlqc3fg72liivdlm6pdoigcsfu is cleaned up and its journal row retired
2026/10/24 23:07:30 provision: a.shop.example.com: swapped for import sd_6imvt53vtnw35ecqwjiz5ye45e (the original route is journaled)
2026/10/24 23:07:30 provision: a.shop.example.com: import sd_6imvt53vtnw35ecqwjiz5ye45e: remove its local data: injected failure at remove-local-done
2026/10/24 23:07:30 provision: a.shop.example.com: import sd_6imvt53vtnw35ecqwjiz5ye45e rolled back to its original route
2026/10/24 23:07:30 provision: a.shop.example.com: import sd_6imvt53vtnw35ecqwjiz5ye45e is cleaned up and its journal row retired
2026/10/24 23:07:30 provision: a.shop.example.com: swapped for import sd_4vubrrufi5vqwz3nhoiyort6h4 (the original route is journaled)
2026/10/24 23:07:30 provision: a.shop.example.com: import sd_4vubrrufi5vqwz3nhoiyort6h4 rolled back to its original route
2026/10/24 23:07:30 provision: a.shop.example.com: import sd_4vubrrufi5vqwz3nhoiyort6h4 is cleaned up and its journal row retired
2026/10/24 23:07:30 provision: a.shop.example.com: swapped for import sd_pmwzum3sqog42mxym6a6rnnske (the original route is journaled)
2026/10/24 23:07:30 provision: a.shop.example.com: import sd_pmwzum3sqog42mxym6a6rnnske: restore the original route: constraint failed: injected (1811)
2026/10/24 23:07:30 provision: a.shop.example.com: import sd_pmwzum3sqog42mxym6a6rnnske rolled back to its original route
2026/10/24 23:07:30 provision: a.shop.example.com: import sd_pmwzum3sqog42mxym6a6rnnske is cleaned up and its journal row retired
2026/10/24 23:07:30 provision: a.shop.example.com: swapped for import sd_gefpj5ilidvz2ubtnrychcpuii (the original route is journaled)
2026/10/24 23:07:30 provision: a.shop.example.com: import sd_gefpj5ilidvz2ubtnrychcpuii: restore the original route: constraint failed: injected (1811)
2026/10/24 23:07:30 provision: a.shop.example.com: import sd_gefpj5ilidvz2ubtnrychcpuii rolled back to its original route
2026/10/24 23:07:30 provision: a.shop.example.com: import sd_gefpj5ilidvz2ubtnrychcpuii is cleaned up and its journal row retired
2026/10/24 23:07:30 provision: a.shop.example.com: swapped for import sd_cneggnbmsqn4y5ukzpdlatlvt4 (the original route is journaled)
2026/10/24 23:07:30 provision: a.shop.example.com: import sd_cneggnbmsqn4y5ukzpdlatlvt4 is cleaned up and its journal row retired
2026/10/24 23:07:30 provision: a.shop.example.com: swapped for import sd_pmpnpm7rgulhst77h4glpumuem (the original route is journaled)
2026/10/24 23:07:30 provision: a.shop.example.com: import sd_pmpnpm7rgulhst77h4glpumuem rolled back to its original route
2026/10/24 23:07:30 provision: a.shop.example.com: import sd_pmpnpm7rgulhst77h4glpumuem: delete its snapshot: injected failure at delete-snapshot
2026/10/24 23:07:30 provision: a.shop.example.com: import sd_pmpnpm7rgulhst77h4glpumuem is cleaned up and its journal row retired
2026/10/24 23:07:30 provision: a.shop.example.com: swapped for import sd_eobiskrie3uqx7bgouaazplskm (the original route is journaled)
2026/10/24 23:07:30 provision: a.shop.example.com: import sd_eobiskrie3uqx7bgouaazplskm rolled back to its original route
2026/10/24 23:07:30 provision: a.shop.example.com: import sd_eobiskrie3uqx7bgouaazplskm is cleaned up and its journal row retired
2026/10/24 23:07:30 provision: a.shop.example.com: swapped for import sd_xogacdnetu52vrfxwqkmxwnrly (the original route is journaled)
2026/10/24 23:07:30 provision: a.shop.example.com: import sd_xogacdnetu52vrfxwqkmxwnrly rolled back to its original route
2026/10/24 23:07:30 provision: a.shop.example.com: import sd_xogacdnetu52vrfxwqkmxwnrly: delete the host's replica: injected failure at delete-replica
2026/10/24 23:07:30 provision: a.shop.example.com: import sd_xogacdnetu52vrfxwqkmxwnrly is cleaned up and its journal row retired
2026/10/24 23:07:30 provision: a.shop.example.com: swapped for import sd_hirmnlz45jvsenhgyhdgjyb2mq (the original route is journaled)
2026/10/24 23:07:30 provision: a.shop.example.com: import sd_hirmnlz45jvsenhgyhdgjyb2mq rolled back to its original route
2026/10/24 23:07:30 provision: a.shop.example.com: import sd_hirmnlz45jvsenhgyhdgjyb2mq is cleaned up and its journal row retired
2026/10/24 23:07:30 provision: a.shop.example.com: swapped for import sd_pobgvqdvmupnhzrpm7ukbc5jeu (the original route is journaled)
2026/10/24 23:07:30 provision: a.shop.example.com: import sd_pobgvqdvmupnhzrpm7ukbc5jeu rolled back to its original route
2026/10/24 23:07:30 provision: a.shop.example.com: import sd_pobgvqdvmupnhzrpm7ukbc5jeu: retire its journal row: constraint failed: injected (1811)
2026/10/24 23:07:30 provision: a.shop.example.com: import sd_pobgvqdvmupnhzrpm7ukbc5jeu is cleaned up and its journal row retired
2026/10/24 23:07:30 provision: a.shop.example.com: swapped for import sd_zwepwi6jpksmb3x3yooafhoj7e (the original route is journaled)
2026/10/24 23:07:30 provision: a.shop.example.com: import sd_zwepwi6jpksmb3x3yooafhoj7e rolled back to its original route
2026/10/24 23:07:30 provision: a.shop.example.com: import sd_zwepwi6jpksmb3x3yooafhoj7e: retire its journal row: constraint failed: injected (1811)
2026/10/24 23:07:30 provision: a.shop.example.com: import sd_zwepwi6jpksmb3x3yooafhoj7e is cleaned up and its journal row retired
2026/10/24 23:07:30 provision: a.shop.example.com: swapped for import sd_kwuwwq2dw6xokp6ihppi5avciu (the original route is journaled)
2026/10/24 23:07:30 provision: a.shop.example.com: import sd_kwuwwq2dw6xokp6ihppi5avciu rolled back to its original route
2026/10/24 23:07:30 provision: a.shop.example.com: import sd_kwuwwq2dw6xokp6ihppi5avciu is cleaned up and its journal row retired
2026/10/24 23:07:30 provision: a.shop.example.com: mark import sd_kwuwwq2dw6xokp6ihppi5avciu rolled back: injected failure at cas
2026/10/24 23:07:30 provision: a.shop.example.com: aborted seed sd_kwuwwq2dw6xokp6ihppi5avciu rolled back (no box had swapped it)
2026/10/24 23:07:30 provision: a.shop.example.com: swapped for import sd_az6rpyvs23fe2cwtn5g55gf42i (the original route is journaled)
2026/10/24 23:07:30 provision: a.shop.example.com: import sd_az6rpyvs23fe2cwtn5g55gf42i rolled back to its original route
2026/10/24 23:07:30 provision: a.shop.example.com: import sd_az6rpyvs23fe2cwtn5g55gf42i is cleaned up and its journal row retired
2026/10/24 23:07:30 provision: a.shop.example.com: aborted seed sd_az6rpyvs23fe2cwtn5g55gf42i rolled back (no box had swapped it)
2026/10/24 23:07:30 provision: a.shop.example.com: swapped for import sd_cl7umf4xhfq5ifisn5njouvoji (the original route is journaled)
2026/10/24 23:07:30 provision: a.shop.example.com: import sd_cl7umf4xhfq5ifisn5njouvoji rollback deferred: the host is not fenced and stopped yet (<nil>)
2026/10/24 23:07:30 provision: a.shop.example.com: import sd_cl7umf4xhfq5ifisn5njouvoji rollback deferred: the host is not fenced and stopped yet (<nil>)
2026/10/24 23:07:30 provision: a.shop.example.com: import sd_cl7umf4xhfq5ifisn5njouvoji rolled back to its original route
2026/10/24 23:07:30 provision: a.shop.example.com: import sd_cl7umf4xhfq5ifisn5njouvoji is cleaned up and its journal row retired
2026/10/24 23:07:30 provision: a.shop.example.com: swapped for import sd_mpiwy5zxunhyvceuhdbmn52tka (the original route is journaled)
2026/10/24 23:07:30 provision: a.shop.example.com: import sd_mpiwy5zxunhyvceuhdbmn52tka rolled back to its original route
2026/10/24 23:07:30 provision: a.shop.example.com: import sd_mpiwy5zxunhyvceuhdbmn52tka is cleaned up and its journal row retired
2026/10/24 23:07:30 provision: a.shop.example.com: swapped for import sd_xhnk3nq2pfpjb2qcnnwkhpsnsq (the original route is journaled)
2026/10/24 23:07:30 provision: a.shop.example.com: import sd_xhnk3nq2pfpjb2qcnnwkhpsnsq rolled back to its original route
2026/10/24 23:07:30 provision: a.shop.example.com: import sd_xhnk3nq2pfpjb2qcnnwkhpsnsq is cleaned up and its journal row retired
2026/10/24 23:07:30 provision: minted instance route a.shop.example.com (app "shop" acct "bac")
2026/10/24 23:07:30 provision: a.shop.example.com: swapped for import sd_gp63jsqwikdzdldtcbnl5vbbce (the original route is journaled)
2026/10/24 23:07:30 provision: a.shop.example.com: import sd_gp63jsqwikdzdldtcbnl5vbbce rolled back to its original route
2026/10/24 23:07:30 provision: a.shop.example.com: import sd_gp63jsqwikdzdldtcbnl5vbbce is cleaned up and its journal row retired
2026/10/24 23:07:30 provision: minted instance route a.shop.example.com (app "shop" acct "bac")
2026/10/24 23:07:30 provision: a.shop.example.com: swapped for import sd_kkzqeovaypjphcburpmyhjmmcm (the original route is journaled)
2026/10/24 23:07:30 provision: a.shop.example.com: import sd_kkzqeovaypjphcburpmyhjmmcm rolled back to its original route
2026/10/24 23:07:30 provision: a.shop.example.com: import sd_kkzqeovaypjphcburpmyhjmmcm is cleaned up and its journal row retired
2026/10/24 23:07:30 provision: minted instance route a.shop.example.com (app "shop" acct "bac")
2026/10/24 23:07:30 provision: a.shop.example.com: swapped for import sd_a5vdtiziywhb5gya7lehszdwmu (the original route is journaled)
2026/10/24 23:07:30 provision: a.shop.example.com: import sd_a5vdtiziywhb5gya7lehszdwmu rolled back to its original route
2026/10/24 23:07:30 provision: a.shop.example.com: import sd_a5vdtiziywhb5gya7lehszdwmu is cleaned up and its journal row retired
2026/10/24 23:07:30 provision: minted instance route a.shop.example.com (app "other" acct "bac")
2026/10/24 23:07:30 provision: a.shop.example.com: swapped for import sd_n4wskcbyiukxkc6ighma7wj24i (the original route is journaled)
2026/10/24 23:07:30 provision: a.shop.example.com: import sd_n4wskcbyiukxkc6ighma7wj24i rolled back to its original route
2026/10/24 23:07:30 provision: a.shop.example.com: import sd_n4wskcbyiukxkc6ighma7wj24i is cleaned up and its journal row retired
2026/10/24 23:07:30 provision: minted instance route a.shop.example.com (app "other" acct "bac")
2026/10/24 23:07:30 provision: a.shop.example.com: swapped for import sd_ed452ktdgeomdb5i7vt2ln4cte (the original route is journaled)
2026/10/24 23:07:30 provision: a.shop.example.com: import sd_ed452ktdgeomdb5i7vt2ln4cte rolled back to its original route
2026/10/24 23:07:30 provision: a.shop.example.com: import sd_ed452ktdgeomdb5i7vt2ln4cte is cleaned up and its journal row retired
2026/10/24 23:07:30 provision: minted instance route a.shop.example.com (app "other" acct "bac")
2026/10/24 23:07:31 provision: a.shop.example.com: swapped for import sd_rufqp3ajrs2f3ve6v5ealq7t2a (the original route is journaled)
2026/10/24 23:07:31 provision: a.shop.example.com: import sd_rufqp3ajrs2f3ve6v5ealq7t2a has no route on this box: its local data is removed and no route is put back
2026/10/24 23:07:31 provision: a.shop.example.com: import sd_rufqp3ajrs2f3ve6v5ealq7t2a is cleaned up and its journal row retired
2026/10/24 23:07:31 provision: a.shop.example.com: swapped for import sd_oim4mr75xpqdxg33w3jhusdh4u (the original route is journaled)
2026/10/24 23:07:31 provision: a.shop.example.com: swapped for import sd_qtrweutu4opxcmz6ayo5crv3oy (the original route is journaled)
2026/10/24 23:07:31 provision: a.shop.example.com: swapped for import sd_dqfffd4pf2iqqaa2hl2iilq3eq (the original route is journaled)
2026/10/24 23:07:31 provision: a.shop.example.com: import sd_dqfffd4pf2iqqaa2hl2iilq3eq cannot roll back on this box: the activator is not wired; it stays journaled and gated
2026/10/24 23:07:31 provision: a.shop.example.com: swapped for import sd_grsmcaz4bbawthdya3y6zohn7i (the original route is journaled)
2026/10/24 23:07:31 provision: a.shop.example.com: import sd_grsmcaz4bbawthdya3y6zohn7i is not rolled back: the route changed under the fence, so nothing there is touched
2026/10/24 23:07:31 provision: a.shop.example.com: import "../not-a-seed" names no snapshot and no replica; only its journal row is cleaned up
2026/10/24 23:07:31 provision: a.shop.example.com: import ../not-a-seed is cleaned up and its journal row retired
2026/10/24 23:07:31 provision: a.shop.example.com: swapped for import sd_qj5oinamyx6ahs3kg7y2hbippe (the original route is journaled)
2026/10/24 23:07:31 provision: a.shop.example.com: swapped for import sd_vxkndmkghy63trvmkq2yzrum7a (the original route is journaled)
2026/10/24 23:07:31 provision: a.shop.example.com: swapped for import sd_vfb7jv4kvjng4i2c3lpiocwtiu (the original route is journaled)
2026/10/24 23:07:31 provision: a.shop.example.com: swapped for import sd_h2uz5s4664kab272n4luonfgfq (the original route is journaled)
2026/10/24 23:07:31 provision: a.shop.example.com: swapped for import sd_qpsgpujlyglnzevtcjbzm4xssm (the original route is journaled)
2026/10/24 23:07:31 provision: a.shop.example.com: import sd_qpsgpujlyglnzevtcjbzm4xssm rollback deferred: the host is not fenced and stopped yet (stop evidence unreadable)
2026/10/24 23:07:31 provision: a.shop.example.com: swapped for import sd_dlvopaj26bq7pt6fz34rutbywy (the original route is journaled)
2026/10/24 23:07:31 provision: a.shop.example.com: import sd_dlvopaj26bq7pt6fz34rutbywy has no route on this box: its local data is removed and no route is put back
2026/10/24 23:07:31 provision: a.shop.example.com: import sd_dlvopaj26bq7pt6fz34rutbywy is cleaned up and its journal row retired
2026/10/24 23:07:31 provision: minted instance route a.shop.example.com (app "shop" acct "bac")
2026/10/24 23:07:31 provision: a.shop.example.com: swapped for import sd_5rfupyucumnuff5q56j5dfk7cm (the original route is journaled)
2026/10/24 23:07:31 provision: a.shop.example.com: import sd_5rfupyucumnuff5q56j5dfk7cm: remove its local data: injected failure at remove-local
2026/10/24 23:07:31 provision: a.shop.example.com: import sd_5rfupyucumnuff5q56j5dfk7cm is not rolled back: the route at the host is not the import's, so nothing there is touched
2026/10/24 23:07:31 provision: a.shop.example.com: swapped for import sd_bcpfe4yasybxwh6tgfcjjnsgtq (the original route is journaled)
2026/10/24 23:07:31 provision: a.shop.example.com: import sd_bcpfe4yasybxwh6tgfcjjnsgtq: a route appeared at the host, so its local database is left and the rollback waits
2026/10/24 23:07:31 provision: a.shop.example.com: swapped for import sd_evotj4fx6ncfa4l2a77mxtiv4q (the original route is journaled)
2026/10/24 23:07:31 provision: a.shop.example.com: import sd_evotj4fx6ncfa4l2a77mxtiv4q rollback deferred: no fence generation: registry busy
2026/10/24 23:07:31 provision: a.shop.example.com: swapped for import sd_fbxhpywqc3nj4uxerkqovu7lyu (the original route is journaled)
2026/10/24 23:07:31 provision: a.shop.example.com: import sd_fbxhpywqc3nj4uxerkqovu7lyu rollback deferred: no fence generation: the generation source answered 0
2026/10/24 23:07:31 provision: a.shop.example.com: swapped for import sd_rqs2kcm6pfkeng7a2op4hxbhqq (the original route is journaled)
2026/10/24 23:07:31 provision: a.shop.example.com: swapped for import sd_v7e72amnyvxoqzye3uhl2sphr4 (the original route is journaled)
2026/10/24 23:07:31 provision: a.shop.example.com: swapped for import sd_zhgon3zvxdkbegnplprv6qrhcu (the original route is journaled)
2026/10/24 23:07:31 provision: a.shop.example.com: import deferred: this box cannot read the instance's env file
2026/10/24 23:07:31 provision: a.shop.example.com: import deferred: the instance's env file could not be read: a symlink
2026/10/24 23:07:31 provision: a.shop.example.com: swapped for import sd_whb5zvazu2lovsq6rlv4tu2xba (the original route is journaled)
2026/10/24 23:07:31 provision: a.shop.example.com: import sd_whb5zvazu2lovsq6rlv4tu2xba rolled back to its original route
2026/10/24 23:07:31 provision: a.shop.example.com: import sd_whb5zvazu2lovsq6rlv4tu2xba is cleaned up and its journal row retired
2026/10/24 23:07:31 provision: a.shop.example.com: swapped for import sd_ofik6erggrt4qn4ceubocyvtp4 (the original route is journaled)
2026/10/24 23:07:31 provision: a.shop.example.com: import sd_ofik6erggrt4qn4ceubocyvtp4 rolled back to its original route
2026/10/24 23:07:31 provision: a.shop.example.com: import sd_ofik6erggrt4qn4ceubocyvtp4 is cleaned up and its journal row retired
2026/10/24 23:07:31 provision: a.shop.example.com: swapped for import sd_gmwvo6p7q3xmuhp7l5rx2wn3lm (the original route is journaled)
2026/10/24 23:07:31 provision: a.shop.example.com: import sd_gmwvo6p7q3xmuhp7l5rx2wn3lm rolled back to its original route
2026/10/24 23:07:31 provision: a.shop.example.com: import sd_gmwvo6p7q3xmuhp7l5rx2wn3lm is cleaned up and its journal row retired
2026/10/24 23:07:31 provision: a.shop.example.com: swapped for import sd_goou2pkvzf7tt27k4f56fqtwyi (the original route is journaled)
2026/10/24 23:07:31 provision: a.shop.example.com: import sd_goou2pkvzf7tt27k4f56fqtwyi: retire its instance key: the env file is a symlink
2026/10/24 23:07:31 provision: a.shop.example.com: import sd_goou2pkvzf7tt27k4f56fqtwyi rolled back to its original route
2026/10/24 23:07:31 provision: a.shop.example.com: import sd_goou2pkvzf7tt27k4f56fqtwyi is cleaned up and its journal row retired
2026/10/24 23:07:31 provision: a.shop.example.com: swapped for import sd_gu5se3ahohbczm3hb2bnhi7ou4 (the original route is journaled)
2026/10/24 23:07:31 provision: a.shop.example.com: row is on the nested layout (db "/data/instances/a.shop.example.com/a.shop.example.com.db" socket "/run/carlos/instances/a.shop.example.com/app.sock"); the record's shared paths are not drift
2026/10/24 23:07:31 provision: a.shop.example.com: swapped for import sd_ottphgisbkjtxg7jwbmcevgpga (the original route is journaled)
2026/10/24 23:07:31 provision: a.shop.example.com: import sd_uptdvxfehsnx2slsvvsbcvb6qm refused: there is no route at a.shop.example.com to replace
2026/10/24 23:07:31 provision: a.shop.example.com: import sd_quzmpdunolwl2levmzzsq3ykpm refused: the route's address is 127.0.0.1:9, not 127.0.0.1:8401
2026/10/24 23:07:31 provision: a.shop.example.com: import sd_45czn7f56bebwdqtraamldzume refused: the route's address is 127.0.0.1:8401,127.0.0.1:8402, not 127.0.0.1:8401
2026/10/24 23:07:31 provision: a.shop.example.com: import sd_dfebljinoyhwr4c6d5egx3m7fi refused: the route's address is 127.0.0.1:9, not 127.0.0.1:8401
2026/10/24 23:07:31 provision: a.shop.example.com: import sd_3lctfl3r4bnp2r67qojzs3z4uq refused: the route belongs to app other
2026/10/24 23:07:31 provision: a.shop.example.com: import sd_232gf2toeor2hg6xot4lwyckqe refused: the route is filed under another account
2026/10/24 23:07:31 provision: a.shop.example.com: import sd_fnclbwp4udp7nxjnc62l74kk5i refused: the route is filed under the operator account, and no assignment maps shop to this app
2026/10/24 23:07:31 provision: a.shop.example.com: import sd_ramgcsjqhqxis2lfjz7tqfntzu refused: the route is filed under the operator account, and no assignment maps shop to this app
2026/10/24 23:07:31 provision: a.shop.example.com: import sd_zfaddzx2nzxsffi2nrnapk6bfu refused: the route is filed under the operator account, and no assignment maps shop to this app
2026/10/24 23:07:31 provision: a.shop.example.com: import sd_4n5wdhfqykzzsdwkds3ttqfkhi refused: the route is filed under the operator account, and no assignment maps shop to this app
2026/10/24 23:07:31 provision: a.shop.example.com: import sd_byirqciye56iko7nehiws5k3py refused: the route is not an address route this import can take over (socket)
2026/10/24 23:07:31 provision: a.shop.example.com: import sd_6g64u4eabpctvwovfanrw7lswe refused: the route is not an address route this import can take over (no address)
2026/10/24 23:07:31 provision: a.shop.example.com: import sd_bixzcjr2cz3ltbrxou2oquigxi refused: the route is not an address route this import can take over (provisioned)
2026/10/24 23:07:31 provision: a.shop.example.com: import sd_nvxecwzqesvczkimnlbiok6dei refused: the route is not an address route this import can take over (kind static)
2026/10/24 23:07:31 provision: a.shop.example.com: import sd_cmsal6p4flfkp7lp2il6vrzflu refused: the route is not an address route this import can take over (backing)
2026/10/24 23:07:31 provision: a.shop.example.com: import sd_tdn32gmx32umoiz3wl6d4aotaq refused: the route is not an address route this import can take over (tunnel)
2026/10/24 23:07:31 provision: a.shop.example.com: import sd_ho5xopjnfs7bgzhqilmbdegl4e refused: the route is not an address route this import can take over (caps)
2026/10/24 23:07:31 provision: a.shop.example.com: import sd_bhr2mpt5an5cy7vj76zyyvwtzu refused: the route is not an address route this import can take over (platform)
2026/10/24 23:07:31 provision: a.shop.example.com: import sd_otl4b2gwuwqjsabfl32ffqv7hu refused: the route is not an address route this import can take over (canary)
2026/10/24 23:07:31 provision: a.shop.example.com: import sd_3dywgjyrlqjo4ny7l3ewpsjaly refused: the route is not an address route this import can take over (kind sidecar)
2026/10/24 23:07:31 provision: a.shop.example.com: import sd_hvwuifkj3xxvnsmkfm3gb6iin4 refused: the route is not an address route this import can take over (region)
2026/10/24 23:07:31 provision: a.shop.example.com: import sd_skvdja2j2e4lou2lzn3oirw44i refused: the route is not an address route this import can take over (fleet_box)
2026/10/24 23:07:31 provision: a.shop.example.com: import sd_mvcv2fguxv2liuqj4nwbkxrp6y refused: the route is not an address route this import can take over (hibernate)
2026/10/24 23:07:31 provision: a.shop.example.com: import sd_v2eowb7cdomasntu6o6ffblt6u refused: the route is not an address route this import can take over (claim_owner)
2026/10/24 23:07:31 provision: a.shop.example.com: import sd_yh6sbvk5ldma4jtk3rvasnw5ry refused: this box does not run instances nested
2026/10/24 23:07:31 provision: a.shop.example.com: import sd_lur6tmsn7jqc4kq3xqdy2nh6tq refused: this box does not run instances nested
2026/10/24 23:07:31 provision: a.shop.example.com: import sd_kmdjgfhdaixbljzxkvqahgq7z4 refused: claim control is on for this box
2026/10/24 23:07:31 provision: a.shop.example.com: swapped for import sd_gr3hjlwtnyixhnskuzx7guln3i (the original route is journaled)
2026/10/24 23:07:31 provision: a.shop.example.com: swapped for import sd_nuklncteganscugnn4hau5naq4 (the original route is journaled)
2026/10/24 23:07:31 provision: a.shop.example.com: import deferred: the legacy route assignments could not be read: store down
2026/10/24 23:07:31 provision: a.shop.example.com: import deferred: this box cannot read the legacy route assignments
2026/10/24 23:07:31 provision: a.shop.example.com: not swapping for import sd_lkranfcu52fe2o6v7mimxzsyde: its verify hash is not a sha256
2026/10/24 23:07:31 provision: a.shop.example.com: not swapping for import sd_n2p2yn6dorfunpv7kzwibzhdiy: its verify hash is not a sha256
2026/10/24 23:07:31 provision: a.shop.example.com: not swapping for import sd_o3yzyobj7u4catso2fbhgfjrpm: its verify hash is not a sha256
2026/10/24 23:07:31 provision: a.shop.example.com: not swapping for import sd_../../x: its host or seed id is malformed (seeds: not a seed id)
2026/10/24 23:07:32 provision: A.shop.example.com/..: not swapping for import sd_zj4hymucxpbaaypxbrwirmq6xe: its host or seed id is malformed (seeds: not a host)
2026/10/24 23:07:32 provision: a.shop.example.com: not swapping for import sd_nxgplx4dvad6kzk2yu5aunqor4: its record does not describe a nested, hibernating instance
2026/10/24 23:07:32 provision: a.shop.example.com: not swapping for import sd_mvawexty2aka4v2lw3pu37k4di: its record does not describe a nested, hibernating instance
2026/10/24 23:07:32 provision: a.shop.example.com: not swapping for import sd_22masy5eta2d2x4jqxbwlrsljm: its record does not describe a nested, hibernating instance
2026/10/24 23:07:32 provision: a.shop.example.com: not swapping for import sd_l5wbfr252iw7f3gpmeeu5zyu4a: its record does not describe a nested, hibernating instance
2026/10/24 23:07:32 provision: a.shop.example.com: import deferred: the box's layout intent could not be read: store down
2026/10/24 23:07:32 provision: a.shop.example.com: swapped for import sd_gmm7e42ebvoxbygr4u35wnahba (the original route is journaled)
2026/10/24 23:07:32 provision: a.shop.example.com: import deferred: the box's nested probe did not answer: ready probe timed out
2026/10/24 23:07:32 provision: a.shop.example.com: swapped for import sd_zvibfaqin63zzbqz3rxa7m6opa (the original route is journaled)
2026/10/24 23:07:32 provision: a.shop.example.com: swapped for import sd_pf7oqvo3kg6zad6p5kesikrh44 (the original route is journaled)
2026/10/24 23:07:32 provision: a.shop.example.com: import deferred: the route is held by operation op_1
2026/10/24 23:07:32 provision: dry-run: would consider swapping a.shop.example.com for import sd_pigwgby3dni74w2n7g2d2kzhnm
2026/10/24 23:07:32 provision: a.shop.example.com: import sd_w6xpsidg2cv2sy7druxbs67qum rolled back to its original route
2026/10/24 23:07:32 provision: a.shop.example.com: import sd_w6xpsidg2cv2sy7druxbs67qum: the host's replica is left alone: the record apps/bac/shop/instances/a.shop.example.com.json holds the host
2026/10/24 23:07:32 provision: a.shop.example.com: import sd_w6xpsidg2cv2sy7druxbs67qum is cleaned up and its journal row retired
2026/10/24 23:07:32 provision: a.shop.example.com: import sd_2xv5hmlnccjiujnjr4miybxqqa left alone: the import journal holds seed sd_yg6vbgbcy5363cqjgb6abjhnh4 at swapped
2026/10/24 23:07:32 provision: a.shop.example.com: not minting import sd_3a7en6wtf76zltseqcbvrtl5ne: it is swapped but not committed, and only its swap makes its row
2026/10/24 23:07:32 provision: a.shop.example.com: not minting import sd_q5oijvwjbmnzd3xtnl2ltgsscy: it is placed but not committed, and only its swap makes its row
2026/10/24 23:07:32 provision: a.shop.example.com: swapped for import sd_7i4hnwuux5oodiht3stauil7y4 (the original route is journaled)
2026/10/24 23:07:32 provision: a.shop.example.com: not minting import sd_7i4hnwuux5oodiht3stauil7y4: it is swapped but not committed, and only its swap makes its row
2026/10/24 23:07:32 provision: a.shop.example.com: not minting import sd_7i4hnwuux5oodiht3stauil7y4: it is placed but not committed, and only its swap makes its row
2026/10/24 23:07:32 provision: minted instance route a.shop.example.com (app "shop" acct "bac")
2026/10/24 23:07:32 provision: removed retired sidecar route gone.eleven.bac.sidecar.internal (record gone)
2026/10/24 23:07:32 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/24 23:07:32 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/24 23:07:32 provision: converged sidecar bot.eleven.bac.sidecar.internal args ["sidecar","run"] -> ["worker","run"]
2026/10/24 23:07:32 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/24 23:07:32 provision: converged sidecar bot.eleven.bac.sidecar.internal ceilings 300/3600 -> 60/120
2026/10/24 23:07:32 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/24 23:07:32 provision: converged sidecar bot.eleven.bac.sidecar.internal channel stable -> canary/eleven
2026/10/24 23:07:32 provision: converged sidecar bot.eleven.bac.sidecar.internal environment "other" -> "relay"
2026/10/24 23:07:32 provision: converged sidecar bot.eleven.bac.sidecar.internal hibernate true -> false
2026/10/24 23:07:32 provision: skipping sidecar record apps/bac/eleven/sidecars/bot.json: read failed: failStore: reads disabled under apps/bac/eleven/sidecars/
2026/10/24 23:07:32 provision: skipping sidecar record apps/bac/eleven/sidecars/bot.json: malformed: invalid character 'n' looking for beginning of object key string
2026/10/24 23:07:32 provision: not removing sidecar bot.eleven.bac.sidecar.internal: its record exists but could not be read cleanly this pass
2026/10/24 23:07:32 provision: skipping sidecar record apps/bac/eleven/sidecars/bot.json: empty channel
2026/10/24 23:07:32 provision: skipping sidecar record apps/bac/eleven/sidecars/held.json: empty channel
2026/10/24 23:07:32 provision: not removing sidecar held.eleven.bac.sidecar.internal: its record exists but could not be read cleanly this pass
2026/10/24 23:07:32 provision: removed retired sidecar route old.eleven.bac.sidecar.internal (record gone)
2026/10/24 23:07:32 provision: bac/eleven has sidecar records but no sidecars manifest — not minting
2026/10/24 23:07:32 provision: bac/eleven is in the trash — not minting sidecar routes for it
2026/10/24 23:07:32 provision: sidecar bot.eleven.bac.sidecar.internal is not placeable here: it asks for "no-inbound" placement and this box accepts inbound work (CARLOS_INBOUND="")
2026/10/24 23:07:32 provision: sidecar hub.relay.bac.sidecar.internal is not placeable here: it asks for "no-inbound" placement and this box accepts inbound work (CARLOS_INBOUND="")
2026/10/24 23:07:32 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/24 23:07:32 provision: minted sidecar route hub.relay.bac.sidecar.internal (app "relay" acct "bac" args ["relay"])
2026/10/24 23:07:32 provision: sidecar bot.eleven.bac.sidecar.internal is not placeable here: it asks for "no-inbound" placement and this box accepts inbound work (CARLOS_INBOUND="")
2026/10/24 23:07:32 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/24 23:07:32 provision: sidecar bot.eleven.bac.sidecar.internal is not placeable here: it asks for "no-inbound" placement and this box accepts inbound work (CARLOS_INBOUND="")
2026/10/24 23:07:32 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/24 23:07:32 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/24 23:07:32 provision: sidecar bot.eleven.bac.sidecar.internal is not placeable here: it asks for "no-inbound" placement and this box accepts inbound work (CARLOS_INBOUND="")
2026/10/24 23:07:32 provision: removed retired sidecar route bot.eleven.bac.sidecar.internal (record gone)
2026/10/24 23:07:32 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/24 23:07:32 provision: sidecar bot.eleven.bac.sidecar.internal is not placeable here: it asks for "no-inbound" placement and this box accepts inbound work (CARLOS_INBOUND="")
2026/10/24 23:07:32 provision: skipping sidecar record apps/bac/relay/sidecars/hub.json: read failed: failStore: reads disabled under apps/bac/relay/sidecars/
2026/10/24 23:07:32 provision: REFUSING to mint sidecar bot.eleven.bac.sidecar.internal: bot.eleven.bac.sidecar.internal-sidecar.env is staged on this box — the legacy file co-spawn and a native sidecar row are two mechanisms for one host; remove the file to migrate this host onto sidecar records
2026/10/24 23:07:32 provision: minted sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" args ["sidecar","run"])
2026/10/24 23:07:32 provision: dry-run: would mint sidecar route bot.eleven.bac.sidecar.internal (app "eleven" acct "bac" channel "stable" args ["sidecar","run"])
2026/10/24 23:07:32 provision: dry-run: would remove retired sidecar route gone.eleven.bac.sidecar.internal (record gone)
2026/10/24 23:07:32 provision: bot.eleven.bac.sidecar.internal exists but is not a sidecar row this pass owns (kind "sidecar" provisioned false app "eleven" acct "bac") — leaving it alone
2026/10/24 23:07:32 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:32 provision: converged acme.go.tito.io update settings "{\"updates\":\"manual\",\"channel\":\"stable\"}" -> ""
2026/10/24 23:07:32 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:32 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:32 provision: manifest bac/tito: read failed: provision: manifest bac/tito: unexpected end of JSON input
2026/10/24 23:07:32 provision: manifest bac/tito: read failed: provision: manifest bac/tito: unexpected end of JSON input
2026/10/24 23:07:32 provision: acme.go.tito.io: not minted this pass: the app's update policy could not be read
2026/10/24 23:07:32 provision: minted instance route acme.go.tito.io (app "tito" acct "bac")
2026/10/24 23:07:32 provision: manifest bac/tito: read failed: provision: manifest bac/tito: unexpected end of JSON input
2026/10/24 23:07:32 provision: acme.go.tito.io: not minted this pass: the app's update policy could not be read
2026/10/24 23:07:32 provision: minted instance route acme.go.tito.io held landing by mv_acme (app "tito" acct "bac")
2026/10/24 23:07:32 provision: listing apps/bqd/: listdirs refused — its records are unseen this pass
2026/10/24 23:07:32 provision: listing apps/bqd/: listdirs refused — its records are unseen this pass
2026/10/24 23:07:32 provision: record view: change index unusable (release: change index unreadable: store has no conditional read: unsupported operation): the walk records no generations
2026/10/24 23:07:32 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 23:07:32 provision: listing apps/bqd/: listdirs refused — its records are unseen this pass
2026/10/24 23:07:32 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 23:07:32 provision: listing apps/bqd/: listdirs refused — its records are unseen this pass
2026/10/24 23:07:32 provision: listing apps/bqd/: listdirs refused — its records are unseen this pass
2026/10/24 23:07:32 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 23:07:32 provision: record view: change index unusable (release: change index malformed: invalid character 'n' looking for beginning of object key string): walking
2026/10/24 23:07:32 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 23:07:32 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 23:07:32 provision: record view: re-reading apps/bqc/shop failed: retrying on the next refresh
2026/10/24 23:07:32 provision: listing apps/bqc/shop/instances/: list refused — its records are unseen this pass
2026/10/24 23:07:32 provision: listing apps/bqc/shop/instances/: list refused — its records are unseen this pass
2026/10/24 23:07:32 provision: an app's records could not be listed: they are skipped
2026/10/24 23:07:32 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 23:07:32 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 23:07:32 provision: record view: re-reading apps/bqc/shop failed: retrying on the next refresh
2026/10/24 23:07:32 provision: listing apps/bqc/shop/instances/: context canceled — its records are unseen this pass
2026/10/24 23:07:32 provision: record view: change index unusable (get refused): walking
2026/10/24 23:07:32 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 23:07:32 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 23:07:32 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 23:07:32 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 23:07:32 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 23:07:32 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 23:07:32 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 23:07:32 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 23:07:32 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 23:07:32 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 23:07:32 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 23:07:32 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 23:07:32 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 23:07:32 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 23:07:32 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 23:07:32 provision: skipping accounts/bqd/account.json: malformed account manifest: invalid character 'n' looking for beginning of object key string
2026/10/24 23:07:32 provision: skipping accounts/bqd/account.json: malformed account manifest: invalid character 'n' looking for beginning of object key string
2026/10/24 23:07:32 provision: skipping accounts/bqd/account.json: malformed account manifest: invalid character 'n' looking for beginning of object key string
2026/10/24 23:07:32 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 23:07:32 provision: record view: re-reading accounts/bqd failed: retrying on the next refresh
2026/10/24 23:07:32 provision: skipping accounts/bqd/account.json: read failed: list refused
2026/10/24 23:07:32 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 23:07:32 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 23:07:32 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 23:07:32 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 23:07:32 provision: minted instance route one.example.com (app "shop" acct "bum")
2026/10/24 23:07:32 provision: minted instance route one.example.com (app "shop" acct "bum")
2026/10/24 23:07:32 provision: minted instance route one.example.com (app "shop" acct "bum")
2026/10/24 23:07:32 provision: skipping record apps/bum/shop/instances/one.example.com.json: empty channel
2026/10/24 23:07:32 provision: not removing one.example.com: its record exists but could not be read cleanly this pass
2026/10/24 23:07:32 provision: skipping record apps/bum/shop/instances/one.example.com.json: empty channel
2026/10/24 23:07:32 provision: removed retired instance route one.example.com (record gone)
2026/10/24 23:07:32 provision: not removing one.example.com: its record exists but could not be read cleanly this pass
2026/10/24 23:07:32 provision: removed retired instance route one.example.com (record gone)
2026/10/24 23:07:32 provision: record view: change index unusable (context deadline exceeded): walking
2026/10/24 23:07:32 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
2026/10/24 23:07:32 provision: record view: change index unusable (context deadline exceeded): the walk records no generations
2026/10/24 23:07:32 provision: skipping record apps/bqe/store/instances/bad.store.example.com.json: malformed: provision: invalid maintenance projection or protected fields
--- FAIL: TestPlan14RootReadCensus (14.85s)
    plan14_root_reads_test.go:600: root read census: 52 discrepancies
        changed root read cli.go:runShip; review class, task, sites and digest
        changed root read cli.go:runShipAPI; review class, task, sites and digest
        changed root read internal/console/apicli.go:Server.handleAPIShip; review class, task, sites and digest
        changed root read internal/hostops/mutation_boundary_putfrom.go:conditionalRecordStore.PutFrom; review class, task, sites and digest
        changed root read internal/hostops/mutation_boundary_putfrom.go:mutationBoundary.PutFrom; review class, task, sites and digest
        changed root source envelope .
        changed root source envelope internal/console
        changed root source envelope internal/hostops
        changed root source envelope internal/release
        changed root source envelope internal/rootfsimage
        unclassified root read cli.go:shipNoteText file:ReadFile@223
        unclassified root read internal/console/apiship_rootfs.go:shipBody.Read file:Read@19,file:Read@398
        unclassified root read internal/console/apiship_rootfs.go:spoolRootfsPart file:OpenFile@114
        unclassified root read internal/release/rootfs.go:type Process file:Command@23
        unclassified root read internal/release/rootfs.go:validateProcess file:Command@242,file:Command@61,file:Command@80
        unclassified root read internal/release/rootfs_ship.go:hashSpooledFile file:Open@70
        unclassified root read internal/release/rootfs_ship.go:putImmutableFrom file:Open@106
        unclassified root read internal/rootfsimage/archive.go:OpenArchive file:Open@226,file:Stat@73
        unclassified root read internal/rootfsimage/dir.go:readDir file:EvalSymlinks@123,file:Readlink@1719,file:Stat@193,file:WalkDir@757
        unclassified root read internal/rootfsimage/errors.go:CommandError.Error file:Command@237
        unclassified root read internal/rootfsimage/errors.go:type CommandError file:Command@35
        unclassified root read internal/rootfsimage/flatten.go:boundedReader.Read file:Read@205,file:Read@24
        unclassified root read internal/rootfsimage/framework.go:FillConsole file:Command@897
        unclassified root read internal/rootfsimage/oci.go:OpenLayout file:OpenRoot@66
        unclassified root read internal/rootfsimage/oci.go:layoutStore.has file:Stat@57
        unclassified root read internal/rootfsimage/oci.go:layoutStore.open file:Open@345,file:Stat@116,file:Stat@449
        unclassified root read internal/rootfsimage/oci.go:ociReader.readBlob file:ReadAll@161
        unclassified root read internal/rootfsimage/oci.go:readFile file:ReadAll@279
        unclassified root read internal/rootfsimage/oci.go:verifier.Read file:Read@102,file:Read@19
        unclassified root read internal/rootfsimage/processes.go:ApplyImageConfig file:Command@549,file:Command@574
        unclassified root read internal/rootfsimage/processes.go:ResolveCommands file:Command@171,file:Command@230,file:Command@239
        unclassified root read internal/rootfsimage/processes.go:jitOf file:Command@56
        unclassified root read internal/rootfsimage/processes.go:shebangRuntime file:Open@60
        unclassified root read internal/rootfsimage/progarch.go:Tree.head file:Open@60
        unclassified root read internal/rootfsimage/squashfs.go:treeFS.Lstat file:Lstat@16,file:Stat@65
        unclassified root read internal/rootfsimage/squashfs.go:treeFS.Open file:Open@16,file:ReadFile@204
        unclassified root read internal/rootfsimage/squashfs.go:treeFS.ReadDir file:ReadDir@16
        unclassified root read internal/rootfsimage/squashfs.go:treeFS.ReadFile file:Open@139,file:Read@461,file:ReadFile@16
        unclassified root read internal/rootfsimage/squashfs.go:treeFS.Stat file:Stat@16
        unclassified root read internal/rootfsimage/squashfs.go:treeFile.Read file:Read@19
        unclassified root read internal/rootfsimage/squashfs.go:treeFile.Stat file:Stat@19
        unclassified root read internal/rootfsimage/squashfs.go:writeSquashfs file:Stat@1987
        unclassified root read internal/rootfsimage/tree.go:Open file:Open@5,file:Stat@154,file:Stat@58
        unclassified root read internal/rootfsimage/tree.go:Tree.Open file:Open@15,file:Open@165
        unclassified root read internal/rootfsimage/tree.go:Tree.writeBlob file:OpenFile@285
        unclassified root read ship_rootfs.go:buildRootfs file:Command@1120,file:Open@258,file:OpenFile@1483
        unclassified root read ship_rootfs.go:readProcessesFile file:ReadFile@87
        changed legacy declaration cli.go:runShip
        changed legacy declaration cli.go:runShipAPI
        changed legacy declaration internal/console/apicli.go:Server.handleAPIShip
        changed legacy declaration internal/hostops/mutation_boundary_putfrom.go:conditionalRecordStore.PutFrom
        changed legacy declaration internal/hostops/mutation_boundary_putfrom.go:mutationBoundary.PutFrom
        
        make census-card shows what changed; make census-propose NAME=<branch> CLAIMS=<file> writes the overlay and its approval card (AGENTS.md, The census)
FAIL
FAIL	github.com/carlosframework/platform/internal/provision	23.492s
ok  	github.com/carlosframework/platform/internal/publicrelease	0.010s
?   	github.com/carlosframework/platform/internal/regionname	[no test files]
ok  	github.com/carlosframework/platform/internal/registry	5.637s
ok  	github.com/carlosframework/platform/internal/relay	7.252s
ok  	github.com/carlosframework/platform/internal/release	26.229s
ok  	github.com/carlosframework/platform/internal/rollout	3.769s
ok  	github.com/carlosframework/platform/internal/rolloutwords	0.004s
ok  	github.com/carlosframework/platform/internal/rootaws	0.007s
ok  	github.com/carlosframework/platform/internal/rootfsimage	0.229s
ok  	github.com/carlosframework/platform/internal/rootparticipation	0.063s
ok  	github.com/carlosframework/platform/internal/rootstate	0.034s
ok  	github.com/carlosframework/platform/internal/runs	0.624s
ok  	github.com/carlosframework/platform/internal/s3compat	0.007s
ok  	github.com/carlosframework/platform/internal/safefile	0.007s
ok  	github.com/carlosframework/platform/internal/schedule	2.661s
ok  	github.com/carlosframework/platform/internal/seeds	0.015s
ok  	github.com/carlosframework/platform/internal/sim/engines	2.638s
ok  	github.com/carlosframework/platform/internal/sim/hostlife	10.824s
ok  	github.com/carlosframework/platform/internal/sim/litestreamfacts	3.664s
ok  	github.com/carlosframework/platform/internal/status	0.084s
ok  	github.com/carlosframework/platform/internal/steering	0.006s
ok  	github.com/carlosframework/platform/internal/stopevidence	0.300s
ok  	github.com/carlosframework/platform/internal/svcrole	0.003s
ok  	github.com/carlosframework/platform/internal/telemetry	0.008s
ok  	github.com/carlosframework/platform/internal/termfence	0.005s
ok  	github.com/carlosframework/platform/internal/tunnelclient	0.005s
ok  	github.com/carlosframework/platform/internal/unixdial	0.006s
ok  	github.com/carlosframework/platform/internal/updatewords	0.005s
ok  	github.com/carlosframework/platform/internal/usage	0.006s
ok  	github.com/carlosframework/platform/internal/version	0.002s
ok  	github.com/carlosframework/platform/internal/vet	1.659s
FAIL
=== internal_console@0 (78 s)
ok  	github.com/carlosframework/platform/internal/console	76.617s
=== internal_console@1 (41 s)
ok  	github.com/carlosframework/platform/internal/console	39.355s
=== internal_console@2 (37 s)
ok  	github.com/carlosframework/platform/internal/console	35.975s
=== internal_console@3 (42 s)
ok  	github.com/carlosframework/platform/internal/console	40.980s
=== internal_console@4 (44 s)
ok  	github.com/carlosframework/platform/internal/console	42.617s
=== internal_console@5 (44 s)
ok  	github.com/carlosframework/platform/internal/console	42.573s
=== internal_console@6 (39 s)
ok  	github.com/carlosframework/platform/internal/console	37.385s
=== internal_console@7 (49 s)
ok  	github.com/carlosframework/platform/internal/console	47.825s
=== root@0 (90 s)
ok  	github.com/carlosframework/platform	89.097s
=== root@1 (99 s)
ok  	github.com/carlosframework/platform	97.906s
=== root@2 (96 s)
ok  	github.com/carlosframework/platform	95.155s

FAILED: rest
make: *** [Makefile:19: test] Error 1

amadan: step gate failed: exit status 2

amadan: job failed at step gate — its output is above, not at the tail of this log
diff --git a/ship_rootfs.go b/ship_rootfs.go
index 77470e32d..c2e3eb6d7 100644
--- a/ship_rootfs.go
+++ b/ship_rootfs.go
@@ -7,8 +7,10 @@ import (
"fmt"
"log"
"os"
+ "os/signal"
"path/filepath"
"strings"
+ "syscall"
"time"
"github.com/carlosframework/platform/internal/release"
@@ -167,7 +169,11 @@ func shipRootfsRun(ctx context.Context, o rootfsShipOpts) error {
if err != nil {
return err
}
- defer os.RemoveAll(scratch)
+ stop := removeOnStopSignal(scratch)
+ defer func() {
+ os.RemoveAll(scratch)
+ stop()
+ }()
b, err := buildRootfs(ctx, o.src, o.procs, scratch, !o.check)
if err != nil {
@@ -216,6 +222,36 @@ func shipRootfsRun(ctx context.Context, o rootfsShipOpts) error {
return nil
}
+// shipRootfsStopSignals end a rootfs ship early: Ctrl-C, a supervisor's
+// SIGTERM and a closed terminal. SIGPIPE is left to the runtime on purpose:
+// caught, it would also arrive for the upload's socket when a console
+// refuses mid-body, and end the ship before the console's answer is read.
+var shipRootfsStopSignals = []os.Signal{os.Interrupt, syscall.SIGTERM, syscall.SIGHUP}
+
+// removeOnStopSignal removes scratch and exits 130 when a stop signal
+// arrives, until the returned stop is called. Left to the runtime, a signal
+// ends the process without running its defers, and the scratch (up to the
+// spool plus a 2 GiB image) would stay in the temp directory. A goroutine
+// rather than a cancelled context, because the build (WriteSquashfs) does
+// not watch one.
+func removeOnStopSignal(scratch string) (stop func()) {
+ ch := make(chan os.Signal, 1)
+ done := make(chan struct{})
+ signal.Notify(ch, shipRootfsStopSignals...)
+ go func() {
+ select {
+ case <-ch:
+ os.RemoveAll(scratch)
+ os.Exit(130)
+ case <-done:
+ }
+ }()
+ return func() {
+ signal.Stop(ch)
+ close(done)
+ }
+}
+
// readProcessesFile reads --processes: exactly the manifest's processes
// object, decoded strictly (release.DecodeProcesses). Its refusals name the
// file (RFS-1-C39).
diff --git a/ship_rootfs_test.go b/ship_rootfs_test.go
index 038fc4884..087b16f31 100644
--- a/ship_rootfs_test.go
+++ b/ship_rootfs_test.go
@@ -238,8 +238,12 @@ func TestShipRootfsDirectFromADirectory(t *testing.T) {
t.Fatal(err)
}
defer f.Close()
- if fi, err := f.Stat(); err != nil || fi.Size() != art.Size {
- t.Fatalf("stored image: %v, size %d, manifest %d", err, fi.Size(), art.Size)
+ fi, err := f.Stat()
+ if err != nil {
+ t.Fatalf("stored image: %v", err)
+ }
+ if fi.Size() != art.Size {
+ t.Fatalf("stored image is %d bytes, the manifest says %d", fi.Size(), art.Size)
}
sb, err := squashfs.New(f)
if err != nil {
diff --git a/ship_rootfs_unix_test.go b/ship_rootfs_unix_test.go
new file mode 100644
index 000000000..e8eaa91a7
--- /dev/null
+++ b/ship_rootfs_unix_test.go
@@ -0,0 +1,93 @@
+//go:build unix
+
+package main
+
+import (
+ "errors"
+ "io"
+ "net/http"
+ "net/http/httptest"
+ "os"
+ "os/exec"
+ "testing"
+ "time"
+)
+
+// A Ctrl-C while the image is being uploaded still removes the scratch: the
+// test console takes the meta part and then holds the upload, the child is
+// sent SIGINT there, and it must exit 130 (its handler, not the runtime's
+// default, which leaves the scratch and reports a signal death) with no
+// carlos-rootfs-* left in its TMPDIR.
+func TestShipRootfsRemovesItsScratchOnInterrupt(t *testing.T) {
+ if testing.Short() {
+ t.Skip("runs the carlos binary")
+ }
+ bin := buildCarlos(t)
+ dir, procs := rootfsRailsDir(t)
+ tmp := t.TempDir()
+ t.Setenv("TMPDIR", tmp)
+
+ metaSeen := make(chan struct{})
+ hold := make(chan struct{})
+ ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
+ if r.Method != http.MethodPost || r.URL.Path != "/api/cli/apps/bab/shop/releases" {
+ http.NotFound(w, r)
+ return
+ }
+ mr, err := r.MultipartReader()
+ if err != nil {
+ t.Errorf("request was not multipart: %v", err)
+ return
+ }
+ if part, err := mr.NextPart(); err != nil || part.FormName() != "meta" {
+ t.Errorf("first part: %v", err)
+ return
+ }
+ close(metaSeen)
+ <-hold
+ }))
+ t.Cleanup(ts.Close)
+ t.Cleanup(func() { close(hold) })
+
+ env := carlosTestEnv(t)
+ writeTestCredential(t, envSliceValue(env, "CARLOS_CREDENTIALS"), ts.URL)
+ cmd := exec.Command(bin, "ship", "--account", "bab", "-app", "shop", "-version", "0.1.0-1",
+ "--rootfs", dir, "--processes", procs)
+ cmd.Env = env
+ cmd.Dir = t.TempDir()
+ cmd.Stdout, cmd.Stderr = io.Discard, io.Discard
+ if err := cmd.Start(); err != nil {
+ t.Fatal(err)
+ }
+ exited := make(chan error, 1)
+ go func() { exited <- cmd.Wait() }()
+
+ select {
+ case <-metaSeen:
+ case err := <-exited:
+ t.Fatalf("the ship ended before its upload: %v", err)
+ case <-time.After(60 * time.Second):
+ cmd.Process.Kill()
+ t.Fatal("the upload never reached the console")
+ }
+ if left := rootfsScratchLeft(t, tmp); len(left) != 1 {
+ t.Fatalf("mid-upload scratch %v, want the one directory", left)
+ }
+ if err := cmd.Process.Signal(os.Interrupt); err != nil {
+ t.Fatal(err)
+ }
+ var err error
+ select {
+ case err = <-exited:
+ case <-time.After(30 * time.Second):
+ cmd.Process.Kill()
+ t.Fatal("the ship did not stop on SIGINT")
+ }
+ var ee *exec.ExitError
+ if !errors.As(err, &ee) || ee.ExitCode() != 130 {
+ t.Errorf("exit after SIGINT: %v, want status 130", err)
+ }
+ if left := rootfsScratchLeft(t, tmp); len(left) != 0 {
+ t.Errorf("an interrupted ship left its scratch: %v", left)
+ }
+}