Commit Graph

5156 Commits

Author SHA1 Message Date
Derek Collison
65d098f526 Fix for latency tracking bug.
The bug occures when latency tracking is on, a requestor and responder are not connected to the same server, and the responder sends two responses for a single request.

Signed-off-by: Derek Collison <derek@nats.io>
2021-11-12 17:37:15 -08:00
Ivan Kozlovic
8ac1ca0e98 Merge pull request #2684 from nats-io/fix_2679
[FIXED] A slow consumer could cause the publisher to block
2021-11-10 09:33:25 -07:00
Ivan Kozlovic
27d1a50b35 [FIXED] A slow consumer could cause the publisher to block
The server reads data from a client from a go routine. When receiving
messages, it checks for matching subscriptions, and if found, would
send those messages from the producer's readLoop.
A notion of "budget" was used to make sure the server does not spend
too much time sending to clients from the producer's readLoop, however,
regardless of how small the budget was, if one of the subscription's
connection TCP buffer was full, a TCP write would block for as long
as the defined write_deadline (which is now 10 seconds).

We are removing this behavior and therefore clients (like it was the
case for other type of connections) will now always notify the
subscriber's writeLoop that data is ready to be sent, but the send
will not occur in the producer's writeLoop.

Resolves #2679

Signed-off-by: Ivan Kozlovic <ivan@synadia.com>
2021-11-09 17:22:15 -07:00
Matthias Hanel
91d6531b8b Merge pull request #2683 from nats-io/async-publish-test
fixed unit test where after a server shutdown no quorum existed
2021-11-08 20:40:02 -05:00
Matthias Hanel
2221dbe685 fixed unit test where after a server shutdown no quorum existed
Signed-off-by: Matthias Hanel <mh@synadia.com>
2021-11-08 20:27:35 -05:00
Derek Collison
a27de5a681 Merge pull request #2678 from nats-io/race-fix-undo
Undo race fix which could cause deadlock
2021-11-04 15:37:41 -07:00
Derek Collison
cd54b4028d Undo race fix which could cause deadlock
Signed-off-by: Derek Collison <derek@nats.io>
2021-11-04 15:36:03 -07:00
Ivan Kozlovic
f9782c12d6 Merge pull request #2676 from nats-io/release_2_6_4
Release v2.6.4
2021-11-04 16:27:18 -06:00
Ivan Kozlovic
197b384da5 Release v2.6.4
Signed-off-by: Ivan Kozlovic <ivan@synadia.com>
2021-11-04 16:12:31 -06:00
Derek Collison
0d2261bb6b Merge pull request #2677 from nats-io/race-fix
Fix for race on js.cluster status
2021-11-04 15:11:37 -07:00
Derek Collison
7ef0cc5651 Fix for race on js.cluster status
Signed-off-by: Derek Collison <derek@nats.io>
2021-11-04 15:09:40 -07:00
Derek Collison
804696dda4 Merge pull request #2675 from nats-io/max-tokens
Add in max_sub_tokens support
2021-11-04 14:43:17 -07:00
Derek Collison
b96df068cb Add in max_sub_tokens support
Signed-off-by: Derek Collison <derek@nats.io>
2021-11-04 14:26:01 -07:00
Derek Collison
ee3009e121 Merge pull request #2674 from nats-io/fix-2670
[ADDED] Allow certain consumer attributes to be updated #2670, #2603
2021-11-04 13:58:56 -07:00
Derek Collison
5ead954fee [ADDED] Allow certain consumer attributes to be updated #2670, #2603
Signed-off-by: Derek Collison <derek@nats.io>
2021-11-04 13:43:11 -07:00
Matthias Hanel
fe3abafaeb Merge pull request #2672 from nats-io/jwt-localhost-unit
Altered jwt tests to not use localhost and prefixed tests with TestJWT
2021-11-03 16:28:24 -04:00
Derek Collison
6f7deaaed5 Only pass through to system account for account info api
Signed-off-by: Derek Collison <derek@nats.io>
2021-11-03 12:41:36 -07:00
Matthias Hanel
501ebc0747 Altered jwt unit tests to not use localhost and prefixed tests with TestJWT
Signed-off-by: Matthias Hanel <mh@synadia.com>
2021-11-03 15:22:33 -04:00
Derek Collison
bb0b591dab Bump version
Signed-off-by: Derek Collison <derek@nats.io>
2021-11-03 05:53:54 -07:00
Derek Collison
33e15c87b8 Merge pull request #2671 from nats-io/sys-js-response
Allow system account to respond with jetstream not enabled.
2021-11-03 05:53:08 -07:00
Derek Collison
6df5f350c7 Allow system account to respond with jetstream not enabled.
Signed-off-by: Derek Collison <derek@nats.io>
2021-11-03 05:34:29 -07:00
Derek Collison
c2cb19ce09 Bump version
Signed-off-by: Derek Collison <derek@nats.io>
2021-11-02 15:40:13 -07:00
Derek Collison
ae999aabe9 Merge pull request #2669 from nats-io/fix-2658
[FIXED] Duplicate stream create returned wrong response type #2658
2021-11-02 15:39:30 -07:00
Derek Collison
6987480a14 Merge pull request #2668 from nats-io/fix-2666
[FIXED] Conditional failures for stream messages could cause stream resets #2666
2021-11-02 15:34:08 -07:00
Derek Collison
c78d700e90 Fix for #2658
Signed-off-by: Derek Collison <derek@nats.io>
2021-11-02 15:23:15 -07:00
Derek Collison
1af3ab1b4e Fix for #2666
When encountering errors for sequence mismatches that were benign we were returning an error and not processing the rest of the entries.
This would lead to more severe sequence mismatches later on that would cause stream resets.

Also added code to deal with server restarts and the clfs fixup states which should have been reset properly.

Signed-off-by: Derek Collison <derek@nats.io>
2021-11-02 14:38:22 -07:00
Derek Collison
1097ac9234 Merge pull request #2665 from nats-io/fix-2662
[FIXED] Messages not expiring properly after server restart #2662.
2021-11-02 08:50:55 -07:00
Derek Collison
14469ccfc8 Fix for #2662.
Upon server restart a server would set the check expiration to the configured amount vs delta of next to expire.

Signed-off-by: Derek Collison <derek@nats.io>
2021-11-01 18:04:37 -07:00
Ivan Kozlovic
2ce09f0dc5 Merge pull request #2660 from nats-io/ws_remote_addr_for_ws_upgrade_errors
[IMPROVED] Websocket: Add client IP in websocket upgrade failures
2021-11-01 11:34:29 -06:00
Ivan Kozlovic
dbfff14d3b [IMPROVED] Websocket: Add client IP in websocket upgrade failures
The error message would now look like this:
```
[8672] 2021/11/01 10:56:50.251985 [ERR] [::1]:59279 - websocket handshake error: invalid value for header 'Upgrade'
```

(without this change the part `[::1]:59279 - ` would not be present)

Signed-off-by: Ivan Kozlovic <ivan@synadia.com>
2021-11-01 10:54:22 -06:00
Ivan Kozlovic
530ea6a5c3 Merge pull request #2654 from nats-io/release_2_6_3
Release v2.6.3
2021-10-28 13:58:52 -06:00
Ivan Kozlovic
a06e11a5a3 Release v2.6.3
Signed-off-by: Ivan Kozlovic <ivan@synadia.com>
2021-10-28 13:41:54 -06:00
Derek Collison
31cb06d018 Merge pull request #2655 from nats-io/st-race
Race around accessing storage type
2021-10-28 12:41:25 -07:00
Derek Collison
cf5322088d Race around accessing storage type
Signed-off-by: Derek Collison <derek@nats.io>
2021-10-28 12:36:01 -07:00
Ivan Kozlovic
c6b1d7f119 Merge pull request #2653 from nats-io/gw_gossip_urls
[FIXED] Gateway URLs gossip and `/varz` report issues
2021-10-28 12:51:50 -06:00
Derek Collison
22fb95fcc5 Merge pull request #2652 from nats-io/consumer-rdc
Fix for a bug that did not properly decode redelivered state for consumers from a filestore.
2021-10-28 11:28:21 -07:00
Ivan Kozlovic
5fc9e0e1cc [FIXED] Gateway URLs gossip and /varz report issues
- When detecting duplicate route, it was possible that a server
would lose track of the peer's gateway URL, which would prevent
it from gossiping that URL to inbound gateway connections
- When a server has gateways enabled and has as a remote its
own gateway, the monitoring endpoint `/varz` would include it
but without the "urls" array.

Signed-off-by: Ivan Kozlovic <ivan@synadia.com>
2021-10-28 12:05:30 -06:00
Derek Collison
003b6996f1 If AckWait less then restart check interval use AckWait
Signed-off-by: Derek Collison <derek@nats.io>
2021-10-28 11:00:06 -07:00
Derek Collison
3a14a984fc Fix for a bug that did not properly decode redelivered state for consumers from a filestore.
This also caused state abnormalities in a user's setup so added code to clean up bad state as needed.

Signed-off-by: Derek Collison <derek@nats.io>
2021-10-28 08:33:48 -07:00
Derek Collison
862c0c647d Merge pull request #2650 from nats-io/issue-2633
[FIXED] #2633
2021-10-27 15:34:05 -07:00
Derek Collison
0f7cdb00e8 Fix for #2633
Signed-off-by: Derek Collison <derek@nats.io>
2021-10-27 15:07:59 -07:00
Phil Pennock
03a4f2b268 Merge pull request #2649 from nats-io/pdp/tests-avoid-random-ports
Tests: avoid random ports
2021-10-27 15:14:29 -04:00
Phil Pennock
635c98a04b tests: hard-reject bad ports for JS clusters 2021-10-27 14:21:08 -04:00
Phil Pennock
7aacba4bda tests: don't allocate fixed ports from random range
When a socket is bound for IP stack protocols with port == 0, the kernel picks
a free port in a specific range and binds it; on Linux, the range can be seen
(and modified) with `sysctl net.ipv4.ip_local_port_range` or looking in
`/proc/sys/net/ipv4/ip_local_port_range`.  This defaults to 32768:60999.

When binding explicit ports (for tests), don't use a port number from that
range, or there will be flaky tests as periodically that port will already be
in use from another test.

This renumbers all the JS clustering tests I found binding in that range to be
beneath that range; I checked the code to ensure the new port wasn't already in
use.
2021-10-27 13:46:43 -04:00
Phil Pennock
fc6df0fbbc Redact URLs before logging or returning in error (#2643)
* Redact URLs before logging or returning in error

This does not affect strings which failed to parse, and in such a scenario
there's a mix of "which evil" to accept; we can't sanely find what should be
redacted in those cases, so we leave them alone for debugging.

The JWT library returns some errors for Operator URLs, but it rejects URLs
which contain userinfo, so there can't be passwords in those and they're safe.

Fixes #2597

* Test the URL redaction auxiliary functions

* End-to-end tests for secrets in debug/trace

Create internal/testhelper and move DummyLogger there, so it can be used from
the test/ sub-dir too.

Let DummyLogger optionally accumulate all log messages, not just retain the
last-seen message.

Confirm no passwords logged by TestLeafNodeBasicAuthFailover.

Change TestNoPasswordsFromConnectTrace to check all trace messages, not just the
most recent.

Validate existing trace redaction in TestRouteToSelf.

* Test for password in solicited route reconnect debug
2021-10-27 12:44:59 -04:00
Derek Collison
7dc5014941 Bump version
Signed-off-by: Derek Collison <derek@nats.io>
2021-10-27 09:20:31 -07:00
Derek Collison
ad04a3b7b1 Merge pull request #2648 from nats-io/issue-2642
[FIXED] #2642
2021-10-27 09:06:04 -07:00
Derek Collison
d4b0b38a8f Fix for #2642
There was a bug that would erase the sync subject for upper level catchup for streams.
Raft layer repair was ok but if that was compacted it gets kicked up to the upper layers which would fail.
Users would see "Catchup stalled" messages repeatedly and consumers that had their leaders attached to that replica would also stop working.

Changes were put in to repair the corrupt state after the fact as well, regardless of presence of fix.

Signed-off-by: Derek Collison <derek@nats.io>
2021-10-26 20:09:00 -07:00
Ivan Kozlovic
5929195470 Merge pull request #2647 from nats-io/gw_varz_urls_not_updated
[FIXED] Monitoring: /varz gateway URLs not always updated
2021-10-26 14:40:54 -06:00
Ivan Kozlovic
694e9016b6 Fixed flapper
Signed-off-by: Ivan Kozlovic <ivan@synadia.com>
2021-10-26 13:36:58 -06:00