Repository navigation
fix(ci,hasura,docs): FIFO and symlink races in ci config, path-selection note, junk hasura files, nself-image Go spec (D-1173, D-1174, D-1175, D-0628, D-0296) - #484
Merged
Conversation
… descriptor (D-1173)
…path-based job selection (D-1174, D-1175)
…adata; make docker-socket read NUL-separated names (D-0628)
…anguage policy (D-0296)
Contributor
Author
|
Review fix: the pre-ship checklist in free/nself-image/SPEC.md now says |
…the legacy every-run claim in the migrate note (D-0296)
Contributor
Author
|
Review fixes in a54a3e6:
|
…n with the generator (D-0296)
Contributor
Author
|
Review fixes in 2acdece: removed the |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Four rows fixed, one fix per concern. Nothing merged, no version bump.
D-1173
readRegularTOCTOU. The file is now opened withO_NONBLOCK|O_NOCTTY(unix; plain open elsewhere) and its type is checked again with fstat on the descriptor. The path check stays as an early exit. TestTestReadRegularFIFOSwappedAfterCheckswaps a regular file for a FIFO between the check and the open (test hook); it blocks and fails with a plainos.Open, passes with the fix.D-1174
migrate --writeparent swap. AftercheckDestination,Writenow creates.nselfandci.yamlthroughos.OpenRoot(root), so a symlink swapped in afterwards cannot leave the repo. TestTestWriteRefusesSymlinkSwappedAfterCheckswaps.nselffor a symlink to an outside dir after the check; with the old MkdirAll/OpenFile-by-path code it wrote outside (verified failing), now it errors and the outside dir stays empty.D-1175 path-based job selection. Verified legacy
internal/legacy/pipeline.gohas no path logic.Migratenow adds a Note per manifest below the root saying the jobs getwhen.paths <dir>/**and the legacy runner ran every stage every time. TestTestMigrateNotesPathSelection. Rendered YAML and goldens are unchanged.D-0628 newline-named hasura files. Deleted the two junk files (the name was a shell list that got joined into one name;
tables.yamlpointed at it). Created per-table files with the same permission template for the tables the migrations actually create (media-processing 5, podcast 5) and fixed bothtables.yaml. Not added: four media-processing tables named in the junk name and inplugin.json(trickplay,webhook_events,watcher_events,uploads) have no migration, so hasura metadata for them would fail to apply; andnp_podcast_plays(migration 002) was never in the junk name. Both need an owner call.docker-socket.shnow readsfind -print0 | sort -zulikeport-bind.sh; fixturesock-in-newline-filenameadded. Run by hand: the old rule passes a socket mount in a newline-named file (fail open), the new one fails it.D-0296 nself-image SPEC.md. Rewritten for Go: removed the phantom "Plugin Language Policy", the SIMD claim and the libnclaw precedent; Rust/crate/cargo sections replaced (CI matrix is now GOOS/GOARCH); perf figures marked as unmeasured targets; encoder choice (no Go WebP/AVIF encoder in x/image) left as an open item; Rust needs a benchmark plus an ADR 0031 exception.
plugin.jsonandREADME.mdnow say Go (language: go), and therustandsimdtags are removed fromplugin.json.registry.jsonis regenerated withscripts/plugin-counts.sh, never hand-edited;scripts/plugin-counts.sh --check --free-onlypasses.Checks run
cd free/ci && GOFLAGS=-mod=vendor go vet ./...clean;go test ./internal/config/all pass (new tests included);gofmt -lclean.go test ./...in free/ci: one failure,cmd/agent TestServeStdioExitsNonZeroWithE663OnAProdStackMarker, identical on a clean origin/main worktree (pre-existing).GOOS=windows go build ./internal/config/fails ininternal/exec/process.go:141(tracker.reapundefined), identical on clean origin/main (pre-existing, not in my files).scripts/conformance/rules/docker-socket.shrun on media-processing, podcast, nself-image: pass.check.sh --fixturescannot run on this worker (no docker, schemacheck/portbind will not build), so the new fixture was exercised by hand as above.