Commit Graph

2111 Commits

Author SHA1 Message Date
Derek Collison
7fb22206f5 Allow AckNxt to also process a next request struct
Signed-off-by: Derek Collison <derek@nats.io>
2020-10-20 16:45:54 -07:00
Derek Collison
c2b8de377c Formalize requests for next msg, support NoWait and Expires
Signed-off-by: Derek Collison <derek@nats.io>
2020-10-20 16:25:19 -07:00
Matthias Hanel
2144f01f21 Adding support and an option for removal of jwt
To enable in full mode configure allow_delete: true
When enabled the file will be renamed to allow for manual restore.

In cache mode it will be enabled by default.
When enabled files will be deleted.

Signed-off-by: Matthias Hanel <mh@synadia.com>
2020-10-20 16:45:11 -04:00
Derek Collison
a37f53e236 Updated tests for addition of ErrNoResponders
Signed-off-by: Derek Collison <derek@nats.io>
2020-10-19 20:11:52 -07:00
Derek Collison
610d2d21b7 More robust waiting queue for pull mode consumers
Signed-off-by: Derek Collison <derek@nats.io>
2020-10-19 19:51:46 -07:00
Ivan Kozlovic
ced31507a4 Bump version to 2.2.0-beta.26
Signed-off-by: Ivan Kozlovic <ivan@synadia.com>
2020-10-19 17:07:51 -06:00
Matthias Hanel
f83280ccaf Fixed account update issue where signing key (and thus issuer) changes
Fix error and remove print from test.

Signed-off-by: Matthias Hanel <mh@synadia.com>
2020-10-19 18:42:10 -04:00
Matthias Hanel
243361ac9a Incorporating readability suggestions
Signed-off-by: Matthias Hanel <mh@synadia.com>
2020-10-19 17:33:02 -04:00
Matthias Hanel
5a5dbb9dcd Fix nil deref when account is in bad/incomplete state
Signed-off-by: Matthias Hanel <mh@synadia.com>
2020-10-19 16:38:42 -04:00
Ivan Kozlovic
d6e420a996 Merge pull request #1652 from nats-io/fix_leafnode_accept_panic
[FIXED] Possible panic when server accepts TLS leafnode connection
2020-10-19 11:09:46 -06:00
Ivan Kozlovic
9bd088e0b9 Make it a small function
Signed-off-by: Ivan Kozlovic <ivan@synadia.com>
2020-10-19 10:50:20 -06:00
Ivan Kozlovic
3b8d00e046 [FIXED] Possible panic when server accepts TLS leafnode connection
Signed-off-by: Ivan Kozlovic <ivan@synadia.com>
2020-10-19 10:29:32 -06:00
R.I.Pienaar
ec606ebed2 add type hints num accounts message
Signed-off-by: R.I.Pienaar <rip@devco.net>
2020-10-19 12:01:11 +02:00
Derek Collison
923335e52d Merge pull request #1644 from nats-io/map
Traffic shaping and full wildcard support for streams and services exports/imports
2020-10-17 16:19:15 -07:00
Derek Collison
4af434e586 Allow mapping destinations to be parsed as singles and not force array syntax
Signed-off-by: Derek Collison <derek@nats.io>
2020-10-17 08:21:02 -07:00
Derek Collison
cea8a0113d Use separate lock to pull cluster name for mapping
Signed-off-by: Derek Collison <derek@nats.io>
2020-10-17 07:46:48 -07:00
Derek Collison
5f5ceb4668 Allow cluster filters for mappings, changed accountz for mappings
Signed-off-by: Derek Collison <derek@nats.io>
2020-10-16 16:53:14 -07:00
Derek Collison
047600750a Make sure mappings to 0% turn off all traffic
Signed-off-by: Derek Collison <derek@nats.io>
2020-10-16 14:23:47 -07:00
Derek Collison
04ffe3b00e Allow mapping destinations that introduce message loss (debugging, chaos monkey)
Signed-off-by: Derek Collison <derek@nats.io>
2020-10-15 20:03:44 -07:00
Derek Collison
d0201d8b15 Added support for mappings in Accountz
Signed-off-by: Derek Collison <derek@nats.io>
2020-10-15 19:14:58 -07:00
Derek Collison
4402a9cca0 Snapshot account but update at end of each readloop
Signed-off-by: Derek Collison <derek@nats.io>
2020-10-15 15:52:43 -07:00
Derek Collison
e225acd179 Fix race accessing c.acc checking for mappings
Signed-off-by: Derek Collison <derek@nats.io>
2020-10-15 14:02:39 -07:00
Waldemar Quevedo
33a9391519 Fix typo in websocket err message
Signed-off-by: Waldemar Quevedo <wally@synadia.com>
2020-10-15 13:42:22 -07:00
Derek Collison
96bf818558 Updates based on PR feedback
Signed-off-by: Derek Collison <derek@nats.io>
2020-10-15 13:04:04 -07:00
Matthias Hanel
2bfb8b1227 [Fixed] revocation check for activations used current time instead of jwt issue time
Signed-off-by: Matthias Hanel <mh@synadia.com>
2020-10-15 15:36:50 -04:00
Derek Collison
6faf07d583 Account subject mappings and full wildcard support for exports/imports
The mappings enable traffic shaping functionality.
Also added a subject transform which can match any subject and transform to a new one, even re-ordering partial wildcards.

Signed-off-by: Derek Collison <derek@nats.io>
2020-10-15 10:26:25 -07:00
R.I.Pienaar
f2106ab9e4 fix npe for offsets larger than items
Signed-off-by: R.I.Pienaar <rip@devco.net>
2020-10-15 11:27:31 +02:00
Ivan Kozlovic
26cd1f99ab [FIXED] Stream's subscription propagation issue with gateways
When creating shadow subscriptions for import streams, we were
not invoking code for gateway subscription accounting, which means
that when the account (for leafnodes) was switched to interest
only, those shadow subscriptions were not sent.

Signed-off-by: Ivan Kozlovic <ivan@synadia.com>
2020-10-13 18:10:27 -06:00
Matthias Hanel
60c8cbd1f2 Fixed crash on non existing directory
Signed-off-by: Matthias Hanel <mh@synadia.com>
2020-10-13 01:30:03 -04:00
Matthias Hanel
8d8f6480d7 Incorporating comments
Signed-off-by: Matthias Hanel <mh@synadia.com>
2020-10-12 19:21:32 -04:00
Matthias Hanel
bb63fd5f40 Adding list/delete/update operations for jwt stored by nats-resolver
Update already existed scoped by account, this exposes update without account.
List returns a list of all stored accounts.
Delete deletes accounts.
Fix a crash on startup with non existing directory.

Signed-off-by: Matthias Hanel <mh@synadia.com>
2020-10-12 18:07:07 -04:00
Matthias Hanel
db44b589fc Skip revocation check if the client has no jwt and is therefore internal
Signed-off-by: Matthias Hanel <mh@synadia.com>
2020-10-09 14:41:32 -04:00
Ivan Kozlovic
13df1a55fd Changed warning message
Signed-off-by: Ivan Kozlovic <ivan@synadia.com>
2020-10-09 09:36:30 -06:00
Ivan Kozlovic
df9d5f5fd9 Accepting route warns if remote server has same name
Signed-off-by: Ivan Kozlovic <ivan@synadia.com>
2020-10-08 17:59:33 -06:00
Ivan Kozlovic
9b6385d6e7 [CHANGED] Default TLS and Auth timeout
The default TLS timeout has been bumped to 2 seconds.
The default Auth timeout is now 2 seconds, but if TLS config
is present, it is equal to TLS timeout (possibly default value) + 1s.

Signed-off-by: Ivan Kozlovic <ivan@synadia.com>
2020-10-08 16:15:30 -06:00
Matthias Hanel
387e1e1ee4 [Fixed] revocation check used current time instead of jwt issue time
Also empty revoked keys once account jwt has no revocations.

Signed-off-by: Matthias Hanel <mh@synadia.com>
2020-10-06 21:45:34 -04:00
Matthias Hanel
4ff7b280f4 Avoid unnecessary CONNS subscription
Signed-off-by: Matthias Hanel <mh@synadia.com>
2020-10-05 18:25:51 -04:00
Derek Collison
9ad408e0b3 Use closed variable on consumer, don't check consumer sequences
Signed-off-by: Derek Collison <derek@nats.io>
2020-10-02 16:21:23 -07:00
Derek Collison
8a9f6eaf42 Additional fixes to interest retention based streams and offline durables with redelivery.
Signed-off-by: Derek Collison <derek@nats.io>
2020-10-02 12:58:59 -07:00
Derek Collison
a75be04b0a Various fixes for this PR.
- Fix for updating delivery subject and adjusting next delivery sequences.
- When acking explicitly but out of order, need to make sure we set floor correctly.
- Only update ack floors on an ack if the message is present.
- Fix for needAck for explicitAck out of order consumers detecting if message has been acked.
- Fix for race not locking stream when checking interest during stop.
- Fix for filestore determing if a message block still has a message. Added check to first sequence as well as cache.
- Some additions to the original test.

Signed-off-by: Derek Collison <derek@nats.io>
2020-10-01 21:24:40 -07:00
Ivan Kozlovic
7b03edb792 Bump version
Signed-off-by: Ivan Kozlovic <ivan@synadia.com>
2020-09-29 19:23:12 -06:00
Matthias Hanel
08e37e0d94 Updated jwt library and check (account/token) issuer prior to jwt Validate
Signed-off-by: Matthias Hanel <mh@synadia.com>
2020-09-29 21:03:40 -04:00
Ivan Kozlovic
0c804f5ffb Moving TestQueueAutoUnsubscribe to norace_test.go
This test has been found to cause TestAccountNATSResolverFetch to
fail on macOS. We did not find the exact reason yet, but it seem
that with `-race`, the queue auto-unsub test (that creates 2,000
queue subs and sends 1,000 messages) cause mem to grow to 256MB
(which we know -race is memory hungry) and that may be causing
interactions with the account resolver test.

For now, moving it to norace_test.go, which consumes much less
memory (25MB) and anyway is a better place since it would stress
better the "races" of having a queue sub being unsubscribed while
messages were inflight to this queue sub.

Signed-off-by: Ivan Kozlovic <ivan@synadia.com>
2020-09-29 18:06:16 -06:00
Matthias Hanel
01453e03cd Add defer srv.Shutdown() where manual shutdown was done
Signed-off-by: Matthias Hanel <mh@synadia.com>
2020-09-29 15:54:20 -04:00
Matthias Hanel
4e055d7b72 Fixing test race condition
Signed-off-by: Matthias Hanel <mh@synadia.com>
2020-09-29 14:36:04 -04:00
Matthias Hanel
f3e6cd12ec Adding fetch on missing jwt of full nats based resolver
Full nats based resolver sync within a cluster.
This functionality addresses syncing between cluster.

Fixing deadlock when more than one server responds to lookup.
Fixing crash when shutdown and pack happen at the same time.
2020-09-29 14:36:04 -04:00
Ivan Kozlovic
3d00001e21 Merge pull request #1617 from nats-io/conns-event
Fix event ordering issue caused by re-locking
2020-09-29 11:53:54 -06:00
Matthias Hanel
dcb1f6ff01 Avoid blocking when holding account lock.
Signed-off-by: Matthias Hanel <mh@synadia.com>
2020-09-29 13:15:45 -04:00
Ivan Kozlovic
3977ea04f5 Fixed possible panic on consumer.Delete() during server Shutdown()
The panic was caused by the closing of an already closed Go channel.
The Delete() relied on the consumer's mset being nil to consider
the consumer already closed. However, the consumer's mset is set
to nil after invoking sendDeleteAdvisoryLocked() which internally
invokes sendAdvisory() which releases/reacquires the consumer lock.
This left an open door for a race to occur and Delete() to be
invoked twice on the same consumer.

Moving setting the consumer's mset to nil too early would prevent
the sendAdvisory() to actually do its job. We could pass the mset
to sendAvisory(), but a simpler approach is to simply use a "closed"
boolean on the Consumer object that is set to true at the beginning
of the Delete() function.

Resolves #1621

Signed-off-by: Ivan Kozlovic <ivan@synadia.com>
2020-09-29 10:01:47 -06:00
Derek Collison
7f44d075f7 Merge pull request #1601 from ripienaar/skip_ack_on_acknxt
Do not ack to AckNxt
2020-09-28 17:19:35 -07:00