mirror of
https://github.com/gogrlx/nats-server.git
synced 2026-04-02 03:38:42 -07:00
Fix data race in setStreamAssignment by ensuring JS lock held
Signed-off-by: Neil Twigg <neil@nats.io>
This commit is contained in:
@@ -747,6 +747,7 @@ func (mset *stream) streamAssignment() *streamAssignment {
|
||||
|
||||
func (mset *stream) setStreamAssignment(sa *streamAssignment) {
|
||||
var node RaftNode
|
||||
var peers []string
|
||||
|
||||
mset.mu.RLock()
|
||||
js := mset.js
|
||||
@@ -756,6 +757,7 @@ func (mset *stream) setStreamAssignment(sa *streamAssignment) {
|
||||
js.mu.RLock()
|
||||
if sa.Group != nil {
|
||||
node = sa.Group.node
|
||||
peers = sa.Group.Peers
|
||||
}
|
||||
js.mu.RUnlock()
|
||||
}
|
||||
@@ -771,7 +773,7 @@ func (mset *stream) setStreamAssignment(sa *streamAssignment) {
|
||||
// Set our node.
|
||||
mset.node = node
|
||||
if mset.node != nil {
|
||||
mset.node.UpdateKnownPeers(sa.Group.Peers)
|
||||
mset.node.UpdateKnownPeers(peers)
|
||||
}
|
||||
|
||||
// Setup our info sub here as well for all stream members. This is now by design.
|
||||
|
||||
Reference in New Issue
Block a user