From 822ad00d50f27db69b52b182a3daf33d4f8cfc50 Mon Sep 17 00:00:00 2001 From: Derek Collison Date: Mon, 5 Jun 2023 14:14:35 -0700 Subject: [PATCH 1/2] Bump to 2.9.18-beta.1 Signed-off-by: Derek Collison --- server/const.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/const.go b/server/const.go index d2a0e263..cfcb78ac 100644 --- a/server/const.go +++ b/server/const.go @@ -41,7 +41,7 @@ var ( const ( // VERSION is the current version for the server. - VERSION = "2.9.18-beta" + VERSION = "2.9.18-beta.1" // PROTO is the currently supported protocol. // 0 was the original From 779978d817e20b0a939e6b48ac53f6abe6f8f3ee Mon Sep 17 00:00:00 2001 From: Derek Collison Date: Wed, 7 Jun 2023 14:01:43 -0700 Subject: [PATCH 2/2] Extended replay leafnode test to confirm mirror functionality Signed-off-by: Derek Collison --- server/jetstream_cluster_3_test.go | 38 ++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/server/jetstream_cluster_3_test.go b/server/jetstream_cluster_3_test.go index 3922309c..13d39a41 100644 --- a/server/jetstream_cluster_3_test.go +++ b/server/jetstream_cluster_3_test.go @@ -4280,6 +4280,44 @@ func TestJetStreamClusterLeafnodePlusDaisyChainSetup(t *testing.T) { // Third hop from AP -> CN is 1F, 1T, 1T and 1T // Each cluster hop that has the export/import mapping will add another T message copy. checkSubsPending(t, tsub, num*4) + + // Create stream in cloud. + nc, js := jsClientConnect(t, c.randomServer(), nats.UserInfo("F", "pass")) + defer nc.Close() + + _, err = js.AddStream(&nats.StreamConfig{ + Name: "TEST", + Subjects: []string{"TEST.>"}, + Replicas: 3, + }) + require_NoError(t, err) + + for i := 0; i < 100; i++ { + sendStreamMsg(t, nc, fmt.Sprintf("TEST.%d", i), "OK") + } + + // Now connect to EU. + nc, js = jsClientConnect(t, lceu.randomServer(), nats.UserInfo("F", "pass")) + defer nc.Close() + + // Create a mirror. + _, err = js.AddStream(&nats.StreamConfig{ + Name: "M", + Mirror: &nats.StreamSource{ + Name: "TEST", + Domain: "CLOUD", + }, + }) + require_NoError(t, err) + + checkFor(t, time.Second, 200*time.Millisecond, func() error { + si, err := js.StreamInfo("M") + require_NoError(t, err) + if si.State.Msgs == 100 { + return nil + } + return fmt.Errorf("State not current: %+v", si.State) + }) } // https://github.com/nats-io/nats-server/pull/4197