More test-suite refactoring#4
Merged
Merged
Conversation
Contributor
Author
|
I apologize for the size of this commit. I ran the full test-suite and the only failures were things that were failing previously or things that pass locally. |
Lots of work on the test-suite in this commit including: - Rename ServiceTestBase to ActiveMQTestBase - Make AddressSettings fluent - Remove unnecessary tearDown() implementations - Use ActiveMQTestBase.create*Locator() instead of ActiveMQClient.createServerLocator*(..) - Use fluent ServerLocator methods - Make sure all ActiveMQServers.newActiveMQServer invocations are surrounded with addServer() where appropriate - Create a few example tests to be references from hacking-guide - Update hacking-guide with more info on writing tests - Refactor config creation methods in ActiveMQTestBase
|
ActiveMQ-Artemis-PR-Build #375 SUCCESS |
asfgit
pushed a commit
that referenced
this pull request
May 28, 2015
|
ActiveMQ-Artemis-PR-Build #376 SUCCESS |
jbertram
referenced
this pull request
in jbertram/artemis
Oct 21, 2015
Fixes that I want part of the next forked release
mtaylor
referenced
this pull request
in mtaylor/activemq-artemis
Aug 11, 2016
ARTEMIS-626 re-use context for LDAP
ghost
pushed a commit
to dudaerich/activemq-artemis
that referenced
this pull request
Sep 12, 2017
Update README.md
clebertsuconic
pushed a commit
that referenced
this pull request
Feb 3, 2023
Configurations employing shared-storage with NFS are susceptible to
split-brain in certain scenarios. For example:
1) Primary loses network connection to NFS.
2) Backup activates.
3) Primary reconnects to NFS.
4) Split-brain.
In reality this situation is pretty unlikely due to the timing involved,
but the possibility still exists. Currently the file lock held by the
primary broker on the NFS share is essentially worthless in this
situation. This commit adds logic by which the timestamp of the lock
file is updated during activation and then routinely checked during
runtime to ensure consistency. This effectively mitigates split-brain in
this situation (and likely others). Here's how it works now.
1) Primary loses network connection to NFS.
2) Backup activates.
3) Primary reconnects to NFS.
4) Primary detects that the lock file's timestamp has been updated and
shuts itself down.
When the primary shuts down in step #4 the Topology on the backup can be
damaged. Protections were added for this via ARTEMIS-2868 but only for
the replicated use-case. This commit applies the protection for
removeMember() so that the Topology remains intact.
There are no tests for these changes as I cannot determine how to
properly simulate this use-case. However, there have never been robust,
automated tests for these kinds of NFS use-cases so this is not a
departure from the norm.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Lots of work on the test-suite in this commit including:
ActiveMQClient.createServerLocator_(..)
are surrounded with addServer() where appropriate