Replace DefaultServerCapabilities with NewDefaultServerCapabilities()… #360
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
… to avoid data race
In tests, Capabilities maybe altered. However, DefaultServerCapabilities is a single global instance, where it maybe embedded in running server instances. So when value is altered, tests may fail with data race issue.
Here is an example:
In TestServerProcessSubscribeACLCheckDenyObscure:
server/server_test.go
Lines 2790 to 2794 in 65c7853
and TestServerClearExpiredRetained
server/server_test.go
Line 3328 in 65c7853
are seemingly different tests, but they cause interferences and resulted in data race issue.
This surfaced in the failed test for PR #359.
Note, this is mostly a test issue, as normally one would (should) not alter server capabilities once server started serving.
This may also be the cause for data race issue seen in #200.