Fixes to PR.

Add nats to default storage directory
Fix race in raft, change leader notice
Fix test crash on failure

Signed-off-by: Derek Collison <derek@nats.io>
This commit is contained in:
Derek Collison
2021-01-14 01:57:31 -08:00
parent 37cf7584bd
commit 4bfe9d4c24
8 changed files with 34 additions and 14 deletions

1
go.sum
View File

@@ -21,6 +21,7 @@ github.com/nats-io/jwt v1.1.0/go.mod h1:n3cvmLfBfnpV4JJRN7lRYCyZnw48ksGsbThGXEk4
github.com/nats-io/jwt v1.2.3-0.20210107222814-18c5cc45d263 h1:x3J+0KMQhbQE8iHxChJdJHNk7rJnCwXFX+WI0hfvYtE=
github.com/nats-io/jwt v1.2.3-0.20210107222814-18c5cc45d263/go.mod h1:/xX356yQA6LuXI9xWW7mZNpxgF2mBmGecH+Fj34sP5Q=
github.com/nats-io/jwt/v2 v2.0.0-20200916203241-1f8ce17dff02/go.mod h1:vs+ZEjP+XKy8szkBmQwCB7RjYdIlMaPsFPs4VdS4bTQ=
github.com/nats-io/jwt/v2 v2.0.0-20201015190852-e11ce317263c/go.mod h1:vs+ZEjP+XKy8szkBmQwCB7RjYdIlMaPsFPs4VdS4bTQ=
github.com/nats-io/jwt/v2 v2.0.0-20210107222814-18c5cc45d263 h1:M2bkT/arzYFYPtRqQWN2m+LSLfcqFmPxlxvTxdB4aVE=
github.com/nats-io/jwt/v2 v2.0.0-20210107222814-18c5cc45d263/go.mod h1:PuO5FToRL31ecdFqVjc794vK0Bj0CwzveQEDvkb7MoQ=
github.com/nats-io/nats-server/v2 v2.1.8-0.20200524125952-51ebd92a9093/go.mod h1:rQnBf2Rv4P9adtAs/Ti6LfFmVtFG6HLhl/H7cVshcJU=

View File

@@ -995,11 +995,11 @@ const (
// Dynamically create a config with a tmp based directory (repeatable) and 75% of system memory.
func (s *Server) dynJetStreamConfig(storeDir string, maxStore int64) *JetStreamConfig {
jsc := &JetStreamConfig{}
if storeDir != "" {
if storeDir != _EMPTY_ {
jsc.StoreDir = filepath.Join(storeDir, JetStreamStoreDir)
} else {
// Create one in temp directory, but make it consistent for restarts.
jsc.StoreDir = filepath.Join(os.TempDir(), JetStreamStoreDir)
// Create one in tmp directory, but make it consistent for restarts.
jsc.StoreDir = filepath.Join(os.TempDir(), "nats", JetStreamStoreDir)
}
if maxStore > 0 {

View File

@@ -1060,7 +1060,7 @@ func (js *jetStream) applyStreamEntries(mset *Stream, ce *CommittedEntry) (bool,
func (js *jetStream) processStreamLeaderChange(mset *Stream, sa *streamAssignment, isLeader bool) {
if isLeader {
js.srv.Noticef("JetStream cluster new stream leader for %q - %q! %v", sa.Client.Account, mset.Name())
js.srv.Noticef("JetStream cluster new stream leader for '%s > %s'", sa.Client.Account, mset.Name())
}
mset.setLeader(isLeader)
@@ -1637,7 +1637,7 @@ func decodeDeliveredUpdate(buf []byte) (dseq, sseq, dc uint64, ts int64, err err
func (js *jetStream) processConsumerLeaderChange(o *Consumer, ca *consumerAssignment, isLeader bool) {
if isLeader {
js.srv.Noticef("JetStream cluster new consumer leader for %q - %q - %q", ca.Client.Account, ca.Stream, ca.Name)
js.srv.Noticef("JetStream cluster new consumer leader for '%s > %s > %s'", ca.Client.Account, ca.Stream, ca.Name)
}
o.setLeader(isLeader)

View File

@@ -4964,10 +4964,7 @@ func TestJWTQueuePermissions(t *testing.T) {
t.Fatalf("no error expected: %v", err)
}
} else {
if _, err := nc.
Subscribe("foo.bar", test.queue, func(msg *nats.Msg) {}); err != nil {
if _, err := nc.QueueSubscribe("foo.bar", test.queue, func(msg *nats.Msg) {}); err != nil {
t.Fatalf("no error expected: %v", err)
}
}

View File

@@ -1790,8 +1790,9 @@ func (n *raft) handleVoteResponse(sub *subscription, c *client, _, reply string,
}
func (n *raft) processVoteRequest(vr *voteRequest) error {
n.RLock()
vresp := voteResponse{n.term, n.id, false}
var err error
n.RUnlock()
n.debug("Received a voteRequest %+v", vr)
@@ -1819,7 +1820,7 @@ func (n *raft) processVoteRequest(vr *voteRequest) error {
n.sendReply(vr.reply, vresp.encode())
return err
return nil
}
func (n *raft) handleVoteRequest(sub *subscription, c *client, subject, reply string, msg []byte) {

View File

@@ -451,14 +451,22 @@ func TestJetStreamClusterConsumerState(t *testing.T) {
m.Ack()
}
ci, _ := sub.ConsumerInfo()
ci, err := sub.ConsumerInfo()
if err != nil {
t.Fatalf("Unexpected error getting consumer info: %v", err)
}
if ci.AckFloor.Consumer != 5 {
t.Fatalf("Expected ack floor of %d, got %d", 5, ci.AckFloor.Consumer)
}
c.consumerLeader("$G", "TEST", "dlc").Shutdown()
c.waitOnNewConsumerLeader("$G", "TEST", "dlc")
nci, _ := sub.ConsumerInfo()
nci, err := sub.ConsumerInfo()
if err != nil {
t.Fatalf("Unexpected error getting consumer info: %v", err)
}
if nci.Delivered != ci.Delivered {
t.Fatalf("Consumer delivered did not match after leader switch, wanted %+v, got %+v", ci.Delivered, nci.Delivered)
}

13
vendor/github.com/nats-io/nats.go/dependencies.md generated vendored Normal file
View File

@@ -0,0 +1,13 @@
# External Dependencies
This file lists the dependencies used in this repository.
| Dependency | License |
|-|-|
| Go | BSD 3-Clause "New" or "Revised" License |
| github.com/nats-io/nats.go | Apache License 2.0 |
| github.com/golang/protobuf v1.4.2 | BSD 3-Clause "New" or "Revised" License |
| github.com/nats-io/nats-server/v2 v2.1.8-0.20201115145023-f61fa8529a0f | Apache License 2.0 |
| github.com/nats-io/nkeys v0.2.0 | Apache License 2.0 |
| github.com/nats-io/nuid v1.0.1 | Apache License 2.0 |
| google.golang.org/protobuf v1.23.0 | BSD 3-Clause License |

2
vendor/modules.txt vendored
View File

@@ -4,8 +4,8 @@ github.com/klauspost/compress/s2
# github.com/minio/highwayhash v1.0.0
## explicit
github.com/minio/highwayhash
## explicit
# github.com/nats-io/jwt/v2 v2.0.0-20210107222814-18c5cc45d263
## explicit
github.com/nats-io/jwt/v2
# github.com/nats-io/nats.go v1.10.1-0.20210114001154-0a6b5f686ab3
## explicit