public class LongGCDisruption extends SingleNodeDisruption
Modifier and Type | Field and Description |
---|---|
protected java.lang.String |
disruptedNode |
cluster, logger, random
Constructor and Description |
---|
LongGCDisruption(java.util.Random random,
java.lang.String disruptedNode) |
Modifier and Type | Method and Description |
---|---|
TimeValue |
expectedTimeToHeal() |
protected long |
getBlockDetectionIntervalInMillis() |
protected long |
getSuspendingTimeoutInMillis() |
protected java.util.regex.Pattern[] |
getUnsafeClasses() |
boolean |
isBlockDetectionSupported() |
boolean |
isDisruptedNodeThread(java.lang.String threadName) |
protected void |
onBlockDetected(java.lang.management.ThreadInfo blockedThread,
java.lang.management.ThreadInfo blockingThread) |
void |
removeAndEnsureHealthy(InternalTestCluster cluster) |
protected void |
resumeThreads(java.util.Set<java.lang.Thread> threads) |
void |
startDisrupting() |
void |
stopDisrupting() |
protected boolean |
suspendThreads(java.util.Set<java.lang.Thread> nodeThreads)
resolves all threads belonging to given node and suspends them if their current stack trace
is "safe".
|
applyToCluster, applyToNode, ensureNodeCount, removeFromCluster, removeFromNode, testClusterClosed
public LongGCDisruption(java.util.Random random, java.lang.String disruptedNode)
public void startDisrupting()
public boolean isDisruptedNodeThread(java.lang.String threadName)
public void stopDisrupting()
public void removeAndEnsureHealthy(InternalTestCluster cluster)
public TimeValue expectedTimeToHeal()
protected boolean suspendThreads(java.util.Set<java.lang.Thread> nodeThreads)
protected java.util.regex.Pattern[] getUnsafeClasses()
protected long getSuspendingTimeoutInMillis()
public boolean isBlockDetectionSupported()
protected long getBlockDetectionIntervalInMillis()
protected void onBlockDetected(java.lang.management.ThreadInfo blockedThread, @Nullable java.lang.management.ThreadInfo blockingThread)
protected void resumeThreads(java.util.Set<java.lang.Thread> threads)