Files
nats-server/server
Ivan Kozlovic 0887f3d66a Check for mirror configuration
With the previous commit, this should no longer be possible, but
otherwise we got report of a panic when accessing the mirror configuration.
The following test would be able to produce the panic:

```
	s := RunBasicJetStreamServer()
	if config := s.JetStreamConfig(); config != nil {
		defer removeDir(t, config.StoreDir)
	}
	defer s.Shutdown()

	nc, js := jsClientConnect(t, s)
	defer nc.Close()

	_, err := js.AddStream(&nats.StreamConfig{Name: "SOURCE"})
	require_NoError(t, err)

	cfg := &nats.StreamConfig{
		Name:   "M",
		Mirror: &nats.StreamSource{Name: "SOURCE"},
	}
	_, err = js.AddStream(cfg)
	require_NoError(t, err)

	err = js.DeleteStream("SOURCE")
	require_NoError(t, err)

	cfg.Mirror = nil
	_, err = js.UpdateStream(cfg)
	require_NoError(t, err)

	time.Sleep(5 * time.Second)
```

Again, now that we reject the mirror config update, the panic
should no longer happen, but adding preventive code in case we
allow in the future.

Signed-off-by: Ivan Kozlovic <ivan@synadia.com>
2022-07-15 11:18:23 -06:00
..
2021-11-15 17:23:08 -07:00
2021-11-15 17:23:08 -07: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-07-12 22:41:52 +02:00
2021-11-15 17:23:08 -07:00
2021-11-15 17:23:08 -07:00
2021-11-15 17:23:08 -07:00
2021-11-15 17:23:08 -07:00
2022-03-17 17:53:06 -06:00
2022-02-04 13:32:18 -08:00
2022-04-01 17:55:33 -06:00
2022-07-06 20:54:13 -07:00
2022-01-21 11:03:19 -08: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
2021-11-15 17:23:08 -07:00
2021-09-01 14:55:26 -07:00
2021-11-15 17:23:08 -07:00
2022-06-24 09:17:12 -07:00
2022-07-15 11:18:23 -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.