Skip to content

Commit

Permalink
Shut down RAFT groups when disabling JetStream
Browse files Browse the repository at this point in the history
Signed-off-by: Neil Twigg <neil@nats.io>
  • Loading branch information
neilalexander committed Mar 23, 2023
1 parent 61556d9 commit 0fba264
Show file tree
Hide file tree
Showing 20 changed files with 54 additions and 0 deletions.
3 changes: 3 additions & 0 deletions server/jetstream.go
Expand Up @@ -578,6 +578,9 @@ func (s *Server) DisableJetStream() error {
// Normal shutdown.
s.shutdownJetStream()

// Shut down the RAFT groups.
s.shutdownRaftNodes()

return nil
}

Expand Down
39 changes: 39 additions & 0 deletions server/jetstream_cluster_3_test.go
Expand Up @@ -3364,3 +3364,42 @@ func TestNoRaceJetStreamClusterDifferentRTTInterestBasedStreamPreAck(t *testing.
})

}

func TestJetStreamInterestLeakOnDisableJetStream(t *testing.T) {
c := createJetStreamClusterExplicit(t, "R3S", 3)
defer c.shutdown()

nc, js := jsClientConnect(t, c.leader())
defer nc.Close()

for i := 1; i <= 5; i++ {
_, err := js.AddStream(&nats.StreamConfig{
Name: fmt.Sprintf("test_%d", i),
Subjects: []string{fmt.Sprintf("test_%d", i)},
Replicas: 3,
})
require_NoError(t, err)
}

c.waitOnAllCurrent()

server := c.randomNonLeader()
account := server.SystemAccount()

server.DisableJetStream()

var sublist []*subscription
account.sl.localSubs(&sublist, false)

var danglingJSC, danglingRaft int
for _, sub := range sublist {
if strings.HasPrefix(string(sub.subject), "$JSC.") {
danglingJSC++
} else if strings.HasPrefix(string(sub.subject), "$NRG.") {
danglingRaft++
}
}
if danglingJSC > 0 || danglingRaft > 0 {
t.Fatalf("unexpected dangling interests for JetStream assets after shutdown (%d $JSC, %d $NRG)", danglingJSC, danglingRaft)
}
}
Binary file added server/tmp/jetstream/meta.inf
Binary file not shown.
2 changes: 2 additions & 0 deletions server/tmp/jetstream/meta.key
@@ -0,0 +1,2 @@
���&��I1gID>��
A5[��R�q�XӖ�T�&�pl3�I�R�ke~b�hy�GQ��v��
1 change: 1 addition & 0 deletions server/tmp/jetstream/meta.sum
@@ -0,0 +1 @@
3f9c23e7cce9ee35
Empty file added server/tmp/jetstream/msgs/1.blk
Empty file.
1 change: 1 addition & 0 deletions server/tmp/jetstream/msgs/1.idx
@@ -0,0 +1 @@
��}X,a��mC�8~�gg����Ү�)5r4�
1 change: 1 addition & 0 deletions server/tmp/jetstream/msgs/1.key
@@ -0,0 +1 @@
�$�Ž��#)��'H[F8WG@"3B�I��r\��}$LŲv��e�ڕ�������:��`��k
Binary file added server/tmp/jetstream/obs/go-audit-api-aws/meta.inf
Binary file not shown.
1 change: 1 addition & 0 deletions server/tmp/jetstream/obs/go-audit-api-aws/meta.key
@@ -0,0 +1 @@
c���o����&�VؔvM}�]�WY9s&�ËJSҖ�:��þ���Px溝g��$�sp��b��
1 change: 1 addition & 0 deletions server/tmp/jetstream/obs/go-audit-api-aws/meta.sum
@@ -0,0 +1 @@
97ea54aec05fe45b
Binary file added server/tmp/meta.inf
Binary file not shown.
1 change: 1 addition & 0 deletions server/tmp/meta.key
@@ -0,0 +1 @@
�`��-�"�}��.b�x8���K�j�Ux�ʠ��A�l���&^B���?;o�����W�`�
1 change: 1 addition & 0 deletions server/tmp/meta.sum
@@ -0,0 +1 @@
caa90bff1c2219ef
Empty file added server/tmp/msgs/1.blk
Empty file.
1 change: 1 addition & 0 deletions server/tmp/msgs/1.idx
@@ -0,0 +1 @@
����6^-0�N}Rj J�r��jR@ED��
Binary file added server/tmp/msgs/1.key
Binary file not shown.
Binary file added server/tmp/obs/go-audit-api-aws/meta.inf
Binary file not shown.
1 change: 1 addition & 0 deletions server/tmp/obs/go-audit-api-aws/meta.key
@@ -0,0 +1 @@
]��۔P�Xh_(��(�ҋgܼcN"�9g^o�ʼƙ�f4�B�vT�(E��LH�Y�(�)b�d�<��
1 change: 1 addition & 0 deletions server/tmp/obs/go-audit-api-aws/meta.sum
@@ -0,0 +1 @@
f81861c12a306979

0 comments on commit 0fba264

Please sign in to comment.