Commit Graph

2295 Commits

Author SHA1 Message Date
Derek Collison
493425e8b2 Noticed stream snapshots were being processed on recovery causing high cpu usage and memory usage.
Also made consumer Created() UTC.

Signed-off-by: Derek Collison <derek@nats.io>
2021-02-04 12:29:07 -08:00
Derek Collison
74b1e1f72c Change the way we decide to compact on purge op replay
Signed-off-by: Derek Collison <derek@nats.io>
2021-02-04 09:45:51 -08:00
Derek Collison
483b07a794 Make sure old purge did what it was supposed to
Signed-off-by: Derek Collison <derek@nats.io>
2021-02-04 07:49:30 -08:00
Derek Collison
c49e3247bb Purge operations would be replayed on restart regardless if they had already been processed.
Signed-off-by: Derek Collison <derek@nats.io>
2021-02-04 07:04:50 -08:00
Derek Collison
d71c845a92 Bump Version [ci skip]
Signed-off-by: Derek Collison <derek@nats.io>
2021-02-03 20:14:13 -08:00
Ivan Kozlovic
6eeb9d2361 Fixed some issues with JS consumers
- Should check if there is interest at top of deleteNotActive timer
callback.
- Use RLock/RUnlock for no interest check
- Remove some checks in cluster mode regarding internal stream/consumers

Signed-off-by: Ivan Kozlovic <ivan@synadia.com>
2021-02-03 20:12:06 -07:00
Derek Collison
01ad02ccae Merge pull request #1883 from nats-io/supercluster
First pass at supercluster enablement.
2021-02-03 19:56:36 -07:00
Derek Collison
a1e0f7dc1a First pass at supercluster enablement.
This allows metacontrollers to span superclusters. Also includes placement directives for streams. By default they select the request origin cluster.

Signed-off-by: Derek Collison <derek@nats.io>
2021-02-03 17:28:13 -08:00
Derek Collison
625e6859a3 Only respond for delete and purge if leader and not recovering.
Signed-off-by: Derek Collison <derek@nats.io>
2021-02-03 16:36:32 -08:00
Derek Collison
1c9258f91c Handle msg delete and stream purge for R=1
Signed-off-by: Derek Collison <derek@nats.io>
2021-02-03 16:30:03 -08:00
Derek Collison
6baf69889f Allow NoErase option to deleting a message through the formal API
Signed-off-by: Derek Collison <derek@nats.io>
2021-02-03 14:12:27 -08:00
Derek Collison
eb429022e8 There was a bug when a messages was erased and we expired the cache we would not properly re-index.
We need to clear the erase bit to properly set fseq in the cache structure.

Signed-off-by: Derek Collison <derek@nats.io>
2021-02-03 13:58:13 -08:00
Derek Collison
bbada32461 Bump Version
Signed-off-by: Derek Collison <derek@nats.io>
2021-02-02 11:48:55 -08:00
Derek Collison
c9e1cbd571 Modified jetstream varz information
Signed-off-by: Derek Collison <derek@nats.io>
2021-02-02 08:35:35 -08:00
Derek Collison
5fca2be35f Merge pull request #1875 from nats-io/jsc-remove
Removing peers from streams and consumers and stepdown functionality
2021-02-02 09:28:03 -07:00
Derek Collison
a8982c040f Suppress lost quorum processing if to close to raft node creation time.
Signed-off-by: Derek Collison <derek@nats.io>
2021-02-02 06:27:07 -08:00
Derek Collison
f3703a4b85 Make sure audit events have the proper subject regardless of where processed.
Signed-off-by: Derek Collison <derek@nats.io>
2021-02-02 05:03:20 -08:00
Derek Collison
e5c1d65fff Added in JS disable per server on reload. Also removing peerw from a stream and leader stepdown for streams and consumers.
Various bug fixes, stability improvments.

Signed-off-by: Derek Collison <derek@nats.io>
2021-02-01 19:39:08 -08:00
Matthias Hanel
3799b90011 [Adding] support for account_token_position (#1874)
This change does 4 things:
Refactor to only have one function to validate imports.
Have this function support the jwt field account_token_position.
For completeness make this value configurable as well.
unit tests.

Signed-off-by: Matthias Hanel <mh@synadia.com>
2021-02-01 19:51:36 -05:00
Ivan Kozlovic
ea68afe5e2 Bump version to beta.66
Signed-off-by: Ivan Kozlovic <ivan@synadia.com>
2021-02-01 13:53:46 -07:00
Ivan Kozlovic
ac0a1ee8fd Fixed compression http header request/response
The issue was introduced by PR #1858.

Key points:

- Sec-WebSocket-Extensions must contain approved headers, so moving
the "no-masking" private extension to its own header "Nats-No-Masking".

- The format of the permessage-deflate negotiation response became
invalid, I have fixed that.

- For leaf nodes, if `permessage-deflate` extension is not at all
present in the response, then simply disable compression, however
if it is present but there is no server/client no context take over,
then we have to fail the connection.

- A leafnode test was not setting the "NoMasking" option so the
test TestLeafNodeWSNoMaskingRejected was not capturing possible
error if negotiation failed.

Signed-off-by: Ivan Kozlovic <ivan@synadia.com>
2021-02-01 12:10:37 -07:00
Matthias Hanel
ffc20e950b [removed] activation token download (#1867)
Signed-off-by: Matthias Hanel <mh@synadia.com>
2021-02-01 12:30:47 -05:00
Derek Collison
095a83bc2a Make sure to suppress duplicate create/delete audit events
Signed-off-by: Derek Collison <derek@nats.io>
2021-01-31 09:16:16 -08:00
Derek Collison
230c17ee48 Bumped Beta version
Signed-off-by: Derek Collison <derek@nats.io>
2021-01-30 17:24:52 -08:00
Derek Collison
2b0717bde2 Make debug not error since we recover
Signed-off-by: Derek Collison <derek@nats.io>
2021-01-30 14:00:26 -08:00
Derek Collison
9b20d5c888 Fixed bug on raft inline cacthup when apply channel was full.
Signed-off-by: Derek Collison <derek@nats.io>
2021-01-30 13:22:27 -08:00
Derek Collison
be393995a4 Bumped Beta Version
Signed-off-by: Derek Collison <derek@nats.io>
2021-01-29 19:40:15 -08:00
Derek Collison
5490c4969b Fixed a bug that on restore of single streams in clustered mode would subscribe to the stream subjects twice.
Signed-off-by: Derek Collison <derek@nats.io>
2021-01-29 19:37:30 -08:00
Derek Collison
36c4de874a Merge pull request #1868 from nats-io/js-breaks-imports-fix
[FIXED] Fix for #1864
2021-01-29 19:15:32 -07:00
Derek Collison
302ea010b7 Fix for data race
Signed-off-by: Derek Collison <derek@nats.io>
2021-01-29 18:12:57 -08:00
Derek Collison
e763d90496 Merge pull request #1861 from nats-io/js-list-request-fix
js: consumer list request fix
2021-01-29 19:00:34 -07:00
Derek Collison
8bd290c77a Fix for #1864.
When trying to make sure we properly created all subs for service imports we would check the internal client to see if we should process.
With JS enabled on the server we would place system imports that would break that check and orphan other service imports.

Signed-off-by: Derek Collison <derek@nats.io>
2021-01-29 17:51:14 -08:00
Derek Collison
457ca3b9cf Suppress additional advisories on server restart and leadership changes.
Signed-off-by: Derek Collison <derek@nats.io>
2021-01-29 15:08:22 -08:00
Matthias Hanel
2761bbf29a added test demonstrating how js breaks imports
Signed-off-by: Matthias Hanel <mh@synadia.com>
2021-01-29 14:29:04 -05:00
Ivan Kozlovic
e8fd49edb8 Bump version to beta.60
Signed-off-by: Ivan Kozlovic <ivan@synadia.com>
2021-01-29 11:55:36 -07:00
Ivan Kozlovic
a0fb39fb7e Merge pull request #1862 from nats-io/varz-jwt
[added] field to varz output containing the operator jwt
2021-01-29 11:53:20 -07:00
Ivan Kozlovic
06c63b5f57 Merge pull request #1858 from nats-io/ln_ws
[ADDED] Websocket for Leaf Node connections
2021-01-29 11:35:26 -07:00
Matthias Hanel
f487429d9e incorporated comments
Signed-off-by: Matthias Hanel <mh@synadia.com>
2021-01-29 13:25:02 -05:00
Ivan Kozlovic
9587bf8cd4 Changed option to make masking the default and option to disable it
This will allow a better experience if there is a load balancer
in between and expects websocket frames to be masked.

Signed-off-by: Ivan Kozlovic <ivan@synadia.com>
2021-01-29 11:22:22 -07:00
Derek Collison
3c49f087a0 Merge pull request #1859 from nats-io/jsc_ai
Extended AccountInfo to track API calls and errors.
2021-01-29 10:44:42 -07:00
Derek Collison
c889321a83 Change to API.Total and API.Errors
Signed-off-by: Derek Collison <derek@nats.io>
2021-01-29 09:42:20 -08:00
Matthias Hanel
2a34f0daee [added] field to varz output containing the operator jwt/claim
Signed-off-by: Matthias Hanel <mh@synadia.com>
2021-01-29 12:32:40 -05:00
Derek Collison
d2a92221fb Duplicate leader elect and lost advisories to the system account as well.
Also suppress lost quorums to at most once every 10 secs.

Signed-off-by: Derek Collison <derek@nats.io>
2021-01-29 08:51:20 -08:00
Derek Collison
0a3124e27d Track API calls per account. Track success and errors.
These tracking data are ephemeral per server. so on restart they reset.
That should be ok since these will most likely be used more for rates.

Signed-off-by: Derek Collison <derek@nats.io>
2021-01-28 17:16:50 -08:00
Ivan Kozlovic
e0487b95cc [FIXED] Return no match result if subject contains empty token
A subject such as `foo..bar` is invalid, but if it is published
from a connection that has disabled pedantic, then the message
is matched against subscriptions and will be delivered.

This change causes Sublist.Match() to return no result.

Signed-off-by: Ivan Kozlovic <ivan@synadia.com>
2021-01-28 17:43:22 -07:00
Waldemar Quevedo
fccdb8caa2 js: consumer list request fix
Signed-off-by: Waldemar Quevedo <wally@synadia.com>
2021-01-28 16:17:01 -08:00
Derek Collison
6480a45fc4 Fix for data race, don't need to check here
Signed-off-by: Derek Collison <derek@nats.io>
2021-01-28 13:20:15 -08:00
Ivan Kozlovic
2b8c6e0124 Support for Websocket Leafnode connections
Added two options in the remote leaf node configuration

- compress, for websocket only at the moment
- ws_masking, to force remote leafnode connections to mask websocket
frames (default is no masking since it is communication between
server to server)

Signed-off-by: Ivan Kozlovic <ivan@synadia.com>
2021-01-28 13:13:11 -07:00
Ivan Kozlovic
131be1cb33 Make TLS client/server handshake helpers function
This reduces code duplication

Signed-off-by: Ivan Kozlovic <ivan@synadia.com>
2021-01-28 13:13:11 -07:00
Matthias Hanel
c9e0eb6c3a [added] cluster/gateway/leafnode tls required/verify/timeout to varz (#1854)
Signed-off-by: Matthias Hanel <mh@synadia.com>
2021-01-28 14:08:58 -05:00