Files
nats-server/server
Matthias Hanel 52c4872666 better error when peer selection fails (#3342)
* better error when peer selection fails

It is pretty hard to diagnose what went wrong when not enough peers for
an operation where found. This change now returns counts of reasons why
peers where discarded.

Changed the error to JSClusterNoPeers as it seems more appropriate
of an error for that operation. Not having enough resources is one of
the conditions for a peer not being considered. But so is having a non
matching tag. Which is why JSClusterNoPeers seems more appropriate
In addition, JSClusterNoPeers was already used as error after one call
to selectPeerGroup already.

example:
no suitable peers for placement: peer selection cluster 'C' with 3 peers
offline: 0
excludeTag: 1
noTagMatch: 2
noSpace: 0
uniqueTag: 0
misc: 0

Examle for mqtt:
mid:12 - "mqtt" - unable to connect: create sessions stream for account "$G":
no suitable peers for placement: peer selection cluster 'MQTT' with 3 peers
        offline: 0
        excludeTag: 0
        noTagMatch: 0
        noSpace: 0
        uniqueTag: 0
        misc: 0
         (10005)

Signed-off-by: Matthias Hanel <mh@synadia.com>

* review comment

Signed-off-by: Matthias Hanel <mh@synadia.com>
2022-08-06 00:17:01 +02:00
..
2022-07-05 09:33:12 +01:00
2022-07-28 17:25:37 -06:00
2022-01-21 11:03:19 -08:00
2022-07-06 13:16:13 -07:00
2022-07-06 13:16:13 -07:00
2022-08-04 18:01:26 -07:00
2021-11-15 17:23:08 -07:00
2022-07-05 09:28:00 +01:00
2021-11-15 17:23:08 -07:00
2022-07-05 09:28:00 +01:00
2021-11-15 17:23:08 -07:00
2022-03-17 17:53:06 -06:00
2022-08-05 13:12:13 -06:00
2022-04-01 17:55:33 -06:00
2022-08-05 07:52:23 -07:00
2022-01-21 11:03:19 -08:00
2020-06-12 10:03:47 -06:00
2022-03-17 17:53:06 -06:00
2021-11-15 17:23:08 -07:00
2021-11-15 17:23:08 -07:00
2022-07-05 09:33:12 +01:00
2021-09-01 14:55:26 -07:00
2022-07-05 09:28:00 +01:00
2022-06-24 09:17:12 -07:00
2022-07-28 17:25:37 -06:00
2022-07-28 17:25:37 -06:00
2022-03-25 12:11:55 -06:00

Tests

Tests that run on Travis have been split into jobs that run in their own VM in parallel. This reduces the overall running time but also is allowing recycling of a job when we get a flapper as opposed to have to recycle the whole test suite.

JetStream Tests

For JetStream tests, we need to observe a naming convention so that no tests are omitted when running on Travis.

The script runTestsOnTravis.sh will run a given job based on the definition found in ".travis.yml".

As for the naming convention:

  • All JetStream tests name should start with TestJetStream
  • Cluster tests should go into jetstream_cluster_test.go and start with TestJetStreamCluster
  • Super-cluster tests should go into jetstream_super_cluster_test.go and start with TestJetStreamSuperCluster

Not following this convention means that some tests may not be executed on Travis.