Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[FIXED] Configuration Reload: possible panic if done during Shutdown (#…
…4666) If a configuration reload is issued as the server is being shutdown, we could get 2 different panics. One due to JetStream if an account is JetStream enabled, and one due to the send to a go channel that has been closed. ``` panic: send on closed channel [recovered] panic: send on closed channel goroutine 440 [running]: testing.tRunner.func1.2({0x1038d58e0, 0x1039e1270}) /usr/local/go/src/testing/testing.go:1545 +0x274 testing.tRunner.func1() /usr/local/go/src/testing/testing.go:1548 +0x448 panic({0x1038d58e0?, 0x1039e1270?}) /usr/local/go/src/runtime/panic.go:920 +0x26c github.com/nats-io/nats-server/v2/server.(*Server).reloadAuthorization(0xc00024fb00) /Users/ik/dev/go/src/github.com/nats-io/nats-server/server/reload.go:1998 +0x788 github.com/nats-io/nats-server/v2/server.(*Server).applyOptions(0xc00024fb00, 0xc00021dc00, {0xc00038e4e0, 0x2, 0xc00021dc28?}) /Users/ik/dev/go/src/github.com/nats-io/nats-server/server/reload.go:1746 +0x2b8 github.com/nats-io/nats-server/v2/server.(*Server).reloadOptions(0xc000293500?, 0xc000118a80, 0xc000293500) /Users/ik/dev/go/src/github.com/nats-io/nats-server/server/reload.go:1121 +0x178 github.com/nats-io/nats-server/v2/server.(*Server).ReloadOptions(0xc00024fb00, 0xc000293500) /Users/ik/dev/go/src/github.com/nats-io/nats-server/server/reload.go:1060 +0x368 github.com/nats-io/nats-server/v2/server.(*Server).Reload(0xc00024fb00) /Users/ik/dev/go/src/github.com/nats-io/nats-server/server/reload.go:995 +0x104 ``` and ``` panic: runtime error: invalid memory address or nil pointer dereference [signal SIGSEGV: segmentation violation code=0x2 addr=0x0 pc=0x10077b224] goroutine 8 [running]: testing.tRunner.func1.2({0x101351640, 0x101b7d2a0}) /usr/local/go/src/testing/testing.go:1545 +0x274 testing.tRunner.func1() /usr/local/go/src/testing/testing.go:1548 +0x448 panic({0x101351640?, 0x101b7d2a0?}) /usr/local/go/src/runtime/panic.go:920 +0x26c github.com/nats-io/nats-server/v2/server.(*Account).EnableJetStream(0xc00020fb80, 0xc000220240) /Users/ivan/dev/go/src/github.com/nats-io/nats-server/server/jetstream.go:1045 +0xa4 github.com/nats-io/nats-server/v2/server.(*Server).configJetStream(0xc000226d80, 0xc00020fb80) /Users/ivan/dev/go/src/github.com/nats-io/nats-server/server/jetstream.go:707 +0xdc github.com/nats-io/nats-server/v2/server.(*Server).configAllJetStreamAccounts(0xc000226d80) /Users/ivan/dev/go/src/github.com/nats-io/nats-server/server/jetstream.go:768 +0x2b0 github.com/nats-io/nats-server/v2/server.(*Server).enableJetStreamAccounts(0xc000226d80?) /Users/ivan/dev/go/src/github.com/nats-io/nats-server/server/jetstream.go:637 +0x128 github.com/nats-io/nats-server/v2/server.(*Server).reloadAuthorization(0xc000226d80) /Users/ivan/dev/go/src/github.com/nats-io/nats-server/server/reload.go:2039 +0x93c github.com/nats-io/nats-server/v2/server.(*Server).applyOptions(0xc000226d80, 0xc000171c50, {0xc000074600, 0x2, 0xc000171c78?}) /Users/ivan/dev/go/src/github.com/nats-io/nats-server/server/reload.go:1746 +0x2b8 github.com/nats-io/nats-server/v2/server.(*Server).reloadOptions(0xc000276000?, 0xc0000a6000, 0xc000276000) /Users/ivan/dev/go/src/github.com/nats-io/nats-server/server/reload.go:1121 +0x178 github.com/nats-io/nats-server/v2/server.(*Server).ReloadOptions(0xc000226d80, 0xc000276000) /Users/ivan/dev/go/src/github.com/nats-io/nats-server/server/reload.go:1060 +0x368 github.com/nats-io/nats-server/v2/server.(*Server).Reload(0xc000226d80) /Users/ivan/dev/go/src/github.com/nats-io/nats-server/server/reload.go:995 +0x104 ``` Signed-off-by: Ivan Kozlovic <[email protected]>
- Loading branch information