Commit Graph

1357 Commits

Author SHA1 Message Date
Ivan Kozlovic
668229fc1d [FIXED] RACE between sublist remove and go through match results
This would manifest for instance when server tries to send messages
to queue subscribers and a subscription is unsubsribed at the same
time.

Resolves #640
2018-03-09 19:05:33 -07:00
Ivan Kozlovic
dd3dccc55a Merge pull request #636 from nats-io/restore_default_test_options_port
Restore DefaultTestOptions port to 4222
2018-03-07 12:26:53 -07:00
Ivan Kozlovic
72bbd2b982 Restore DefaultTestOptions port to 4222
This is used by RunDefaultServer() and some external projects tests
may rely on the fact that this runs on the default port.

Our tests that want to use ephemeral ports to avoid port conflicts
should be updated to not use these default options and/or RunDefaultServer().
2018-03-07 12:12:19 -07:00
Ivan Kozlovic
fa662bbfdb Merge pull request #634 from nats-io/fix_connect_urls
Additional fix to #631
2018-03-06 11:32:51 -07:00
Ivan Kozlovic
4768a86316 Merge pull request #635 from nats-io/reduce_port_conflicts
Try reduce port conflicts in tests
2018-03-06 10:31:19 -07:00
Ivan Kozlovic
92796d74e1 More changes 2018-03-06 10:13:51 -07:00
Ivan Kozlovic
0ac50bda76 Try reduce port conflicts in tests 2018-03-06 08:49:45 -07:00
Ivan Kozlovic
999e0299d7 Remove unused code 2018-03-06 08:46:01 -07:00
Ivan Kozlovic
461ab96a58 Additional fix to #631
This is the result of flapping tests in go-nats that were caused
by a defect (see PR https://github.com/nats-io/go-nats/pull/348).
However, during debugging, I realize that there were also things
that were not quite right in the server side. This change should
make it the notification of cluster topology changes to clients
more robust.
2018-03-05 20:03:46 -07:00
Ivan Kozlovic
33db08e1e9 Merge pull request #631 from nats-io/fix_connect_urls_notification_with_explicit_routes
[FIXED] Cluster toplogy change possibly not sent to clients
2018-03-04 14:54:54 -07:00
Ivan Kozlovic
3b5826455d Bump version to 1.0.7 [ci skip] 2018-03-04 14:50:47 -07:00
Ivan Kozlovic
aeca31ce51 [FIXED] Cluster toplogy change possibly not sent to clients
When a server accepts a route, it will keep track of that server
`connectURLs` array. However, if the server was creating a route
to that other server at the same time, it will promote the route
as a solicited one. The content of that array was not transfered,
which means that on a disconnect, it was possible that the cluster
topology change was not properly sent to clients.
2018-03-04 14:38:03 -07:00
Ivan Kozlovic
02dd205a48 Use GITHUB_TOKEN v1.0.6 2018-02-28 16:10:13 -07:00
Ivan Kozlovic
ef3376ca18 Merge pull request #629 from nats-io/prepare_for_v106
Prepare for release v1.0.6
2018-02-28 15:18:43 -07:00
Ivan Kozlovic
17f27ab90f Prepare for release v1.0.6
-Update Dockerfile Go version to 1.9.4
-Add ARM32v6 build of Docker image
2018-02-28 14:49:18 -07:00
Ivan Kozlovic
b474438513 Restore megacheck since upstream error is now fixed 2018-02-28 14:19:36 -07:00
Ivan Kozlovic
2d75c83aeb Remove megacheck for now
Reason: https://github.com/dominikh/go-tools/issues/269
2018-02-28 11:39:33 -07:00
Ivan Kozlovic
ba6b6f352d Merge pull request #626 from nats-io/notify_clients_when_routes_go_away
[ADDED] Notification to clients when servers leave the cluster
2018-02-28 10:48:53 -07:00
Ivan Kozlovic
1acf330e07 [ADDED] Notification to clients when servers leave the cluster
Until now, a server would only notify clients of servers that join
the cluster. More than that, a server would send ot its clients only
information if new servers were added.
This PR changes this by sending to clients that support async INFO
the list of URLs for all servers in the cluster any time that there
is a change (joining or leaving the cluster).
As of now, clients will not be affected by the change (and will not
take benefit of this: removing servers from their server pool). This
will be addressed in each supported client once this is merged.
2018-02-27 14:22:13 -07:00
Ivan Kozlovic
c03d5663ac Merge pull request #625 from nats-io/update_travis_go_versions
Update Go versions in travis.yml
2018-02-26 10:19:47 -07:00
Ivan Kozlovic
30655ceca7 Update Go versions in travis.yml 2018-02-26 10:04:58 -07:00
Ivan Kozlovic
f8f1f026e2 Merge pull request #624 from nats-io/injected-version
[ADDED] Print release's GitCommit in the banner
2018-02-26 09:25:05 -07:00
Ivan Kozlovic
163ba3f6a7 Merge pull request #608 from nats-io/fix_issue_447
[ADDED] Client and Cluster Advertise. Issue #447
2018-02-26 09:12:58 -07:00
Alberto Ricart
3aa1a75849 Merge remote-tracking branch 'origin/injected-version' into injected-version
# Conflicts:
#	server/server.go
2018-02-21 19:25:10 -06:00
Alberto Ricart
ce6a5e6c8c Merge remote-tracking branch 'origin/injected-version' into injected-version
- Renamed GitHash to gitCommit as per discussions with Ivan
- Set gitHash to 'not set' if not set (as in the case of a local build)

# Conflicts:
#	server/server.go
2018-02-21 19:24:40 -06:00
Alberto Ricart
daa47f3a91 Merge remote-tracking branch 'origin/injected-version' into injected-version
# Conflicts:
#	server/server.go
2018-02-21 17:30:44 -06:00
Alberto Ricart
68b7aa0155 [ADD] Added github.com/nats-io/gnatsd/server.GITHASH compile variable which allows for linker to inject the githash that gnatsd was built from. See https://husobee.github.io/golang/compile/time/variables/2015/12/03/compile-time-const.html. The githash is exposed on server startup (debug) and on /varz.
[FIX] Docker images were injecting the compile time variable `github.com/nats-io/gnatsd/version.GITCOMMIT`, however this is not referenced nor exposed anywhere.
2018-02-21 17:29:21 -06:00
Alberto Ricart
0bcc360de1 [ADD] Added github.com/nats-io/gnatsd/server.GITHASH compile variable which allows for linker to inject the githash that gnatsd was built from. See https://husobee.github.io/golang/compile/time/variables/2015/12/03/compile-time-const.html. The githash is exposed on server startup (debug) and on /varz.
[FIX] Docker images were injecting the compile time variable `github.com/nats-io/gnatsd/version.GITCOMMIT`, however this is not referenced nor exposed anywhere.
2018-02-21 17:26:41 -06:00
Ivan Kozlovic
acf4a31e4b Major updates + support for config reload of client/cluster advertise 2018-02-05 20:15:36 -07:00
Ivan Kozlovic
f39cd53d07 Merge pull request #598 from nats-io/add-server-id-to-routez-connz
[ADDED] Server id to connz and routez
2018-01-30 15:10:49 -07:00
Ivan Kozlovic
5a351c56ce Merge branch 'master' into add-server-id-to-routez-connz 2018-01-30 14:59:26 -07:00
Derek Collison
b56ca22d1b Updated benchmarks 2018-01-15 15:27:18 -08:00
Colin Sullivan
77d41da701 Merge pull request #616 from nats-io/update-office-hours
Update office hours link
2018-01-15 16:14:30 -07:00
Colin Sullivan
43330bfadd Remove zoom from office hours descrption. 2018-01-15 13:11:38 -07:00
Colin Sullivan
c197771b12 Update office hours link 2018-01-07 19:17:15 -07:00
Ivan Kozlovic
ee7b97e6ee Merge pull request #611 from nats-io/error_logging
[IMPROVED] Use correct log level for route errors
2017-12-11 09:04:07 -07:00
Tyler Treat
379701758c Use correct log level for route errors
Also move route created log message to when the route has actually been
created successfully.
2017-12-11 08:10:42 -06:00
Peter Miron
306a3f9507 Resolving Ivan's feedback. 2017-11-29 15:35:05 -05:00
Peter Miron
4829592107 removed support for array of Advertise addresses. Added support for Route advertise address. 2017-11-29 11:41:08 -05:00
Peter Miron
7d34b890c6 Takes list of client connect addresses. Uses the first as the host / port sent on info. 2017-11-28 09:55:35 -05:00
Ivan Kozlovic
b002db4a1c Merge pull request #606 from nats-io/always_send_info
[CHANGED] Server notifies clients when server rejoins cluster
2017-11-27 13:37:21 -07:00
Peter Miron
6852298e7b draft of fix for issue #447. allows advertising separate host:ports to client. 2017-11-27 15:34:15 -05:00
Ivan Kozlovic
cde2aa6d2f Merge pull request #604 from nats-io/fix_connz_tls_handshake
[FIXED] Connz would "block" for TLS clients still in TLS handshake
2017-11-17 12:31:58 -07:00
Ivan Kozlovic
fa86ff93eb [CHANGED] Server notifies clients when server rejoins cluster
When the option Cluster.NoAdvertise is false, a server will send
an INFO protocol message to its client when a server has joined
the cluster.

Previously, the protocol would be sent only if the
joining server's "client URLs" (the addresses where clients connect
to) were new. It will now be sent regardless if the server joins
(for the first time) or rejoins the cluster.

Clients are still by default invoking the DiscoveredServersCB callback
only if they themselves detect that new URLs were added. A separate
PR may be filled to client libraries repo to be able to invoke
the callback anytime an async INFO protocol is received.

Based on @madgrenadier PR #597.
2017-11-17 12:21:34 -07:00
Ivan Kozlovic
7a4f7bbf03 Fix megacheck 2017-11-17 12:21:05 -07:00
Ivan Kozlovic
99f718fd9e Merge pull request #603 from nats-io/fix_http_servers_timeout
[FIXED] Profiling and Monitoring timeout issues
2017-11-17 12:17:20 -07:00
Ivan Kozlovic
6fad293a21 [FIXED] Connz would "block" for TLS clients still in TLS handshake
If server requires TLS and clients are connecting, and a Connz
request is made while clients are still in TLS Handshake, the
call to tls.Conn.ConnectionState() would block for the duration
of the handshake. This would cause the overall http request to
take too long.
We will now not try to gather TLSVersion and TLSCipher from a
client that is still in TLS handshake.

Resolves #600
2017-11-09 09:47:05 -07:00
Ivan Kozlovic
22cff99e58 [Fixed] Profiling and Monitoring timeout issues
The http servers for those two were recently modified to set
a ReadTimeout and WriteTimeout. The WriteTimeout specifically
caused issues for Profiling since it is common to ask sampling
of several seconds. Pprof code would reject the request if it
detected that http server's WriteTimeout was more than sampling
in request.
For monitoring, any situation that would cause the monitoring code
to take more than 2 seconds to gather information (could be due
to locking, amount of objects to return, time required for sorting,
etc..) would also cause cURL to return empty response or WebBrowser
to fail to display the page.

Resolves #600
2017-11-08 14:58:10 -07:00
Ivan Kozlovic
92c4481d1b Merge pull request #601 from nats-io/update_go_version
Update Go version to 1.9.2
2017-11-08 10:16:39 -07:00
Ivan Kozlovic
24a422470a Update Go version to 1.9.2
Updated travis to use 1.8.5 and 1.9.2 and build/push release
for 1.9.2 release.
Updated Docker files too.
2017-11-08 10:06:44 -07:00