2945 Commits

Author SHA1 Message Date
Ivan Kozlovic
1c00f77bc5 Release v2.2.6
Signed-off-by: Ivan Kozlovic <ivan@synadia.com>
2021-05-24 15:42:15 -06:00
Matthias Hanel
b1dee292e6 [changed] pinned certs to check the server connected to as well (#2247)
* [changed] pinned certs to check the server connected to as well

on reload clients with removed pinned certs will be disconnected.
The check happens only on tls handshake now.

Signed-off-by: Matthias Hanel <mh@synadia.com>
2021-05-24 17:28:32 -04:00
Derek Collison
0d6b022780 Fix for varz JetStream usage showing total account usage vs server usage.
Signed-off-by: Derek Collison <derek@nats.io>
2021-05-24 14:05:42 -07:00
Matthias Hanel
748b7c32f4 [fixed] deletion of js mappings on account jwt update
fixed by moving setting of the mappings into a common function that is
also called when the jwt is updated

Signed-off-by: Matthias Hanel <mh@synadia.com>
2021-05-24 16:44:14 -04:00
Derek Collison
8888ab51f4 Fix for #2243. We were not allowing replicated acks processing for workqueues properly, only interest retention.
Signed-off-by: Derek Collison <derek@nats.io>
2021-05-24 09:53:31 -07:00
Derek Collison
8f2457fd30 Merge branch 'master' into msgid 2021-05-24 09:22:35 -07:00
Derek Collison
308355a2fd Fix for #2242.
When we had a duplicate detected in R>1 mode we set the skip sequence indicator but were not using that when dealing with underlying store.

Signed-off-by: Derek Collison <derek@nats.io>
2021-05-24 08:21:41 -07:00
Derek Collison
a52697170c Fix for corrupting a message when extending an existing header.
We had a report of corrupt message payloads when going across leafnodes between streams that were sourced from one another.
We were incorrectly using the underlying buffer when a header already existed.

Signed-off-by: Derek Collison <derek@nats.io>
2021-05-23 11:28:48 -07:00
Ivan Kozlovic
087b7f92db Release v2.2.5
Signed-off-by: Ivan Kozlovic <ivan@synadia.com>
2021-05-20 16:17:39 -06:00
Matthias Hanel
b93f5975e8 [fixed] issue with invalid api prefix for source/mirror
addressed by failing

Signed-off-by: Matthias Hanel <mh@synadia.com>
2021-05-20 18:01:49 -04:00
Ivan Kozlovic
b5ea80dd75 Merge pull request #2236 from nats-io/fix_2226
[FIXED] MQTT: session fails if the number servers below cluster size
2021-05-20 15:21:19 -06:00
Matthias Hanel
6f6f22e9a7 [added] pinned_cert option to tls block hex(sha256(spki)) (#2233)
* [added] pinned_cert option to tls block hex(sha256(spki))

When read form config, the values are automatically lower cased.
The check when seeing the values programmatically requires 
lower case to avoid having to alter the map at this point.

Signed-off-by: Matthias Hanel <mh@synadia.com>
2021-05-20 17:00:09 -04:00
Ivan Kozlovic
69e9c6cddd [FIXED] MQTT: session fails if the number servers below cluster size
Say with a cluster of 3, all MQTT assets are created with a replicas
of 3. However, when a server is shutdown, then any new MQTT client
will fail to connect because we try to create a session stream
with R(3), which leads to insufficient resources.

The longer term solution should be for the server to allow the
creation of an asset with a R() value that is bigger than the
current number of running servers as long as there is quorum.

For now, we will reduce the R() value for the sessions if we get
an "insufficient resources" error.

Note that the other assets still will use the compute R() based
on cluster size. So the first time that a client on a given
account is started, we will still need to have R() == cluster size
(at least for R(3)).

Partially resolves #2226

Signed-off-by: Ivan Kozlovic <ivan@synadia.com>
2021-05-20 13:51:37 -06:00
Derek Collison
7936faf00e Merge pull request #2230 from nats-io/mapped
Mapped cross account test
2021-05-20 11:32:33 -07:00
Ivan Kozlovic
c1542ac9bb Merge pull request #2224 from BlizzTom/http-req-stats-panic-fix
[FIXED] Always initialize httpReqStats
2021-05-20 09:43:12 -06:00
Derek Collison
4bde91e9bd Fix a data race.
Signed-off-by: Derek Collison <derek@nats.io>
2021-05-20 07:31:55 -07:00
Derek Collison
8b50094fde Merge pull request #2227 from nats-io/docker_js
Fixed issue that we would stage snapshot restores in temporary storage.
2021-05-20 06:56:31 -07:00
Derek Collison
a14f07f86c Fix flapping test
Signed-off-by: Derek Collison <derek@nats.io>
2021-05-19 19:09:49 -07:00
Derek Collison
9ccc843382 Removing peers should wait for RemovePeer entry replication.
Signed-off-by: Derek Collison <derek@nats.io>
2021-05-19 18:58:19 -07:00
Derek Collison
6e6edd0b47 Mapped cross account test
Signed-off-by: Derek Collison <derek@nats.io>
2021-05-19 15:58:27 -07:00
Derek Collison
a27b0dd673 Move default file and dir perms
Signed-off-by: Derek Collison <derek@nats.io>
2021-05-19 14:46:07 -07:00
Derek Collison
592066ed0b Fixed issue that we would stage snapshot restore in temporary storage.
This did not work when using our default docker image which does not have /tmp by default.

Signed-off-by: Derek Collison <derek@nats.io>
2021-05-19 11:36:20 -07:00
Derek Collison
bd01f202af Under double import scenarios we could map to the wrong subject.
Signed-off-by: Derek Collison <derek@nats.io>
2021-05-19 05:59:24 -07:00
Tom Anderson
3ed10f4dde [Fixed] Always initialize httpReqStats
If you attempt to use the server http handlers it would panic unless you explicity called StartMonitoring

This isn't ideal to have a secondary http server running for those that are embedding nats and only want to host the http handlers on a pre-existing http server

Talked with @kozlovic via Slack about this
2021-05-18 17:06:42 -07:00
Derek Collison
ad32edfb59 If a consumer state has a redelivered that is not quite correct that should not be a corrupt state error.
Signed-off-by: Derek Collison <derek@nats.io>
2021-05-17 17:44:58 -07:00
Ivan Kozlovic
b6ca86c0c0 Release v2.2.4
Signed-off-by: Ivan Kozlovic <ivan@synadia.com>
2021-05-12 17:08:15 -06:00
Ivan Kozlovic
89dec1f978 Merge pull request #2216 from nats-io/pdp/fix-jetstream-relocate
Error-checking & resilience for JetStream move
2021-05-12 16:16:24 -06:00
Ivan Kozlovic
a294517946 No need to fetch account if we detect that it is valid NKEY
Signed-off-by: Ivan Kozlovic <ivan@synadia.com>
2021-05-12 15:57:26 -06:00
Derek Collison
df8835d2d0 Stupid spelling where I introduced this..
Signed-off-by: Derek Collison <derek@nats.io>
2021-05-12 14:32:06 -07:00
Derek Collison
060f2ec127 Fix stream source lookup and add in optional External to StreamSourceInfo.
Signed-off-by: Derek Collison <derek@nats.io>
2021-05-12 12:32:56 -07:00
Phil Pennock
452bec8e42 Don't fix dir perms yet, punt to separate issue 2021-05-12 13:16:10 -04:00
Phil Pennock
408e009ebb Error-checking, resilience & perms for JetStream move
Jetstream movement can fail, so return that error and abort start-up if there's
a failure in moving precious data, rather than serve without it.

Create the jetstream directory if needed.

Create directories for private data mode 0750 not 0755.

This does not handle a directory layout made with 2.2.3, but does support a
2.2.2 to 2.2.4 migration.  The empty directories made under 2.2.3 will still
hinder the renames we do here.
2021-05-12 12:32:21 -04:00
Derek Collison
dd91bc8b64 Merge pull request #2206 from nats-io/sd_fix
[FIXED] A store directory on disk without 'jetstream' could appear to lose assets on restart.
2021-05-12 08:56:21 -07:00
Derek Collison
30191ada96 Merge pull request #2214 from nats-io/issue_2213
[FIXED] #2213
2021-05-12 08:45:30 -07:00
Ivan Kozlovic
bc9ac88032 Merge pull request #2211 from nats-io/fix_2207
[FIXED] Websocket: Origin should be checked only if present
2021-05-12 09:13:40 -06:00
Derek Collison
6e17b7a303 Fix for #2213
We do not want to report consumers that were created for the purpose of sources or mirrors.

Signed-off-by: Derek Collison <derek@nats.io>
2021-05-12 07:51:53 -07:00
Derek Collison
908b5ec304 Fix for #2205
When a response was needed from a leafnode cluster back to a hub, we had rules to disallow.
That rule was a bit dated and since we have cluster origin for leafnode clusters and that
is checked before the message is actually sent we could remove the old rule.

Signed-off-by: Derek Collison <derek@nats.io>
2021-05-12 06:49:11 -07:00
Ivan Kozlovic
854cc15ddb Fixed typos and updates checkOrigin() doc
Also fixed two flappers

Signed-off-by: Ivan Kozlovic <ivan@synadia.com>
2021-05-11 19:36:46 -06:00
Ivan Kozlovic
da91b06218 [FIXED] Websocket: Origin should be checked only if present
There are 2 options, same_origin and allowed_origins that should
apply only to webbrowsers that set the Origin http header. If
the header is not present, the server should not fail direct
clients using websocket protocol, or leafnodes.

From spec:
https://datatracker.ietf.org/doc/html/rfc6455#section-1.6

   The WebSocket Protocol uses the origin model used by web browsers to
   restrict which web pages can contact a WebSocket server when the
   WebSocket Protocol is used from a web page.  Naturally, when the
   WebSocket Protocol is used by a dedicated client directly (i.e., not
   from a web page through a web browser), the origin model is not
   useful, as the client can provide any arbitrary origin string.

Resolves #2207

Signed-off-by: Ivan Kozlovic <ivan@synadia.com>
2021-05-11 18:37:16 -06:00
Derek Collison
494ddeec5b Fix for #2202
When using multiple source streams from either different accounts or domains, the stream name could be the same and would cause bad behavior.

Signed-off-by: Derek Collison <derek@nats.io>
2021-05-11 13:12:10 -07:00
Derek Collison
51071c8aa9 Merge pull request #2201 from nats-io/bug_fixes
Fix for failing test
2021-05-11 07:54:51 -07:00
Derek Collison
58344c666a Update based on feedback.
Only log when actually moving an account in case other files start polluting the directory.
When failing to look up an account and we have a resolver check to see if its a valid account name before attempting lookup.

Signed-off-by: Derek Collison <derek@nats.io>
2021-05-11 07:54:10 -07:00
Ivan Kozlovic
9fee6c6997 Merge pull request #2203 from nats-io/fix_flappers
Fixed flappers
2021-05-11 08:47:48 -06:00
Derek Collison
bad9fba8ec Fix for store directory on disk prior to 2.2.3 without the 'jetstream' directory.
Signed-off-by: Derek Collison <derek@nats.io>
2021-05-10 19:24:58 -07:00
Derek Collison
06fc2f3f06 Fix data race
Signed-off-by: Derek Collison <derek@nats.io>
2021-05-10 17:29:24 -07:00
Derek Collison
bbb94467fb Fix for failing test, we needed to account for consumers having filtered subjects configured but not really being filtered.
Signed-off-by: Derek Collison <derek@nats.io>
2021-05-10 17:01:31 -07: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