• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

codenotary / immudb / 33902119093
85%
master: 85%

Build:
Build:
LAST BUILD BRANCH: fix/2155-failed-open-db-ref
DEFAULT BRANCH: master
Ran 04 Sep 2026 05:52PM UTC
Jobs 1
Files 312
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

04 Sep 2026 05:38PM UTC coverage: 84.86% (+0.02%) from 84.841%
33902119093

Pull #2157

gh-ci

vchaindz
feat(server): report databases that failed to open on /readyz

Health returns Status: true unconditionally and DatabaseHealth reports request
statistics, so neither can tell an orchestrator that a database is unusable.
DatabaseListV2 is not an answer either: Loaded is !IsClosed(), and closed is
set only by Close() or PutClosed(), never by a failed open, so a database
whose open failed still reports Loaded: true.

The consequence is that when a transient 403 from S3 left two databases
unopened (#2155), the pod stayed 1/1 Running and the liveness probe passed for
the whole outage. It surfaced instead as a crashloop in the client services,
pointing on-call at the consumers rather than at immudb.

The metrics server already serves /initz, /readyz and /livez, all of them
unconditional 200 stubs. /readyz now returns 503 and names each database whose
most recent open attempt failed and which has not opened successfully since.
/livez and /initz stay unconditional: liveness should not depend on storage
reachability.

A database that was never accessed has never attempted an open and is not
reported, so registering databases lazily at startup does not fail readiness.
The failure record is read atomically rather than under the dbInfo mutex,
which is held for the entire duration of an open and so is precisely
unavailable when a probe needs an answer.

IsActive is corrected in passing: it only checked that the cache lookup
succeeded, which was true for a ref whose open had failed. It now requires a
ref that actually holds an open database.

Closes #2156

Signed-off-by: vchaindz <dennis@codenotary.com>
Pull Request #2157: fix(database): make a failed database open recoverable, and report it on /readyz

110 of 120 new or added lines in 6 files covered. (91.67%)

5 existing lines in 3 files now uncovered.

45357 of 53449 relevant lines covered (84.86%)

122000.49 hits per line

Uncovered Changes

Lines Coverage ∆ File
6
84.38
-0.34% pkg/database/database.go
4
94.57
0.08% pkg/database/db_manager.go

Coverage Regressions

Lines Coverage ∆ File
2
94.57
0.08% pkg/database/db_manager.go
2
83.61
-3.28% pkg/server/uuid.go
1
84.38
-0.34% pkg/database/database.go
Jobs
ID Job ID Ran Files Coverage
1 33902119093.1 04 Sep 2026 05:52PM UTC 312
84.86
Source Files on build 33902119093
  • Tree
  • List 312
  • Changed 10
  • Source Changed 0
  • Coverage Changed 10
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Pull Request #2157
  • PR Base - master (#33678598961)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc