Skip to content

Stabilize Poll Updates and Release Old Catalogue Trees#79

Merged
smartinov merged 4 commits intomainfrom
feature/loader-direct-json-content-type
May 5, 2026
Merged

Stabilize Poll Updates and Release Old Catalogue Trees#79
smartinov merged 4 commits intomainfrom
feature/loader-direct-json-content-type

Conversation

@smartinov
Copy link
Copy Markdown
Contributor

@smartinov smartinov commented Apr 30, 2026

Summary

This PR stabilizes poll-mode catalogue updates and keeps the branch ready for merge:

  • Forces a GC cycle after a successful catalogue swap so old, large content trees are released promptly after reload.
  • Unifies poll freshness tracking into one version field: ETag when present, otherwise the URL returned by the poll endpoint.
  • Keeps ETag commits deferred until after the catalogue is fetched, parsed, loaded, and swapped successfully.
  • Includes Dependabot's Go module security update from PR chore(deps): bump the gomod-security group across 1 directory with 3 updates #78 byte-for-byte in go.mod and go.sum.
  • Adds coverage for the PollRoutine success log path that Coveralls previously reported as the uncovered changed line.

Notes

  • ETag-shaped versions are sent as If-None-Match; URL fallback versions are only used for local same-version short-circuiting.
  • The dynamic HTTP calls in the client/loader are intentional: this server is configured to fetch caller-provided contentserver/repository/poll endpoints.
  • Latest golangci-lint started flagging unrelated mock helper patterns, so the PR also cleans those up to keep rerun CI deterministic.

Review

  • Simplification audit: no required simplifications found; one stale comment was corrected.
  • Bug/regression review: no blocking findings found.
  • Residual risk: runtime.GC() is process-wide and intentional for the observed OOM pattern; we do not yet have latency benchmark evidence for the reload pause.

Test Plan

  • go build ./...
  • make test
  • go test -tags=safe -coverprofile=coverage.out -count=1 ./... && go tool cover -func=coverage.out — total coverage 47.5%
  • make lint — local golangci-lint v2.10.1
  • go run github.com/golangci/golangci-lint/v2/cmd/golangci-lint@v2.12.1 run — current CI latest version
  • PR CI rerun — GitHub Actions test passed, including Coveralls upload step

@smartinov smartinov force-pushed the feature/loader-direct-json-content-type branch 2 times, most recently from f986289 to ad49cac Compare April 30, 2026 10:35
smartinov and others added 2 commits April 30, 2026 17:27
…updates

Bumps the gomod-security group with 1 update in the / directory: [go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp](https://github.com/open-telemetry/opentelemetry-go).


Updates `go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp` from 1.41.0 to 1.43.0
- [Release notes](https://github.com/open-telemetry/opentelemetry-go/releases)
- [Changelog](https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md)
- [Commits](open-telemetry/opentelemetry-go@v1.41.0...v1.43.0)

Updates `go.opentelemetry.io/otel/sdk` from 1.41.0 to 1.43.0
- [Release notes](https://github.com/open-telemetry/opentelemetry-go/releases)
- [Changelog](https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md)
- [Commits](open-telemetry/opentelemetry-go@v1.41.0...v1.43.0)

Updates `google.golang.org/grpc` from 1.79.1 to 1.80.0
- [Release notes](https://github.com/grpc/grpc-go/releases)
- [Commits](grpc/grpc-go@v1.79.1...v1.80.0)

---
updated-dependencies:
- dependency-name: go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp
  dependency-version: 1.43.0
  dependency-type: indirect
  dependency-group: gomod-security
- dependency-name: go.opentelemetry.io/otel/sdk
  dependency-version: 1.43.0
  dependency-type: indirect
  dependency-group: gomod-security
- dependency-name: google.golang.org/grpc
  dependency-version: 1.80.0
  dependency-type: indirect
  dependency-group: gomod-security
...

Signed-off-by: dependabot[bot] <support@github.com>
@smartinov smartinov force-pushed the feature/loader-direct-json-content-type branch from c41a362 to a8e8273 Compare April 30, 2026 18:50
@smartinov smartinov changed the title Load Catalogue Directly When Poll Response Is application/json Stabilize Poll Updates and Release Old Catalogue Trees May 4, 2026
@smartinov smartinov merged commit 97ac39d into main May 5, 2026
2 checks passed
@smartinov smartinov deleted the feature/loader-direct-json-content-type branch May 5, 2026 08:13
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