Commit Graph

4476 Commits

Author SHA1 Message Date
Ivan Kozlovic
9fee6c6997 Merge pull request #2203 from nats-io/fix_flappers
Fixed flappers
2021-05-11 08:47:48 -06:00
Matthias Hanel
6c6c4b9c04 Merge pull request #2204 from nats-io/mirror-dedupe
[added] check for mirror stream return error when  de dupe window is set
2021-05-10 20:47:03 -04:00
Matthias Hanel
f4251feb0f [added] check for mirror stream return error when de dupe window is set
Signed-off-by: Matthias Hanel <mh@synadia.com>
2021-05-10 19:57:17 -04:00
Ivan Kozlovic
25bf470363 Fixed flappers
Signed-off-by: Ivan Kozlovic <ivan@synadia.com>
2021-05-10 16:54:33 -06:00
Ivan Kozlovic
4ae9beddea Merge pull request #2189 from ripienaar/export_clientopts
Export the clientOpts structure
2021-05-10 13:51:57 -06:00
Derek Collison
09c4f5841c Bump version and skip test for now, will fix in followup PR.
Signed-off-by: Derek Collison <derek@nats.io>
2021-05-10 10:44:07 -07:00
Ivan Kozlovic
b828e01761 Merge pull request #2196 from nats-io/release_2_2_3
Release v2.2.3
v2.2.3
2021-05-07 17:30:45 -06:00
Ivan Kozlovic
ebe31008ad Release v2.2.3
Signed-off-by: Ivan Kozlovic <ivan@synadia.com>
2021-05-07 17:11:59 -06:00
Ivan Kozlovic
593305dbf6 Merge pull request #2195 from nats-io/stream_name_validate
Extend stream/consumer name validation to include more characters
2021-05-07 17:06:56 -06:00
Matthias Hanel
4355e393ea Merge pull request #2194 from nats-io/js-domains
[added] filter system requests by JS domain
2021-05-07 19:06:37 -04:00
Matthias Hanel
230128ed01 [added] filter system requests by JS domain
Signed-off-by: Matthias Hanel <mh@synadia.com>
2021-05-07 18:58:40 -04:00
Ivan Kozlovic
19e07f7b97 Extend stream/consumer name validation to include more characters
Signed-off-by: Ivan Kozlovic <ivan@synadia.com>
2021-05-07 16:50:29 -06:00
Derek Collison
346ce7539b Merge pull request #2193 from nats-io/filtered_interest
When dealing with filtered subjects do not assume the current state
2021-05-07 15:29:20 -07:00
Derek Collison
50bc1867bd When dealing with filtered subjects do not assume the current state as others can.
Signed-off-by: Derek Collison <derek@nats.io>
2021-05-07 15:20:19 -07:00
Derek Collison
26b9295591 2.2.3-beta.8
Signed-off-by: Derek Collison <derek@nats.io>
2021-05-07 14:21:13 -07:00
Derek Collison
9a517194a1 Merge pull request #2191 from nats-io/raft_catchup_snap
[FIXED] Raft groups could continually spin trying to catch up.
2021-05-07 14:20:37 -07:00
Derek Collison
4500f7889e For WorkQueues that have direct we need to make sure they have received the message before deleting.
Signed-off-by: Derek Collison <derek@nats.io>
2021-05-07 14:13:36 -07:00
Derek Collison
bd9172fb61 With WorkQueue policy streams that are mirrored or sourced need to only delete if no regular consumers.
Signed-off-by: Derek Collison <derek@nats.io>
2021-05-07 13:14:56 -07:00
Derek Collison
f74bb53c83 Remove debug
Signed-off-by: Derek Collison <derek@nats.io>
2021-05-07 12:21:35 -07:00
Derek Collison
70a2521f95 For interest or workqueue streams with ephemerals we need to not reduce replication to 1.
We need the consumer state on the stream leader.
Also if we can't find the store yet for a consumer fallback to calculate needsAck.

Signed-off-by: Derek Collison <derek@nats.io>
2021-05-07 12:07:27 -07:00
Derek Collison
95a9304ae7 Tweak timing
Signed-off-by: Derek Collison <derek@nats.io>
2021-05-07 12:07:27 -07:00
Ivan Kozlovic
3b15f98ed3 Merge pull request #2190 from ripienaar/domain_advisories
add domain in JS advisories
2021-05-07 11:52:15 -06:00
Ivan Kozlovic
b085738339 Merge pull request #2192 from nats-io/mqtt_domain
Don't need to store domain in mqttJSA structure
2021-05-07 11:47:32 -06:00
R.I.Pienaar
b5f846a719 add domain in JS advisories
Signed-off-by: R.I.Pienaar <rip@devco.net>
2021-05-07 19:35:46 +02:00
Ivan Kozlovic
7cd412d08d Don't need to store domain in mqttJSA structure
At the time where we need the domain to construct the session hash,
we have access to server options. So use that instead of storing
the domain in the internal mqtt structure.

Signed-off-by: Ivan Kozlovic <ivan@synadia.com>
2021-05-07 11:29:46 -06:00
Derek Collison
57395bba02 Fixed bug that could cause raft group to spin trying to catchup.
When a raft group was trying to catch up a consumer but the log is empty and we do have a snapshot but the requested sequence was the first sequence.

Signed-off-by: Derek Collison <derek@nats.io>
2021-05-07 09:13:18 -07:00
Derek Collison
7be6555334 Merge pull request #2187 from nats-io/interest_deadlock
[FIXED] Mirror/Source streams from work queues and a deadlock on interest streams.
2021-05-07 08:52:26 -07:00
Derek Collison
ceb4a86d57 Check for nil chan
Signed-off-by: Derek Collison <derek@nats.io>
2021-05-07 08:36:45 -07:00
R.I.Pienaar
5e06e5e232 Export the clientOpts structure
This structure is used in ClientAuthentication, an interface
designed to let 3rd parties extend the authentication mechanisms
of the server

In order to allow those 3rd parties to create unit tests, mocks etc
we need to export this structure so it's accessible externally

Signed-off-by: R.I.Pienaar <rip@devco.net>
2021-05-07 15:51:31 +02:00
Derek Collison
7715a5b30a 2.2.3-beta.7
Signed-off-by: Derek Collison <derek@nats.io>
2021-05-07 06:47:34 -07:00
Derek Collison
b6ba5cb4a5 Merge pull request #2188 from nats-io/perm_subjects
Detect if perm subjects have queue group qualifiers.
2021-05-07 06:46:33 -07:00
Derek Collison
32db711723 Detect if perm subjects have queue group qualifiers.
Signed-off-by: Derek Collison <derek@nats.io>
2021-05-07 06:27:43 -07:00
R.I.Pienaar
7f895f45ea Merge pull request #2186 from ripienaar/domain_tweaks
small tweaks to domains
2021-05-07 15:17:41 +02:00
Derek Collison
35a60289d9 Fixed mirror/source streams from work queues.
Fixed deadlock with no-ack consumers on interest retention streams.

Signed-off-by: Derek Collison <derek@nats.io>
2021-05-07 06:01:52 -07:00
R.I.Pienaar
cc9b6735a5 remove . from domain names
Signed-off-by: R.I.Pienaar <rip@devco.net>
2021-05-07 14:46:22 +02:00
R.I.Pienaar
0bc6ac2e14 small tweaks to domains
Signed-off-by: R.I.Pienaar <rip@devco.net>
2021-05-07 11:03:23 +02:00
Derek Collison
6ecfda8d9c 2.2.3-beta.6
Signed-off-by: Derek Collison <derek@nats.io>
2021-05-06 20:13:11 -07:00
Derek Collison
13f0f67465 Merge pull request #2185 from nats-io/bad_domain
Check for bad domain names
2021-05-06 20:12:15 -07:00
Derek Collison
c2fcc114a5 Update based on PR feedback, moved to validateOptions
Signed-off-by: Derek Collison <derek@nats.io>
2021-05-06 20:10:44 -07:00
Derek Collison
5a8791b1ef Check for bad domain names
Signed-off-by: Derek Collison <derek@nats.io>
2021-05-06 19:41:43 -07:00
Ivan Kozlovic
c7e043b264 Merge pull request #2171 from nats-io/islands
Add in formal support for multiple JetStream domains across leafnodes.
2021-05-06 20:30:48 -06:00
Ivan Kozlovic
a9a49cc2d5 MQTT make session streams domain aware
Signed-off-by: Ivan Kozlovic <ivan@synadia.com>
2021-05-06 20:02:00 -06:00
Derek Collison
2002ea1ee5 Another test fix
Signed-off-by: Derek Collison <derek@nats.io>
2021-05-06 18:46:32 -06:00
Derek Collison
50d5875aa3 Fix test
Signed-off-by: Derek Collison <derek@nats.io>
2021-05-06 18:46:32 -06:00
Derek Collison
0c74a850b5 Make storedir consistent with mix of flags etc 2021-05-06 18:46:32 -06:00
Derek Collison
ea5cddd590 Moved the JetStream logic for solicited leafnodes to after we receive first info.
We needed access to the other side's JetStream status.

Signed-off-by: Derek Collison <derek@nats.io>
2021-05-06 18:46:32 -06:00
Ivan Kozlovic
f5eb8bef89 Fixed some tests to manually close account resolver
Those tests don't really start the server, so the account resolver's
internal expiration routine would be left running.
Doing an explicit close solves this issue.

Signed-off-by: Ivan Kozlovic <ivan@synadia.com>
2021-05-06 18:46:32 -06:00
Derek Collison
8499376575 Add in support for JetStream domains.
This allows a domain to be set in the JetStream server block that sets a domain name.
Once set this signals that any leafnode connections should operate as separate JetStream domains.
Each domain <NAME> is accessible via "$JS.<NAME>.API.>", even when connected to the same domain.
Also for mixed mode you can set a jetstream block now that defines a domain but specifies "enabled: false".

Signed-off-by: Derek Collison <derek@nats.io>
2021-05-06 18:46:32 -06:00
Derek Collison
41ec9359fc Update client to released version
Signed-off-by: Derek Collison <derek@nats.io>
2021-05-06 18:46:32 -06:00
Derek Collison
bfd0e00271 Fix data race
Signed-off-by: Derek Collison <derek@nats.io>
2021-05-06 18:45:27 -06:00