From be07385bb7ab946a360454b78185aa962aeb012a Mon Sep 17 00:00:00 2001 From: Derek Collison Date: Wed, 13 Oct 2021 14:56:58 -0700 Subject: [PATCH 1/3] Update server to 2.6.2 release Signed-off-by: Derek Collison --- go_test.mod | 2 +- go_test.sum | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/go_test.mod b/go_test.mod index a868bac29..c3ad367cb 100644 --- a/go_test.mod +++ b/go_test.mod @@ -4,7 +4,7 @@ go 1.16 require ( github.com/golang/protobuf v1.4.2 - github.com/nats-io/nats-server/v2 v2.6.2-0.20211007142333-41a9d082f8da + github.com/nats-io/nats-server/v2 v2.6.2 github.com/nats-io/nkeys v0.3.0 github.com/nats-io/nuid v1.0.1 google.golang.org/protobuf v1.23.0 diff --git a/go_test.sum b/go_test.sum index 5f7cda601..bb1ff381b 100644 --- a/go_test.sum +++ b/go_test.sum @@ -19,7 +19,10 @@ github.com/nats-io/jwt/v2 v2.1.0 h1:1UbfD5g1xTdWmSeRV8bh/7u+utTiBsRtWhLl1PixZp4= github.com/nats-io/jwt/v2 v2.1.0/go.mod h1:0tqz9Hlu6bCBFLWAASKhE5vUA4c24L9KPUUgvwumE/k= github.com/nats-io/nats-server/v2 v2.6.2-0.20211007142333-41a9d082f8da h1:0snsE4pD2VKIsFiRMRkHFY+SJZVbT7/eZJ1lOt5XuLA= github.com/nats-io/nats-server/v2 v2.6.2-0.20211007142333-41a9d082f8da/go.mod h1:ubcDOPViqaQcNvJVzoX9FIDxAxyJDTItw07lqFCzC80= +github.com/nats-io/nats-server/v2 v2.6.2 h1:uMydiSENbgRPsXHBYDvVVVx1d0inut/zd+DvISIGCi8= +github.com/nats-io/nats-server/v2 v2.6.2/go.mod h1:CNi6dJQ5H+vWqaoWKjCGtqBt7ai/xOTLiocUqhK6ews= github.com/nats-io/nats.go v1.12.3/go.mod h1:BPko4oXsySz4aSWeFgOHLZs3G4Jq4ZAyE6/zMCxRT6w= +github.com/nats-io/nats.go v1.13.0/go.mod h1:BPko4oXsySz4aSWeFgOHLZs3G4Jq4ZAyE6/zMCxRT6w= github.com/nats-io/nkeys v0.3.0 h1:cgM5tL53EvYRU+2YLXIK0G2mJtK12Ft9oeooSZMA2G8= github.com/nats-io/nkeys v0.3.0/go.mod h1:gvUNGjVcM2IPr5rCsRsC6Wb3Hr2CQAm08dsxtV6A5y4= github.com/nats-io/nuid v1.0.1 h1:5iA8DT8V7q8WK2EScv2padNa/rTESc1KdnPw4TC2paw= From 17668dd78ded3a32a76659db21efeb13170f604c Mon Sep 17 00:00:00 2001 From: Derek Collison Date: Wed, 13 Oct 2021 15:00:15 -0700 Subject: [PATCH 2/3] Change to purge deletes Signed-off-by: Derek Collison --- kv.go | 25 ++++++++++++++++++------- test/kv_test.go | 1 + 2 files changed, 19 insertions(+), 7 deletions(-) diff --git a/kv.go b/kv.go index 01efe0644..58f4b4b95 100644 --- a/kv.go +++ b/kv.go @@ -504,19 +504,30 @@ func (kv *kvs) PurgeDeletes(opts ...WatchOpt) error { } defer watcher.Stop() + var deleteMarkers []KeyValueEntry for entry := range watcher.Updates() { if entry == nil { break } if op := entry.Operation(); op == KeyValueDelete || op == KeyValuePurge { - var b strings.Builder - b.WriteString(kv.pre) - b.WriteString(entry.Key()) - err := kv.js.purgeStream(kv.stream, &streamPurgeRequest{Subject: b.String()}) - if err != nil { - return err - } + deleteMarkers = append(deleteMarkers, entry) + } + } + + var ( + pr streamPurgeRequest + b strings.Builder + ) + // Do actual purges here. + for _, entry := range deleteMarkers { + b.WriteString(kv.pre) + b.WriteString(entry.Key()) + pr.Subject = b.String() + err := kv.js.purgeStream(kv.stream, &pr) + if err != nil { + return err } + b.Reset() } return nil } diff --git a/test/kv_test.go b/test/kv_test.go index d7531abd7..6c8602603 100644 --- a/test/kv_test.go +++ b/test/kv_test.go @@ -349,6 +349,7 @@ func TestKeyValueDeleteTombstones(t *testing.T) { err := kv.Delete(fmt.Sprintf("key-%d", i)) expectOk(t, err) } + // Now cleanup. err = kv.PurgeDeletes() expectOk(t, err) From b4495c84f382f73e420cdc34c367c6422642c903 Mon Sep 17 00:00:00 2001 From: Derek Collison Date: Wed, 13 Oct 2021 15:13:44 -0700 Subject: [PATCH 3/3] go mod tidy Signed-off-by: Derek Collison --- go_test.sum | 3 --- 1 file changed, 3 deletions(-) diff --git a/go_test.sum b/go_test.sum index bb1ff381b..76f25e2bc 100644 --- a/go_test.sum +++ b/go_test.sum @@ -17,11 +17,8 @@ github.com/minio/highwayhash v1.0.1 h1:dZ6IIu8Z14VlC0VpfKofAhCy74wu/Qb5gcn52yWoz github.com/minio/highwayhash v1.0.1/go.mod h1:BQskDq+xkJ12lmlUUi7U0M5Swg3EWR+dLTk+kldvVxY= github.com/nats-io/jwt/v2 v2.1.0 h1:1UbfD5g1xTdWmSeRV8bh/7u+utTiBsRtWhLl1PixZp4= github.com/nats-io/jwt/v2 v2.1.0/go.mod h1:0tqz9Hlu6bCBFLWAASKhE5vUA4c24L9KPUUgvwumE/k= -github.com/nats-io/nats-server/v2 v2.6.2-0.20211007142333-41a9d082f8da h1:0snsE4pD2VKIsFiRMRkHFY+SJZVbT7/eZJ1lOt5XuLA= -github.com/nats-io/nats-server/v2 v2.6.2-0.20211007142333-41a9d082f8da/go.mod h1:ubcDOPViqaQcNvJVzoX9FIDxAxyJDTItw07lqFCzC80= github.com/nats-io/nats-server/v2 v2.6.2 h1:uMydiSENbgRPsXHBYDvVVVx1d0inut/zd+DvISIGCi8= github.com/nats-io/nats-server/v2 v2.6.2/go.mod h1:CNi6dJQ5H+vWqaoWKjCGtqBt7ai/xOTLiocUqhK6ews= -github.com/nats-io/nats.go v1.12.3/go.mod h1:BPko4oXsySz4aSWeFgOHLZs3G4Jq4ZAyE6/zMCxRT6w= github.com/nats-io/nats.go v1.13.0/go.mod h1:BPko4oXsySz4aSWeFgOHLZs3G4Jq4ZAyE6/zMCxRT6w= github.com/nats-io/nkeys v0.3.0 h1:cgM5tL53EvYRU+2YLXIK0G2mJtK12Ft9oeooSZMA2G8= github.com/nats-io/nkeys v0.3.0/go.mod h1:gvUNGjVcM2IPr5rCsRsC6Wb3Hr2CQAm08dsxtV6A5y4=