Ivan Kozlovic
38bbc6cb72
Release v2.8.0
...
Signed-off-by: Ivan Kozlovic <ivan@synadia.com >
2022-04-18 16:21:31 -06:00
Ivan Kozlovic
ddd31b1988
Merge pull request #3022 from LaurensVergote/Windows
...
Allow nats-server to run as system user on Windows
2022-04-18 14:33:32 -06:00
Ivan Kozlovic
ca63b206f1
Bump version to 2.8.0-beta.23
...
Signed-off-by: Ivan Kozlovic <ivan@synadia.com >
2022-04-18 14:04:42 -06:00
Ivan Kozlovic
6d71937ba7
Merge pull request #3053 from nats-io/js_add_file_names
...
[IMPROVED] JetStream: add file names for invalid checksums
2022-04-18 14:00:15 -06:00
xieyuschen
322115be31
[fixed] On config reload js got disabled, when previously set via command line arg
...
fixes #3003
2022-04-18 15:58:10 -04:00
Ivan Kozlovic
af1a80d7c4
Merge pull request #3047 from nats-io/move-back
...
If we moved a stream back to a cluster we were once at, the stream would be empty.
2022-04-18 13:46:05 -06:00
Ivan Kozlovic
2659b30113
[IMPROVED] JetStream: add file names for invalid checksums
...
On restart, we report when we find error in checksums, but we
did not report the name of the file.
Signed-off-by: Ivan Kozlovic <ivan@synadia.com >
2022-04-18 13:35:08 -06:00
Ivan Kozlovic
1178b4ced7
Merge pull request #3052 from nats-io/js_sources_issues
...
[FIXED] JetStream: some stream SOURCE issues
2022-04-18 13:15:52 -06:00
Ivan Kozlovic
a78ccdcb2f
[FIXED] JetStream: some stream SOURCE issues
...
- Possibly missing some early messages from the sourced stream
- In some cancel situations, the processing of sourced messages
would not longer work
Signed-off-by: Ivan Kozlovic <ivan@synadia.com >
2022-04-18 12:42:16 -06:00
Derek Collison
656a9534a5
Bump flow control window back up.
...
Signed-off-by: Derek Collison <derek@nats.io >
2022-04-18 05:33:20 -07:00
Matthias Hanel
79b4374d01
[Fixed] limits enforcement issues ( #3046 )
...
* [Fixed] limits enforcement issues
stream create had checks that stream restore did not have.
Moved code into commonly used function checkStreamCfg.
Also introduced (cluster/non clustered) StreamLimitsCheck functions to
perform checks specific to clustered /non clustered data structures.
Checking for valid stream config and limits/reservations before
receiving all the data. Now fails the request right away.
Added a jetstream limit "max_request_batch" to limit fetch batch size
Shortened max name length from 256 to 255, more common file name limit
Added check for loop in cyclic source stream configurations
features related to limits
Signed-off-by: Matthias Hanel <mh@synadia.com >
2022-04-18 01:53:48 -04:00
Derek Collison
b3fe3037c0
Bump to version 2.8.0-beta.22
...
Signed-off-by: Derek Collison <derek@nats.io >
2022-04-17 21:08:50 -07:00
Derek Collison
19392ceebb
If we moved a stream back to a cluster we were once at, the stream would appear to have no messages.
...
The old raft node assignment would prevent proper catchup.
Signed-off-by: Derek Collison <derek@nats.io >
2022-04-17 20:36:18 -07:00
Ivan Kozlovic
fd5cbdc940
Merge pull request #3045 from nats-io/js_cons_timers_cleanup
...
Cleanup timers on consumer leader change
2022-04-16 14:19:40 -06:00
Ivan Kozlovic
eb4856e4a7
Cleanup timers on consumer leader change
...
Signed-off-by: Ivan Kozlovic <ivan@synadia.com >
2022-04-16 13:37:46 -06:00
Matthias Hanel
7752a5becc
Fixed mixed mode server without JS dropping js export on jwt update ( #3044 )
...
* Fixed mixed mode server without JS dropping JS export on jwt update
Signed-off-by: Matthias Hanel <mh@synadia.com >
2022-04-16 15:09:36 -04:00
Derek Collison
ad1ced63e6
Bump to 2.8.0-beta.20
...
Signed-off-by: Derek Collison <derek@nats.io >
2022-04-16 12:07:12 -07:00
Derek Collison
4aaea8e4c4
Improvements to move semantics.
...
Signed-off-by: Derek Collison <derek@nats.io >
2022-04-16 07:55:05 -07:00
Derek Collison
55f8982e33
Fix flapping test
...
Signed-off-by: Derek Collison <derek@nats.io >
2022-04-16 05:08:12 -07:00
Ivan Kozlovic
c25b08a178
Change "server limit" to "system limit"
...
Updated tests accordingly.
Signed-off-by: Ivan Kozlovic <ivan@synadia.com >
2022-04-15 18:38:42 -06:00
Ivan Kozlovic
fc873c6f2f
Return limit in consumer max_ack_pending limit exceeded
...
- Updated tests that were checking for the error to include the limit
- Moved some tests above the benchmark ones
Signed-off-by: Ivan Kozlovic <ivan@synadia.com >
2022-04-15 18:23:25 -06:00
Ivan Kozlovic
b9ed54b68f
Bump to 2.8.0-beta.19
...
Signed-off-by: Ivan Kozlovic <ivan@synadia.com >
2022-04-15 14:40:08 -06:00
Derek Collison
c9cb27228e
Merge pull request #3041 from nats-io/mirror-move
...
Raft improvements
2022-04-15 13:38:53 -07:00
Derek Collison
d5ed5b1d92
fix
...
Signed-off-by: Derek Collison <derek@nats.io >
2022-04-15 13:38:12 -07:00
Derek Collison
2a8b123706
Don't quickly declare lost quorum after scale up
...
Signed-off-by: Derek Collison <derek@nats.io >
2022-04-15 13:28:34 -07:00
Derek Collison
3d9fdff315
Protect against no cluster
...
Signed-off-by: Derek Collison <derek@nats.io >
2022-04-15 13:24:55 -07:00
Ivan Kozlovic
aa23a91938
Fix test that should have been fixed following FC tweak
...
Signed-off-by: Ivan Kozlovic <ivan@synadia.com >
2022-04-15 13:24:55 -07:00
Ivan Kozlovic
114987f9ea
Add catchup messages limit that was removed
...
Need to also limit the number of outstanding messages during a
catchup. It was removed in PR #3029
Signed-off-by: Ivan Kozlovic <ivan@synadia.com >
2022-04-15 14:06:41 -06:00
Derek Collison
10c877d942
Make sure if we recreate something after deleting that we do not wipe valid state
...
Signed-off-by: Derek Collison <derek@nats.io >
2022-04-15 12:22:10 -07:00
Derek Collison
12730af5c2
Make sure mirror re-syncs after origin is moved.
...
Speed up mirror and sources heartbeats.
Signed-off-by: Derek Collison <derek@nats.io >
2022-04-15 07:01:55 -07:00
Ivan Kozlovic
a6b62f61a7
Fix test that should have been fixed following FC tweak
...
Signed-off-by: Ivan Kozlovic <ivan@synadia.com >
2022-04-14 18:06:25 -06:00
Ivan Kozlovic
0e841d4acf
Tweak ordered consumer flow control and bump to beta.18
...
Signed-off-by: Ivan Kozlovic <ivan@synadia.com >
2022-04-14 17:43:43 -06:00
Ivan Kozlovic
09609a4d63
Bump to 2.8.0-beta.17
...
Signed-off-by: Ivan Kozlovic <ivan@synadia.com >
2022-04-14 11:28:40 -06:00
Ivan Kozlovic
4e7c72ab33
Update based on code review
...
Signed-off-by: Ivan Kozlovic <ivan@synadia.com >
2022-04-14 11:00:33 -06:00
Ivan Kozlovic
bd61d51a1c
[IMPROVED] JetStream: reduce unnecessary leader election
...
- Wait of some sort of routing to be in place before starting
the raft run loop
- Remove use of lock in apiDispatch that was not necessary but
could have cause a route to block, causing memory growth, etc..
Unrelated rename of some tests so that they start with TestJetStream
and TestJetStreamCluster for cluster tests, fixed some flappers
and ensure that tests that change RAFT timeouts put them back
to default values on exit.
Signed-off-by: Ivan Kozlovic <ivan@synadia.com >
2022-04-14 10:47:14 -06:00
Derek Collison
9748925f13
Improvements to stream and consumer move.
...
During elected stepdown and transfer allow the new leader to take over before we stepdown.
We could receive a leader change, so make sure to also check migration state.
Signed-off-by: Derek Collison <derek@nats.io >
2022-04-14 07:27:29 -07:00
Matthias Hanel
ec3f9258af
[Adding] max_ha_assets to limit placement on server with more ha assets ( #3032 )
...
* [Adding] max_ha_assets to limit placement on server with more ha assets
server running more than max_ha_assets #raft nodes will not be used to
place new streams and fail if not enough free server can be found.
Durable Consumer creation on such server will fail as their peer size is
bound to the same set as their stream.
This also avoids updating placement where no new placement is needed.
This is the case when, on update, placement tags get removed.
Signed-off-by: Matthias Hanel <mh@synadia.com >
2022-04-14 01:53:41 -04:00
Jaime Piña
0dabed2ea3
Re-enable placement tests ( #3034 )
2022-04-13 13:44:24 -07:00
Derek Collison
1c0112a476
Bump to 2.8.0-beta.16
...
Signed-off-by: Derek Collison <derek@nats.io >
2022-04-13 12:32:55 -07:00
Derek Collison
cd8aeab4ea
Bump catchup flow control max outstanding bytes
...
Signed-off-by: Derek Collison <derek@nats.io >
2022-04-13 12:05:21 -07:00
Ivan Kozlovic
c1a17e890a
Fixed JetStream flapper
...
Signed-off-by: Ivan Kozlovic <ivan@synadia.com >
2022-04-13 09:55:24 -06:00
Ivan Kozlovic
c92dc0dc5b
[FIXED] LeafNode interest propagation with imports/exports
...
When using subscriptions through import/exports, the server with
a leafnode connection would properly send the interest over, but
if the connection is recreated, this would not happen.
In case of JetStream where that happens under the cover, message
flow would stop after the leafnode restart because the subscriptions
would be created on recovery of the JetStream assets but *before*
the LeafNode connection could be established.
Resolves #3024
Resolves #3027
Resolves #3009
Signed-off-by: Ivan Kozlovic <ivan@synadia.com >
2022-04-13 09:55:24 -06:00
Ivan Kozlovic
1ba617bba0
Fixed data race with RAFT node election timer
...
Got this race:
```
==================
WARNING: DATA RACE
Read at 0x00c001c880e8 by goroutine 342:
github.com/nats-io/nats-server/v2/server.(*raft).resetElect()
/Users/ivan/dev/go/src/github.com/nats-io/nats-server/server/raft.go:1525 +0x44
github.com/nats-io/nats-server/v2/server.(*raft).resetElectionTimeout()
/Users/ivan/dev/go/src/github.com/nats-io/nats-server/server/raft.go:1520 +0xa4
github.com/nats-io/nats-server/v2/server.(*raft).handleAppendEntry()
/Users/ivan/dev/go/src/github.com/nats-io/nats-server/server/raft.go:2537 +0x12e
github.com/nats-io/nats-server/v2/server.(*raft).handleAppendEntry-fm()
/Users/ivan/dev/go/src/github.com/nats-io/nats-server/server/raft.go:2525 +0xcc
...
Previous write at 0x00c001c880e8 by goroutine 587:
github.com/nats-io/nats-server/v2/server.(*raft).resetElect()
/Users/ivan/dev/go/src/github.com/nats-io/nats-server/server/raft.go:1526 +0x113
github.com/nats-io/nats-server/v2/server.(*raft).resetElectionTimeout()
/Users/ivan/dev/go/src/github.com/nats-io/nats-server/server/raft.go:1520 +0xa4
github.com/nats-io/nats-server/v2/server.(*Server).startRaftNode()
/Users/ivan/dev/go/src/github.com/nats-io/nats-server/server/raft.go:484 +0x20d1
github.com/nats-io/nats-server/v2/server.(*jetStream).createRaftGroup()
/Users/ivan/dev/go/src/github.com/nats-io/nats-server/server/jetstream_cluster.go:1497 +0x9ed
github.com/nats-io/nats-server/v2/server.(*jetStream).processClusterCreateConsumer()
/Users/ivan/dev/go/src/github.com/nats-io/nats-server/server/jetstream_cluster.go:3063 +0xba4
...
==================
WARNING: DATA RACE
Read at 0x00c0006671f0 by goroutine 342:
time.(*Timer).Stop()
/usr/local/go/src/time/sleep.go:78 +0x84
github.com/nats-io/nats-server/v2/server.(*raft).resetElect()
/Users/ivan/dev/go/src/github.com/nats-io/nats-server/server/raft.go:1528 +0x58
github.com/nats-io/nats-server/v2/server.(*raft).resetElectionTimeout()
/Users/ivan/dev/go/src/github.com/nats-io/nats-server/server/raft.go:1520 +0xa4
github.com/nats-io/nats-server/v2/server.(*raft).handleAppendEntry()
/Users/ivan/dev/go/src/github.com/nats-io/nats-server/server/raft.go:2537 +0x12e
github.com/nats-io/nats-server/v2/server.(*raft).handleAppendEntry-fm()
/Users/ivan/dev/go/src/github.com/nats-io/nats-server/server/raft.go:2525 +0xcc
...
Previous write at 0x00c0006671f0 by goroutine 587:
time.NewTimer()
/usr/local/go/src/time/sleep.go:92 +0xb3
github.com/nats-io/nats-server/v2/server.(*raft).resetElect()
/Users/ivan/dev/go/src/github.com/nats-io/nats-server/server/raft.go:1526 +0x104
github.com/nats-io/nats-server/v2/server.(*raft).resetElectionTimeout()
/Users/ivan/dev/go/src/github.com/nats-io/nats-server/server/raft.go:1520 +0xa4
github.com/nats-io/nats-server/v2/server.(*Server).startRaftNode()
/Users/ivan/dev/go/src/github.com/nats-io/nats-server/server/raft.go:484 +0x20d1
github.com/nats-io/nats-server/v2/server.(*jetStream).createRaftGroup()
/Users/ivan/dev/go/src/github.com/nats-io/nats-server/server/jetstream_cluster.go:1497 +0x9ed
...
```
Looked at all places where resetElect() or resetElectionTimeout() was invoked without
being protected by the raft's lock and added it.
Signed-off-by: Ivan Kozlovic <ivan@synadia.com >
2022-04-12 18:56:28 -06:00
Ivan Kozlovic
37a3403585
Bump to version 2.8.0-beta.15
...
Signed-off-by: Ivan Kozlovic <ivan@synadia.com >
2022-04-12 17:50:21 -06:00
Derek Collison
3c0bced76e
Move test to no race, rename others
...
Signed-off-by: Derek Collison <derek@nats.io >
2022-04-12 16:23:36 -07:00
Derek Collison
3bd8ee845e
Fix description for Wipe
...
Signed-off-by: Derek Collison <derek@nats.io >
2022-04-12 16:18:38 -07:00
Derek Collison
04db6b0935
Only wipe on certain errors and always resume
...
Signed-off-by: Derek Collison <derek@nats.io >
2022-04-12 15:50:37 -07:00
Ivan Kozlovic
50c3986863
[FIXED] JetStream stream catchup issues
...
- A stream could become leader when it should not, causing
messages to be lost.
- A catchup could stall because the server sending data
could bail out of the runCatchup routine but still send
the EOF signal.
- Deadlock with monitoring of Jsz
Signed-off-by: Ivan Kozlovic <ivan@synadia.com >
Signed-off-by: Derek Collison <derek@nats.io >
Signed-off-by: Ivan Kozlovic <ivan@synadia.com >
2022-04-12 16:05:12 -06:00
Derek Collison
5dfcc5e934
Fix for flapping WAL test
...
Signed-off-by: Derek Collison <derek@nats.io >
2022-04-11 22:50:25 -07:00
Derek Collison
ce650937f0
Don't set domain here
...
Signed-off-by: Derek Collison <derek@nats.io >
2022-04-11 20:52:22 -07:00