Skip to content

fix(sharedproxy,plugin,templates): lock across detach+down, leave retry, source-fallback refusal, tables.yaml only, err-to-zero (D-0929, D-0931, D-0938, D-1415, D-0917, D-0061) - #1005

Merged
acamarata merged 7 commits into
mainfrom
dw9-cli-19
Oct 28, 2026

Conversation

@acamarata

Copy link
Copy Markdown
Collaborator

Closes the cli side of D-0929, D-0931, D-0938, D-1415, D-0917, D-0061.

Per row

D-0938 Reworded the two operator-private path mentions (internal/doctor/dogfood_checks.go FixCmd, scripts/ops/credential-rotation-check.sh issue body). New TestNoOperatorPrivatePathAdvice fails on origin/main, passes here. The P7-CI-45 grep exemption lives outside this repo (hq); it can be dropped once this merges.

D-1415 verifyReleaseSignature now refuses a source artifact with E121 when the entry is a command plugin that advertises platform_signatures for this platform (pinned tiers; the dev bypass does not open it, since the signature entry is present). Seam tests added: platform asset 404 with a source tarball that has no binary, and with a binary; plus a control that an entry with no platform_signatures still installs from source. TestInstallSourceFallbackRefusedE121 fails on origin/main.

D-0917 Dropped multi-app/hasura/metadata.json. tables.yaml is the single source; TestMultiAppMetadataInSync now asserts the JSON is gone and the three tables are in the YAML, and the permission tests, the doctor isolation template test and the two e2e scripts read tables.yaml. README and wiki updated. Note: the ADOPT ticket AC text in hq still lists hasura/metadata.json in the dry-run output. Also note HasuraApplyMetadata sends replace_metadata for the YAML directory layout too, so nself db hasura metadata apply on multi-app is still unsafe; the README warning stays and that command is a separate fix.

D-0929 The compose pre-down hook now returns a release func. sharedproxy.DetachHolding takes the owner lock, detaches and returns with the lock held; ComposeDown releases it after docker compose down. An owner nself start cannot reattach in between (test: attach times out while held, works after release).

D-0931 (a) Leave records nginx/shared/.reload-pending once the registration is gone and clears it after a successful reload (or when the owner is not running). A retry with no registration pays the reload; the owner's nself start and a repeated nself uninstall also flush it. This is a marker rather than a live-config diff. (b) A restarting owner that an attach stopped is started again on any failed-attach exit (an owner the call did not stop is left as found). (c) nself restart nginx runs the reattach. Tests for each; the retry and start-back tests fail on origin/main.

D-0061 Verified not landed: getSchemaVersion, health and reclaimRunnerWork still swallowed errors on main. The side session's fix was sitting unreviewed on origin/fix/D-0061-err-to-zero (never PR'd). Cherry-picked it unchanged (3 behaviour fixes with tests, plus the dead certutil call in ssl/trust.go). The other ~20 sites in that sweep were judged correct (guarded by os.IsNotExist), so I did not re-derive them.

Checks run

  • go build ./... ok; go vet ./... clean; gofmt -l clean
  • go test ./...: 11030 passed in 144 packages, 0 failed
  • New tests confirmed failing on the pre-fix code for D-0938, D-1415, D-0931 (a, b); golangci-lint is not installed on this worker, so not run.

… retry a failed leave reload; reattach on restart nginx (D-0929, D-0931)
getSchemaVersion returned (0, nil) when psql failed, so a broken database
looked fresh and schema provisioning re-ran. health swallowed the dial error
the start loop already stores. reclaimRunnerWork treated an unreadable _work
as a healthy no-op. isCAInstalledWindows drops a dead certutil call.
@acamarata
acamarata merged commit 73ec226 into main Oct 28, 2026
36 of 37 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant