gitea waits and keeps serving while its keys are unread; pin mesh-sdk 007b6fd
After a restart the forge-account provider returned a plain error, which the helper writes as failed with its values cleared, so every consumer lost its forge entry until the keys loaded. provider.ErrNotReady keeps the entry serving, in waits (issue 1954).
This commit is contained in:
@@ -184,7 +184,9 @@ func (s *Service) Make(ctx context.Context, c provider.Consumer) error {
|
||||
s.mu.Unlock()
|
||||
if !loaded {
|
||||
// After a restart the first pass can come before the keys arrive: nothing is removed or deleted on that.
|
||||
return fmt.Errorf("the keys of %s are not read yet, so nothing is made, removed or deleted", source)
|
||||
// Not ready, not failed: the entry waits and keeps serving what it served (provider.ErrNotReady).
|
||||
return fmt.Errorf("the keys of %s are not read yet, so nothing is made, removed or deleted: %w", source,
|
||||
provider.ErrNotReady)
|
||||
}
|
||||
have := s.keysFrom(source, node, kind)
|
||||
if len(have) == 0 {
|
||||
|
||||
@@ -80,14 +80,19 @@ func (b *fakeBus) entry(t *testing.T, key string) provider.Entry {
|
||||
return e
|
||||
}
|
||||
|
||||
// serves is whether gitea's entry under key serves its consumer: there, provided and with values (ADR 0570 clause 3:
|
||||
// an entry the provider could not make is kept, failed, serving nothing).
|
||||
func (b *fakeBus) serves(key string) bool {
|
||||
// serves is whether gitea's entry under key serves its consumer: there, in state (provided when none is given) and with
|
||||
// values (ADR 0570 clause 3: an entry the provider could not make is kept, failed, serving nothing; one it is not
|
||||
// ready to make waits and keeps serving).
|
||||
func (b *fakeBus) serves(key string, state ...string) bool {
|
||||
want := provisions.Provided
|
||||
if len(state) > 0 {
|
||||
want = state[0]
|
||||
}
|
||||
b.mu.Lock()
|
||||
raw, ok := b.buckets[provider.BucketOf("gitea")][key]
|
||||
b.mu.Unlock()
|
||||
var e provider.Entry
|
||||
return ok && json.Unmarshal(raw, &e) == nil && e.State == provisions.Provided && len(e.Values) > 0
|
||||
return ok && json.Unmarshal(raw, &e) == nil && e.State == want && len(e.Values) > 0
|
||||
}
|
||||
|
||||
func (b *fakeBus) has(key string) bool {
|
||||
@@ -522,8 +527,8 @@ func TestAPassBeforeTheKeysAreLoadedRemovesAndDeletesNothing(t *testing.T) {
|
||||
if got := strings.Join(r.forge.titles("nox-agent"), ","); got != "mesh:g14.nox,my own" {
|
||||
t.Fatalf("keys = %s", got)
|
||||
}
|
||||
if !r.bus.has("g14.ssh-client.forge-account") {
|
||||
t.Fatal("the entry was deleted before the keys were read")
|
||||
if !r.bus.serves("g14.ssh-client.forge-account", provisions.Waits) {
|
||||
t.Fatal("the entry stopped serving before the keys were read; it waits and keeps serving")
|
||||
}
|
||||
if len(out) != 1 || !strings.Contains(out[0].Why, "not read yet") {
|
||||
t.Fatalf("the wait should be said: %+v", out)
|
||||
|
||||
@@ -3,7 +3,7 @@ module gitea
|
||||
go 1.26.0
|
||||
|
||||
require (
|
||||
git.novox.be/novox/mesh-sdk/go v0.1.14-0.20261029225821-fa5a6aeff513
|
||||
git.novox.be/novox/mesh-sdk/go v0.1.14-0.20261029230207-007b6fd45fc7
|
||||
github.com/nats-io/nats-server/v2 v2.11.17
|
||||
github.com/nats-io/nats.go v1.54.0
|
||||
golang.org/x/crypto v0.57.0
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
git.novox.be/novox/mesh-sdk/go v0.1.14-0.20261029225821-fa5a6aeff513 h1:5OQeea0/kCPT4OARRNea7oMP6AoQwMtPuKh2UMhv5Es=
|
||||
git.novox.be/novox/mesh-sdk/go v0.1.14-0.20261029225821-fa5a6aeff513/go.mod h1:ouERNpZizzwZ0HLEtAypsY9FR20FyUgUYRni6J7kVCY=
|
||||
git.novox.be/novox/mesh-sdk/go v0.1.14-0.20261029230207-007b6fd45fc7 h1:9FZLjq5H+FShqsaSvZ5vGGjDFaQkdhGCna6ofiBd+p4=
|
||||
git.novox.be/novox/mesh-sdk/go v0.1.14-0.20261029230207-007b6fd45fc7/go.mod h1:ouERNpZizzwZ0HLEtAypsY9FR20FyUgUYRni6J7kVCY=
|
||||
github.com/antithesishq/antithesis-sdk-go v0.7.0-default-no-op h1:Z/MZK75wC/NSrkgqeNIa7jexam9uWzhLmFTSCPI/kn0=
|
||||
github.com/antithesishq/antithesis-sdk-go v0.7.0-default-no-op/go.mod h1:FQyySiasQQM8735Ddel3MRojmy4dA1IqCeyJ5jmPMbI=
|
||||
github.com/google/go-tpm v0.9.8 h1:slArAR9Ft+1ybZu0lBwpSmpwhRXaa85hWtMinMyRAWo=
|
||||
|
||||
@@ -2,4 +2,4 @@ module keycloak
|
||||
|
||||
go 1.26.0
|
||||
|
||||
require git.novox.be/novox/mesh-sdk/go v0.1.14-0.20261029225821-fa5a6aeff513
|
||||
require git.novox.be/novox/mesh-sdk/go v0.1.14-0.20261029230207-007b6fd45fc7
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
git.novox.be/novox/mesh-sdk/go v0.1.14-0.20261029225821-fa5a6aeff513 h1:5OQeea0/kCPT4OARRNea7oMP6AoQwMtPuKh2UMhv5Es=
|
||||
git.novox.be/novox/mesh-sdk/go v0.1.14-0.20261029225821-fa5a6aeff513/go.mod h1:ouERNpZizzwZ0HLEtAypsY9FR20FyUgUYRni6J7kVCY=
|
||||
git.novox.be/novox/mesh-sdk/go v0.1.14-0.20261029230207-007b6fd45fc7 h1:9FZLjq5H+FShqsaSvZ5vGGjDFaQkdhGCna6ofiBd+p4=
|
||||
git.novox.be/novox/mesh-sdk/go v0.1.14-0.20261029230207-007b6fd45fc7/go.mod h1:ouERNpZizzwZ0HLEtAypsY9FR20FyUgUYRni6J7kVCY=
|
||||
|
||||
@@ -2,7 +2,7 @@ module mesh-config
|
||||
|
||||
go 1.26.0
|
||||
|
||||
require git.novox.be/novox/mesh-sdk/go v0.1.14-0.20261029225821-fa5a6aeff513
|
||||
require git.novox.be/novox/mesh-sdk/go v0.1.14-0.20261029230207-007b6fd45fc7
|
||||
|
||||
require (
|
||||
github.com/klauspost/compress v1.20.0 // indirect
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
git.novox.be/novox/mesh-sdk/go v0.1.14-0.20261029225821-fa5a6aeff513 h1:5OQeea0/kCPT4OARRNea7oMP6AoQwMtPuKh2UMhv5Es=
|
||||
git.novox.be/novox/mesh-sdk/go v0.1.14-0.20261029225821-fa5a6aeff513/go.mod h1:ouERNpZizzwZ0HLEtAypsY9FR20FyUgUYRni6J7kVCY=
|
||||
git.novox.be/novox/mesh-sdk/go v0.1.14-0.20261029230207-007b6fd45fc7 h1:9FZLjq5H+FShqsaSvZ5vGGjDFaQkdhGCna6ofiBd+p4=
|
||||
git.novox.be/novox/mesh-sdk/go v0.1.14-0.20261029230207-007b6fd45fc7/go.mod h1:ouERNpZizzwZ0HLEtAypsY9FR20FyUgUYRni6J7kVCY=
|
||||
github.com/antithesishq/antithesis-sdk-go v0.7.0-default-no-op h1:Z/MZK75wC/NSrkgqeNIa7jexam9uWzhLmFTSCPI/kn0=
|
||||
github.com/antithesishq/antithesis-sdk-go v0.7.0-default-no-op/go.mod h1:FQyySiasQQM8735Ddel3MRojmy4dA1IqCeyJ5jmPMbI=
|
||||
github.com/google/go-tpm v0.9.8 h1:slArAR9Ft+1ybZu0lBwpSmpwhRXaa85hWtMinMyRAWo=
|
||||
|
||||
@@ -3,7 +3,7 @@ module mesh-hand-acts
|
||||
go 1.26.0
|
||||
|
||||
require (
|
||||
git.novox.be/novox/mesh-sdk/go v0.1.14-0.20261029225821-fa5a6aeff513
|
||||
git.novox.be/novox/mesh-sdk/go v0.1.14-0.20261029230207-007b6fd45fc7
|
||||
github.com/nats-io/nats.go v1.54.0
|
||||
)
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
git.novox.be/novox/mesh-sdk/go v0.1.14-0.20261029225821-fa5a6aeff513 h1:5OQeea0/kCPT4OARRNea7oMP6AoQwMtPuKh2UMhv5Es=
|
||||
git.novox.be/novox/mesh-sdk/go v0.1.14-0.20261029225821-fa5a6aeff513/go.mod h1:ouERNpZizzwZ0HLEtAypsY9FR20FyUgUYRni6J7kVCY=
|
||||
git.novox.be/novox/mesh-sdk/go v0.1.14-0.20261029230207-007b6fd45fc7 h1:9FZLjq5H+FShqsaSvZ5vGGjDFaQkdhGCna6ofiBd+p4=
|
||||
git.novox.be/novox/mesh-sdk/go v0.1.14-0.20261029230207-007b6fd45fc7/go.mod h1:ouERNpZizzwZ0HLEtAypsY9FR20FyUgUYRni6J7kVCY=
|
||||
github.com/antithesishq/antithesis-sdk-go v0.7.0-default-no-op h1:Z/MZK75wC/NSrkgqeNIa7jexam9uWzhLmFTSCPI/kn0=
|
||||
github.com/antithesishq/antithesis-sdk-go v0.7.0-default-no-op/go.mod h1:FQyySiasQQM8735Ddel3MRojmy4dA1IqCeyJ5jmPMbI=
|
||||
github.com/google/go-tpm v0.9.8 h1:slArAR9Ft+1ybZu0lBwpSmpwhRXaa85hWtMinMyRAWo=
|
||||
|
||||
@@ -3,7 +3,7 @@ module mesh-healers
|
||||
go 1.26.0
|
||||
|
||||
require (
|
||||
git.novox.be/novox/mesh-sdk/go v0.1.14-0.20261029225821-fa5a6aeff513
|
||||
git.novox.be/novox/mesh-sdk/go v0.1.14-0.20261029230207-007b6fd45fc7
|
||||
github.com/nats-io/nats.go v1.54.0
|
||||
)
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
git.novox.be/novox/mesh-sdk/go v0.1.14-0.20261029225821-fa5a6aeff513 h1:5OQeea0/kCPT4OARRNea7oMP6AoQwMtPuKh2UMhv5Es=
|
||||
git.novox.be/novox/mesh-sdk/go v0.1.14-0.20261029225821-fa5a6aeff513/go.mod h1:ouERNpZizzwZ0HLEtAypsY9FR20FyUgUYRni6J7kVCY=
|
||||
git.novox.be/novox/mesh-sdk/go v0.1.14-0.20261029230207-007b6fd45fc7 h1:9FZLjq5H+FShqsaSvZ5vGGjDFaQkdhGCna6ofiBd+p4=
|
||||
git.novox.be/novox/mesh-sdk/go v0.1.14-0.20261029230207-007b6fd45fc7/go.mod h1:ouERNpZizzwZ0HLEtAypsY9FR20FyUgUYRni6J7kVCY=
|
||||
github.com/antithesishq/antithesis-sdk-go v0.7.0-default-no-op h1:Z/MZK75wC/NSrkgqeNIa7jexam9uWzhLmFTSCPI/kn0=
|
||||
github.com/antithesishq/antithesis-sdk-go v0.7.0-default-no-op/go.mod h1:FQyySiasQQM8735Ddel3MRojmy4dA1IqCeyJ5jmPMbI=
|
||||
github.com/google/go-tpm v0.9.8 h1:slArAR9Ft+1ybZu0lBwpSmpwhRXaa85hWtMinMyRAWo=
|
||||
|
||||
@@ -3,7 +3,7 @@ module mesh-provisioner-client
|
||||
go 1.26.0
|
||||
|
||||
require (
|
||||
git.novox.be/novox/mesh-sdk/go v0.1.14-0.20261029225821-fa5a6aeff513
|
||||
git.novox.be/novox/mesh-sdk/go v0.1.14-0.20261029230207-007b6fd45fc7
|
||||
github.com/nats-io/nats-server/v2 v2.11.17
|
||||
github.com/nats-io/nats.go v1.54.0
|
||||
golang.org/x/sys v0.48.0
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
git.novox.be/novox/mesh-sdk/go v0.1.14-0.20261029225821-fa5a6aeff513 h1:5OQeea0/kCPT4OARRNea7oMP6AoQwMtPuKh2UMhv5Es=
|
||||
git.novox.be/novox/mesh-sdk/go v0.1.14-0.20261029225821-fa5a6aeff513/go.mod h1:ouERNpZizzwZ0HLEtAypsY9FR20FyUgUYRni6J7kVCY=
|
||||
git.novox.be/novox/mesh-sdk/go v0.1.14-0.20261029230207-007b6fd45fc7 h1:9FZLjq5H+FShqsaSvZ5vGGjDFaQkdhGCna6ofiBd+p4=
|
||||
git.novox.be/novox/mesh-sdk/go v0.1.14-0.20261029230207-007b6fd45fc7/go.mod h1:ouERNpZizzwZ0HLEtAypsY9FR20FyUgUYRni6J7kVCY=
|
||||
github.com/antithesishq/antithesis-sdk-go v0.7.0-default-no-op h1:Z/MZK75wC/NSrkgqeNIa7jexam9uWzhLmFTSCPI/kn0=
|
||||
github.com/antithesishq/antithesis-sdk-go v0.7.0-default-no-op/go.mod h1:FQyySiasQQM8735Ddel3MRojmy4dA1IqCeyJ5jmPMbI=
|
||||
github.com/google/go-tpm v0.9.8 h1:slArAR9Ft+1ybZu0lBwpSmpwhRXaa85hWtMinMyRAWo=
|
||||
|
||||
@@ -3,7 +3,7 @@ module mesh-provisioner
|
||||
go 1.26.0
|
||||
|
||||
require (
|
||||
git.novox.be/novox/mesh-sdk/go v0.1.14-0.20261029225821-fa5a6aeff513
|
||||
git.novox.be/novox/mesh-sdk/go v0.1.14-0.20261029230207-007b6fd45fc7
|
||||
github.com/nats-io/nats.go v1.54.0
|
||||
)
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
git.novox.be/novox/mesh-sdk/go v0.1.14-0.20261029225821-fa5a6aeff513 h1:5OQeea0/kCPT4OARRNea7oMP6AoQwMtPuKh2UMhv5Es=
|
||||
git.novox.be/novox/mesh-sdk/go v0.1.14-0.20261029225821-fa5a6aeff513/go.mod h1:ouERNpZizzwZ0HLEtAypsY9FR20FyUgUYRni6J7kVCY=
|
||||
git.novox.be/novox/mesh-sdk/go v0.1.14-0.20261029230207-007b6fd45fc7 h1:9FZLjq5H+FShqsaSvZ5vGGjDFaQkdhGCna6ofiBd+p4=
|
||||
git.novox.be/novox/mesh-sdk/go v0.1.14-0.20261029230207-007b6fd45fc7/go.mod h1:ouERNpZizzwZ0HLEtAypsY9FR20FyUgUYRni6J7kVCY=
|
||||
github.com/antithesishq/antithesis-sdk-go v0.7.0-default-no-op h1:Z/MZK75wC/NSrkgqeNIa7jexam9uWzhLmFTSCPI/kn0=
|
||||
github.com/antithesishq/antithesis-sdk-go v0.7.0-default-no-op/go.mod h1:FQyySiasQQM8735Ddel3MRojmy4dA1IqCeyJ5jmPMbI=
|
||||
github.com/google/go-tpm v0.9.8 h1:slArAR9Ft+1ybZu0lBwpSmpwhRXaa85hWtMinMyRAWo=
|
||||
|
||||
@@ -3,7 +3,7 @@ module mesh-vault
|
||||
go 1.26.0
|
||||
|
||||
require (
|
||||
git.novox.be/novox/mesh-sdk/go v0.1.14-0.20261029225821-fa5a6aeff513
|
||||
git.novox.be/novox/mesh-sdk/go v0.1.14-0.20261029230207-007b6fd45fc7
|
||||
github.com/nats-io/nats-server/v2 v2.11.17
|
||||
github.com/nats-io/nats.go v1.54.0
|
||||
golang.org/x/crypto v0.57.0
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
git.novox.be/novox/mesh-sdk/go v0.1.14-0.20261029225821-fa5a6aeff513 h1:5OQeea0/kCPT4OARRNea7oMP6AoQwMtPuKh2UMhv5Es=
|
||||
git.novox.be/novox/mesh-sdk/go v0.1.14-0.20261029225821-fa5a6aeff513/go.mod h1:ouERNpZizzwZ0HLEtAypsY9FR20FyUgUYRni6J7kVCY=
|
||||
git.novox.be/novox/mesh-sdk/go v0.1.14-0.20261029230207-007b6fd45fc7 h1:9FZLjq5H+FShqsaSvZ5vGGjDFaQkdhGCna6ofiBd+p4=
|
||||
git.novox.be/novox/mesh-sdk/go v0.1.14-0.20261029230207-007b6fd45fc7/go.mod h1:ouERNpZizzwZ0HLEtAypsY9FR20FyUgUYRni6J7kVCY=
|
||||
github.com/antithesishq/antithesis-sdk-go v0.7.0-default-no-op h1:Z/MZK75wC/NSrkgqeNIa7jexam9uWzhLmFTSCPI/kn0=
|
||||
github.com/antithesishq/antithesis-sdk-go v0.7.0-default-no-op/go.mod h1:FQyySiasQQM8735Ddel3MRojmy4dA1IqCeyJ5jmPMbI=
|
||||
github.com/google/go-tpm v0.9.8 h1:slArAR9Ft+1ybZu0lBwpSmpwhRXaa85hWtMinMyRAWo=
|
||||
|
||||
@@ -3,7 +3,7 @@ module postgres
|
||||
go 1.26.0
|
||||
|
||||
require (
|
||||
git.novox.be/novox/mesh-sdk/go v0.1.14-0.20261029225821-fa5a6aeff513
|
||||
git.novox.be/novox/mesh-sdk/go v0.1.14-0.20261029230207-007b6fd45fc7
|
||||
github.com/jackc/pgx/v5 v5.11.0
|
||||
)
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
git.novox.be/novox/mesh-sdk/go v0.1.14-0.20261029225821-fa5a6aeff513 h1:5OQeea0/kCPT4OARRNea7oMP6AoQwMtPuKh2UMhv5Es=
|
||||
git.novox.be/novox/mesh-sdk/go v0.1.14-0.20261029225821-fa5a6aeff513/go.mod h1:ouERNpZizzwZ0HLEtAypsY9FR20FyUgUYRni6J7kVCY=
|
||||
git.novox.be/novox/mesh-sdk/go v0.1.14-0.20261029230207-007b6fd45fc7 h1:9FZLjq5H+FShqsaSvZ5vGGjDFaQkdhGCna6ofiBd+p4=
|
||||
git.novox.be/novox/mesh-sdk/go v0.1.14-0.20261029230207-007b6fd45fc7/go.mod h1:ouERNpZizzwZ0HLEtAypsY9FR20FyUgUYRni6J7kVCY=
|
||||
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
|
||||
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||
|
||||
@@ -2,4 +2,4 @@ module route-adapter
|
||||
|
||||
go 1.26.0
|
||||
|
||||
require git.novox.be/novox/mesh-sdk/go v0.1.14-0.20261029225821-fa5a6aeff513
|
||||
require git.novox.be/novox/mesh-sdk/go v0.1.14-0.20261029230207-007b6fd45fc7
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
git.novox.be/novox/mesh-sdk/go v0.1.14-0.20261029225821-fa5a6aeff513 h1:5OQeea0/kCPT4OARRNea7oMP6AoQwMtPuKh2UMhv5Es=
|
||||
git.novox.be/novox/mesh-sdk/go v0.1.14-0.20261029225821-fa5a6aeff513/go.mod h1:ouERNpZizzwZ0HLEtAypsY9FR20FyUgUYRni6J7kVCY=
|
||||
git.novox.be/novox/mesh-sdk/go v0.1.14-0.20261029230207-007b6fd45fc7 h1:9FZLjq5H+FShqsaSvZ5vGGjDFaQkdhGCna6ofiBd+p4=
|
||||
git.novox.be/novox/mesh-sdk/go v0.1.14-0.20261029230207-007b6fd45fc7/go.mod h1:ouERNpZizzwZ0HLEtAypsY9FR20FyUgUYRni6J7kVCY=
|
||||
|
||||
Reference in New Issue
Block a user