/** * Do operations on the REGION_NAME's keys using keyIntervals to specify which keys get which * operations. This will return when all operations in all intervals have completed. * * @param availableOps - Bits which are true correspond to the operations that should be executed. */ public void doOps(BitSet availableOps) { boolean useTransactions = getInitialImage.InitImagePrms.useTransactions(); while (availableOps.cardinality() != 0) { int whichOp = getOp(availableOps, operations.length); boolean doneWithOps = false; if (useTransactions) { TxHelper.begin(); } switch (whichOp) { case ADD_NEW_KEY: doneWithOps = addNewKey(); break; case INVALIDATE: doneWithOps = invalidate(); break; case DESTROY: doneWithOps = destroy(); break; case UPDATE_EXISTING_KEY: doneWithOps = updateExistingKey(); break; case GET: doneWithOps = get(); break; case LOCAL_INVALIDATE: doneWithOps = localInvalidate(); break; case LOCAL_DESTROY: doneWithOps = localDestroy(); break; default: { throw new TestException("Unknown operation " + whichOp); } } if (useTransactions) { try { TxHelper.commit(); } catch (CommitConflictException e) { // currently not expecting any conflicts ... throw new TestException( "Unexpected CommitConflictException " + TestHelper.getStackTrace(e)); } } if (doneWithOps) { Log.getLogWriter().info("Done with operation " + whichOp); availableOps.clear(whichOp); } if (sleepBetweenOps) { Log.getLogWriter().info("Sleeping between ops for " + SLEEP_BETWEEN_OPS_MILLIS + " millis"); MasterController.sleepForMs(SLEEP_BETWEEN_OPS_MILLIS); } } }
/** Wait for the given vmid to recognize a severe alert. */ public static void waitForSevereAlert(int vmID) { Log.getLogWriter().info("Waiting for vmID " + vmID + " to recognize a severe alert"); String key = ControllerBB.SevereAlertKey + vmID; while (true) { if (ControllerBB.getBB().getSharedMap().containsKey(key)) { Log.getLogWriter().info("Done waiting for vmID " + vmID + " to recognize a severe alert"); return; } else { MasterController.sleepForMs(2000); } checkForError(); } }
/** Wait for the given vmid to become dead. */ public static void waitForIsDead(int vmID) { Log.getLogWriter().info("Waiting for vmID " + vmID + " to become dead"); String key = ControllerBB.IsDeadKey + vmID; while (true) { if (ControllerBB.getBB().getSharedMap().containsKey(key)) { Log.getLogWriter().info("Done waiting for vmID " + vmID + " to become dead"); return; } else { MasterController.sleepForMs(2000); } checkForError(); } }
/** Wait for the given vm to restart. */ public static void waitForRestartedVm(int vmID) { Log.getLogWriter().info("Waiting for vmID " + vmID + " to restart"); String key = ControllerBB.InitIsCompleteKey + vmID; while (true) { if (ControllerBB.getBB().getSharedMap().containsKey(key)) { Log.getLogWriter().info("Done Waiting for vmID " + vmID + " to restart"); return; } else { MasterController.sleepForMs(2000); } checkForError(); } }
/** Wait for membership failure to complete. */ public static void waitMembershipFailureComplete(int vmID) { Log.getLogWriter().info("Waiting for vmID " + vmID + " to complete membership failure"); String key = ControllerBB.MembershipFailureCompleteKey + vmID; while (true) { if (ControllerBB.getBB().getSharedMap().containsKey(key)) { Log.getLogWriter() .info("Done waiting for vmID " + vmID + " to complete membership failure"); return; } else { MasterController.sleepForMs(2000); } checkForError(); } }
protected void doAfterCreate(EntryEvent event) { if (ControllerBB.isPlayDeadEnabled()) { SBUtil.playDead(); } if (ControllerBB.isSlowListenerEnabled()) { // slow logCall("afterCreate", event); Log.getLogWriter().info("Sleeping while slow listeners are enabled..."); do { MasterController.sleepForMs(5000); } while (ControllerBB.isSlowListenerEnabled()); Log.getLogWriter().info("Done being slow, returning from ForcedDiscListener.afterCreate"); } else if (ControllerBB.isSicknessEnabled()) { // sick logCall("afterCreate", event); SBUtil.beSick(); } }