Commit Graph

2263 Commits

Author SHA1 Message Date
Derek Collison
3557fd27a8 Merge pull request #1138 from nats-io/jwt
Updated JWT dependency
2019-09-20 10:15:07 -07:00
Derek Collison
fccf147898 Updated JWT dependency
Signed-off-by: Derek Collison <derek@nats.io>
2019-09-20 10:13:09 -07:00
Waldemar Quevedo
d44b0dec51 Merge pull request #1136 from nats-io/svc-latency-values
Adjust to zero negative latency values
2019-09-20 11:39:33 -05:00
Waldemar Quevedo
d0e36f3b88 Adjust to zero negative latency values
Signed-off-by: Waldemar Quevedo <wally@synadia.com>
2019-09-20 09:24:18 -07:00
Derek Collison
ffdbe864a8 Version bump
Signed-off-by: Derek Collison <derek@nats.io>
2019-09-19 19:50:03 -07:00
Derek Collison
37a5612460 Merge pull request #1137 from nats-io/latency_update
Latency tracking updates
2019-09-19 19:48:53 -07:00
Derek Collison
0360f46c2f fixes based on PR updates
Signed-off-by: Derek Collison <derek@nats.io>
2019-09-19 17:16:36 -07:00
Ivan Kozlovic
0419fd5815 Merge pull request #1135 from nats-io/fix_response_perms
Fixed ResponsePermissions
2019-09-19 16:13:41 -06:00
Derek Collison
7fe47ace2b Make sure to turn latency on with a claim update
Signed-off-by: Derek Collison <derek@nats.io>
2019-09-19 14:20:35 -07:00
Ivan Kozlovic
731941a18f Fixed ResponsePermissions
- Ensure that defaults are set when values are 0
- Fixed some tests
- Added some helpers in jwt tests to reduce copy/paste

Signed-off-by: Ivan Kozlovic <ivan@synadia.com>
2019-09-19 14:42:38 -06:00
Ivan Kozlovic
256ad4ac15 Bump version to 2.1.0-RC1
Signed-off-by: Ivan Kozlovic <ivan@synadia.com>
2019-09-18 14:26:42 -06:00
Derek Collison
adbe569a04 Merge pull request #1130 from nats-io/add-latency-config
Expose service latency info in config file
2019-09-18 13:22:11 -07:00
Jaime Piña
ab24cddc06 Add latency config
Currently, the config file doesn't recognize the latency config block in
account exports. This change exposes those settings in the config file.

Signed-off-by: Jaime Piña <jaime@synadia.com>
Signed-off-by: Waldemar Quevedo <wally@synadia.com>
2019-09-18 13:20:26 -07:00
Ivan Kozlovic
6a70f36e09 Merge pull request #1131 from nats-io/fix_acc_lookup
[FIXED] Locking issue around account lookup/updates
2019-09-18 12:59:28 -06:00
Derek Collison
43324271ca Friendly version 2019-09-18 11:58:36 -07:00
Derek Collison
25c04069fd Merge pull request #1133 from nats-io/http
Use multiple connections to amortize TLS
2019-09-18 11:51:44 -07:00
Ivan Kozlovic
20a925ae86 Updates to registerAccount
Make it a function that grabs server lock/unlock and invokes
registerAccountNoLock(). Use that function when already under
the server's lock.

Signed-off-by: Ivan Kozlovic <ivan@synadia.com>
2019-09-18 12:45:12 -06:00
Derek Collison
7cf211b056 Use multiple connections to amortize TLS
Signed-off-by: Derek Collison <derek@nats.io>
2019-09-18 11:40:00 -07:00
Derek Collison
fe3c0b03be Update to project ID 2019-09-18 10:50:08 -07:00
Derek Collison
70f526548a Create sponsorship button 2019-09-18 10:48:41 -07:00
Derek Collison
d6f0622c1f Merge pull request #1132 from nats-io/jwt_latency
Add in JWT support for tracking latency
2019-09-18 08:58:42 -07:00
Derek Collison
0551371b31 Add in JWT support for tracking latency
Signed-off-by: Derek Collison <derek@nats.io>
2019-09-18 08:51:43 -07:00
Ivan Kozlovic
150d47cab3 [FIXED] Locking issue around account lookup/updates
Ensure that lookupAccount does not hold server lock during
updateAccount and fetchAccount.
Updating the account cannot have the server lock because it is
possible that during updateAccountClaims(), clients are being
removed, which would try to get the server lock (deep down in
closeConnection/s.removeClient).
Added a test that would have show the deadlock prior to changes
in this PR.

Signed-off-by: Ivan Kozlovic <ivan@synadia.com>
2019-09-17 18:48:23 -06:00
Derek Collison
b98b75b166 Merge pull request #1127 from nats-io/sysdebug
System level services for debugging.
2019-09-17 09:45:53 -07:00
Derek Collison
52430c304a System level services for debugging.
This is the first pass at introducing exported services to the system account for generally debugging of blackbox systems.
The first service reports number of subscribers for a given subject. The payload of the request is the subject, and optional queue group, and can contain wildcards.

Signed-off-by: Derek Collison <derek@nats.io>
2019-09-17 09:37:35 -07:00
Ivan Kozlovic
0ede25e064 Merge pull request #1129 from nats-io/fix-1128
[FIXED] Allow command line `-cluster` to accept -1 for port
2019-09-17 09:01:01 -06:00
Alberto Ricart
eb56ad22ea review comment 2019-09-17 09:56:03 -05:00
Alberto Ricart
af97b5b9df FIX #1128 - Modified the cluster listenstr parsing to allow cluster urls that have
a -1 for a port. This re-enables ability to create clusters on a random
port for testing.
2019-09-16 10:45:27 -05:00
Ivan Kozlovic
5eebc42f47 Merge pull request #1126 from nats-io/fix_acc_lock_issue
Fixed a lock inversion issue with account
2019-09-13 15:11:02 -06:00
Ivan Kozlovic
15201a19cd Fixed a lock inversion issue with account
In updateRouteSubscriptionMap(), when a queue sub is added/removed,
the code locks the account and then the route to send the update.
However, when a route is accepted and the subs are sent, the
opposite (locking wise) occurs. The route is locked, then the account.

This lock inversion is possible because a route is registered (added
to the server's map) and then the subs are sent.

Use a special lock to protect the send, but don't hold the acc.mu
lock while getting the route's lock.

The tests that were created for the original missed queue updates
issue, namely TestClusterLeaksSubscriptions() and
TestQueueSubWeightOrderMultipleConnections() pass with this change.

Signed-off-by: Ivan Kozlovic <ivan@synadia.com>
2019-09-13 14:30:00 -06:00
Derek Collison
8fdf6a4e3a Merge pull request #1125 from nats-io/json
Shorter names for latency tracking JSON
2019-09-12 15:19:50 -07:00
Derek Collison
26db43001f Shorter names for latency tracking JSON
Signed-off-by: Derek Collison <derek@nats.io>
2019-09-12 15:11:43 -07:00
Ivan Kozlovic
6f1c5d1179 Merge pull request #1124 from nats-io/update_travis_yml
Updates to Travis
2019-09-12 11:48:40 -06:00
Ivan Kozlovic
3d2a961c5a Updates to the script
- Replace EXCLUDE_VENDOR with GO_LIST since `go list` already
  excludes vendor directory.
- Changed misspell invocation because it was not doing what
  it was supposed to.
- Use `./...` in the test commands.

Signed-off-by: Ivan Kozlovic <ivan@synadia.com>
2019-09-12 10:24:56 -06:00
Derek Collison
b0122f736d Merge pull request #1122 from nats-io/latency-v2
Latency tracking updates.
2019-09-11 17:41:59 -07:00
Derek Collison
25d5cb337d Make json tags consistent
Signed-off-by: Derek Collison <derek@nats.io>
2019-09-11 17:30:01 -07:00
Derek Collison
94f143ccce Latency tracking updates.
Will now breakout the internal NATS latency to show requestor client RTT, responder client RTT and any internal latency caused by hopping between servers, etc.

Signed-off-by: Derek Collison <derek@nats.io>
2019-09-11 16:43:19 -07:00
Ivan Kozlovic
d125f06eaf Merge pull request #1121 from nats-io/fix_max_pending
[FIXED] MaxPending > MaxInt32 causes client to be disconnected
2019-09-11 14:48:11 -06:00
Ivan Kozlovic
effa30ce4a [FIXED] MaxPending > MaxInt32 causes client to be disconnected
Changed some of client.outbound fields to int64.
Moved fields around to minimize size of struct (checked with
unsafe.Sizeof())
Checked benchmark results before/after
Added test

Resolves #1118

Signed-off-by: Ivan Kozlovic <ivan@synadia.com>
2019-09-11 14:29:02 -06:00
Ivan Kozlovic
d19b13d093 Merge pull request #1119 from nats-io/fix_1117
[FIXED] Circular account service import dependency
2019-09-10 18:31:13 -06:00
Ivan Kozlovic
4253b31dcf [FIXED] Circular account service import dependency
If account A imports from B and B from A, when the account A
is built, it causes B to be fetch, but since B imports from A,
A was fetch/built again in an infinite loop.

Resolves #1117

Signed-off-by: Ivan Kozlovic <ivan@synadia.com>
2019-09-10 18:05:21 -06:00
Waldemar Quevedo
390afecd92 Update ISSUE_TEMPLATE.md 2019-09-10 10:24:52 -07:00
Derek Collison
97f89ffd3f Merge pull request #1115 from nats-io/update-system-account
Update SYS account name
2019-09-05 19:09:42 +03:00
Jaime Piña
176a19de75 Update SYS account name
Currently, the $SYSTEM subject is used in this repo, but it seems like this
subject name is out of date.

This change updates the code to use $SYS to match the documentation.
2019-09-04 13:49:59 -05:00
Derek Collison
4042465eda Merge pull request #1112 from nats-io/prune
Prune remote reply tracking
2019-08-30 17:39:38 -07:00
Derek Collison
67470911fe Prune remote reply tracking
Signed-off-by: Derek Collison <derek@nats.io>
2019-08-30 17:35:20 -07:00
Derek Collison
bb11f7bd2d Merge pull request #1111 from nats-io/latency
Track latency for exported services
2019-08-30 11:02:36 -07:00
Derek Collison
7989118c3f First pass latency tracking for exported services
Signed-off-by: Derek Collison <derek@nats.io>
2019-08-30 10:52:48 -07:00
Ivan Kozlovic
8ca58c7de0 Merge pull request #1110 from nats-io/fix_flush_outbound
Fixed flushOutbound
2019-08-29 13:32:37 -06:00
Ivan Kozlovic
2a8973a62b Fixed flushOutbound
With Go 1.12 (strangely was not able to reproduce with Go 1.11)
the test TestRouteNoCrashOnAddingSubToRoute() would frequently
locks up and consume all avail CPUs on the machine. Running
this test with GOMAXPROCS=2 you would see server.test CPU usage
pegged at 200% (assuming you have at least 2 CPUs).
The reason was that the writeLoop was spinning because another
routine was already in flushOutbound() and stack trace would
show that it was stuck in system calls. It seems that even though
the writeLoop does release the lock but grab it right away was
not allowing the syscall to complete.

So decided to put back the unlock/gosched/lock back in flushOutbound()
when flag is already set, but then protect the closeConnection()
with its own flag (similar to clearConnection) to not re-introduce
issue fixed in #1092.

Had to fix the benchmark test RoutedInterestGraph because after a
route is accepted, the initial PING will be sent after 1sec which
was breaking this test.

Signed-off-by: Ivan Kozlovic <ivan@synadia.com>
2019-08-29 12:59:27 -06:00