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

tarantool / go-storage
90%

Build:
DEFAULT BRANCH: master
Repo Added 23 Dec 2025 02:48PM UTC
Files 49
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

LAST BUILD ON BRANCH master
branch: SELECT
CHANGE BRANCH
x
  • No branch selected
  • bigbes/gh-29-dummy-driver
  • bigbes/gh-29-etcd-driver
  • bigbes/gh-29-locker-helpers
  • bigbes/gh-29-locker-package
  • bigbes/gh-29-locker/dummy-driver
  • bigbes/gh-29-locker/etcd-driver
  • bigbes/gh-29-locker/locker-package
  • bigbes/gh-29-locker/storage-wiring
  • bigbes/gh-29-locker/tcs-driver
  • bigbes/gh-29-storage-wiring
  • bigbes/gh-29-tcs-driver
  • bigbes/gh-30-basic-integration-tests
  • bigbes/gh-31-readme-md
  • bigbes/gh-34-remove-mocks
  • bigbes/gh-61-implement-count
  • bigbes/gh-no-add-additional-marshallers
  • bigbes/gh-no-add-go-generate-target
  • bigbes/gh-no-add-legacy-namer
  • bigbes/gh-no-connect-unify-probin
  • bigbes/gh-no-etcdtest
  • bigbes/gh-no-fix-govulncheck
  • bigbes/gh-no-fix-interface
  • bigbes/gh-no-fix-namer-prefixes
  • bigbes/gh-no-fix-nil-hasher
  • bigbes/gh-no-fix-watch-bug
  • bigbes/gh-no-full-key-method
  • bigbes/gh-no-namer-key-prefix
  • bigbes/gh-no-prefix-check
  • bigbes/gh-no-prefixed-leading-slash
  • bigbes/gh-no-tx-storage-wrapper
  • bigbes/gh-no-unnamed-codec
  • bigbes/gh-no-update-contributing-md
  • bigbes/gh-no-update-golangci-lint
  • bigbes/release-v1.1.0
  • bigbes/release-v1.1.1
  • bigbes/release-v1.1.2
  • bigbes/release-v1.2.0
  • bigbes/release-v1.3.0
  • bigbes/release-v1.4.0
  • bigbes/release-v1.5.0
  • bigbes/tntp-7585-new-namer
  • bigbes/tntp-7587-codec-api
  • bigbes/tntp-7587-examples
  • bigbes/tntp-7587-new-namer
  • bigbes/tntp-7587-prefixed-storage-wrapper
  • bigbes/tntp-7587-store-api
  • bigbes/tntp-7587-tx-api
  • bigbes/tntp-7706-integrity-empty-watch
  • bigbes/tntp-7707-integrity-empty-range
  • bigbes/tntp-7708-watch-signal-contract
  • bigbes/tntp-7709-namer-multi-segment
  • bigbes/tntp-7710-integrity-singleton
  • bigbes/tntp-7780-fix-admin-for-connect-v2
  • ci/inline-govulncheck
  • g.rybakov/123
  • g.rybakov/gh-25-integrity-predicates
  • g.rybakov/gh-26-fix-non-empty-range
  • g.rybakov/tntp-4544-add-dummy-driver
  • g.rybakov/tntp-7387-add-ping-tcs
  • g.rybakov/tntp-7387-fix-probe-returns
  • g.rybakov/tntp-7387-remove-ssl-build-tag
  • g.rybakov/tntp-7780-connect-timeout
  • g.rybakov/tntp-7780-fix-admin-for-connect
  • gh-no-range-double-slash
  • master
  • mockird31/TNTP-4192-usage-examples
  • mockird31/fix-prefix-generate
  • mockird31/gh-23-extend-validated-result
  • mockird31/gh-24-prefix-deleteion
  • mockird31/gh-24-prefix-deletion
  • mockird31/gh-30-integration-tests-integrity.Typed
  • oleg-jukovec/connect-schema-fixes
  • oleg-jukovec/replace-etcd-client-with-interface
  • oleg-jukovec/storage-create-helper
  • origin/mockird31/gh-30-integration-tests-integrity.Typed
  • refs/tags/v1.1.0
  • refs/tags/v1.1.1
  • refs/tags/v1.1.2
  • refs/tags/v1.2.0
  • refs/tags/v1.3.0
  • refs/tags/v1.4.0
  • refs/tags/v1.5.0

29 May 2026 12:27PM UTC coverage: 89.915% (+0.009%) from 89.906%
26637173979

push

github

bigbes
hasher: accept nil and empty input as the empty-string digest

Storage backends round-trip empty stored values as nil, so a read of a
legitimately-empty value reached the validator with body=nil and exploded
at the SHA-256 hash check ("data is nil") and the RSA-PSS verifier check
("failed to get hash: data is nil"). The only workaround was
IgnoreVerificationError(), which defeats the integrity layer.

Drop the data == nil guard from sha1/sha256 — hash.Hash.Write(nil) is
well-defined, both nil and []byte{} now produce the empty-input digest.
ErrDataIsNil was internal-only; remove it.

Pin the contract at every layer: nil/empty parity in the hasher units,
sign+verify acceptance plus empty-signature rejection in rsapss, direct
empty-body validator coverage (value-only, value+hash, value+hash+sig),
and a TxPut([]byte{})/TxGet round-trip mirroring the reproducer against
every backend.

Also unflake driver/etcd locker tests: each test was creating its 30s
deadline ctx before calling createTestDriverConcrete, which spins up a
fresh embedded etcd cluster and can take >20s on slow CI runners. The
bootstrap consumed most of the budget, leaving Unlock's session.Close →
Revoke to fail at the last hop with "context deadline exceeded" — the
session is bound to the caller's ctx via concurrency.WithContext. Move
the ctx below cluster bootstrap in every locker test so the 30s bounds
only the actual locker operations. Observed on PR #107 run-tests (1.23);
1.24 and stable were green.

3807 of 4234 relevant lines covered (89.91%)

512.68 hits per line

Relevant lines Covered
Build:
Build:
4234 RELEVANT LINES 3807 COVERED LINES
512.68 HITS PER LINE
Source Files on master
  • Tree
  • List 49
  • Changed 3
  • Source Changed 0
  • Coverage Changed 3
Coverage ∆ File Lines Relevant Covered Missed Hits/Line

Recent builds

Builds Branch Commit Type Ran Committer Via Coverage
26637173979 master hasher: accept nil and empty input as the empty-string digest Storage backends round-trip empty stored values as nil, so a read of a legitimately-empty value reached the validator with body=nil and exploded at the SHA-256 hash check ("data is nil... push 29 May 2026 12:28PM UTC bigbes github
89.91
26637162934 master connect: fix etcd connection for non admin users NewEtcdStorage checked the cluster status through the Maintenance.Status function, which requires root permissions. Replace it with MemberList (serializable), which is open to any authenticated use... push 29 May 2026 12:28PM UTC bigbes github
89.91
26636487119 g.rybakov/tntp-7780-fix-admin-for-connect connect: fix etcd connection for non admin users NewEtcdStorage checked the cluster status through the Maintenance.Status function, which requires root permissions. Replace it with MemberList (serializable), which is open to any authenticated use... Pull #106 29 May 2026 12:12PM UTC sssciel github
89.95
26528759829 g.rybakov/123 connect: fix etcd connection for non admin users NewEtcdStorage checked the cluster status through the Maintenance.Status function, which requires root permissions. Replace it with MemberList (serializable), which is open to any authenticated use... push 27 May 2026 05:53PM UTC sssciel github
89.92
26528709025 g.rybakov/tntp-7780-connect-timeout connect: fix connection timeout Right now, NewStorage uses one common timeout for both connections. At the same time, it uses the same timeout as the main one to attempt a connection. It turns out that when connecting to the second tcs storage, t... Pull #108 27 May 2026 05:52PM UTC sssciel github
89.97
26528691013 g.rybakov/tntp-7780-connect-timeout connect: fix connection timeout Right now, NewStorage uses one common timeout for both connections. At the same time, it uses the same timeout as the main one to attempt a connection. It turns out that when connecting to the second tcs storage, t... push 27 May 2026 05:51PM UTC sssciel github
89.68
26528346477 g.rybakov/tntp-7780-connect-timeout connect: fix connection timeout Right now, NewStorage uses one common timeout for both connections. At the same time, it uses the same timeout as the main one to attempt a connection. It turns out that when connecting to the second tcs storage, t... Pull #108 27 May 2026 05:45PM UTC sssciel github
89.92
26528311692 g.rybakov/tntp-7780-connect-timeout connect: fix connection timeout Right now, NewStorage uses one common timeout for both connections. At the same time, it uses the same timeout as the main one to attempt a connection. It turns out that when connecting to the second tcs storage, t... push 27 May 2026 05:44PM UTC sssciel github
89.92
26521140423 bigbes/gh-no-fix-nil-hasher hasher: accept nil and empty input as the empty-string digest Storage backends round-trip empty stored values as nil, so a read of a legitimately-empty value reached the validator with body=nil and exploded at the SHA-256 hash check ("data is nil... Pull #107 27 May 2026 03:31PM UTC bigbes github
89.89
26520941063 bigbes/gh-no-fix-nil-hasher driver/etcd: start per-test ctx after cluster bootstrap Each locker test created its 30s deadline ctx and then called createTestDriverConcrete, which spins up a fresh embedded etcd cluster and can take >20s on slow CI runners. The bootstrap consu... Pull #107 27 May 2026 03:28PM UTC bigbes github
89.89
See All Builds (291)
  • Repo on GitHub
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc