grp.needsRecovery(false);
grp.needsRecovery(true);
return new IgniteCheckedException("Failed to perform cache operation (cluster is in read only mode)"); if (grp.needsRecovery() && !recovery) { if (opType == WRITE && (lossPlc == READ_ONLY_SAFE || lossPlc == READ_ONLY_ALL)) return new IgniteCheckedException(
/** * @param client Client flag. * @param canWrite Can write flag. * @param safe Safe flag. * @throws Exception If failed to start a new node. */ private void checkNewNode( boolean client, boolean canWrite, boolean safe ) throws Exception { this.client = client; try { IgniteEx cl = (IgniteEx)startGrid("newNode"); CacheGroupContext grpCtx = cl.context().cache().cacheGroup(CU.cacheId(DEFAULT_CACHE_NAME)); assertTrue(grpCtx.needsRecovery()); verifyCacheOps(canWrite, safe, cl); validateQuery(safe, cl); } finally { stopGrid("newNode", false); this.client = false; } }
if (grp.needsRecovery() && !recovery) { if (!read && (partLossPlc == READ_ONLY_SAFE || partLossPlc == READ_ONLY_ALL)) return new IgniteCheckedException("Failed to write to cache (cache is moved to a read-only state): " + if (grp.needsRecovery() || grp.topologyValidator() != null) { CacheValidation validation = grpValidRes.get(grp.groupId()); "(cache topology is not valid): " + cctx.name()); if (recovery || !grp.needsRecovery()) return null;