You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by ti...@apache.org on 2022/12/19 08:35:14 UTC
[ignite] branch master updated: IGNITE-17384 Print partition conflicts into control-utility.log (#10438)
This is an automated email from the ASF dual-hosted git repository.
timoninmaxim pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ignite.git
The following commit(s) were added to refs/heads/master by this push:
new e441d91e793 IGNITE-17384 Print partition conflicts into control-utility.log (#10438)
e441d91e793 is described below
commit e441d91e7934623b292221b532a205e75124401b
Author: Ilhom <il...@gmail.com>
AuthorDate: Mon Dec 19 11:35:03 2022 +0300
IGNITE-17384 Print partition conflicts into control-utility.log (#10438)
---
.../internal/commandline/cache/IdleVerify.java | 25 ++++++++--------
.../util/GridCommandHandlerClusterByClassTest.java | 33 ++++++++++++++++++++++
2 files changed, 46 insertions(+), 12 deletions(-)
diff --git a/modules/control-utility/src/main/java/org/apache/ignite/internal/commandline/cache/IdleVerify.java b/modules/control-utility/src/main/java/org/apache/ignite/internal/commandline/cache/IdleVerify.java
index 1a0d32ae982..61659fb00b7 100644
--- a/modules/control-utility/src/main/java/org/apache/ignite/internal/commandline/cache/IdleVerify.java
+++ b/modules/control-utility/src/main/java/org/apache/ignite/internal/commandline/cache/IdleVerify.java
@@ -213,7 +213,7 @@ public class IdleVerify extends AbstractCommand<IdleVerify.Arguments> {
if (args.dump())
cacheIdleVerifyDump(client, clientCfg, logger);
else if (idleVerifyV2)
- cacheIdleVerifyV2(client, clientCfg);
+ cacheIdleVerifyV2(client, clientCfg, logger);
else
legacyCacheIdleVerify(client, clientCfg, logger);
}
@@ -320,10 +320,12 @@ public class IdleVerify extends AbstractCommand<IdleVerify.Arguments> {
/**
* @param client Client.
* @param clientCfg Client configuration.
+ * @param logger Logger to use.
*/
private void cacheIdleVerifyV2(
GridClient client,
- GridClientConfiguration clientCfg
+ GridClientConfiguration clientCfg,
+ IgniteLogger logger
) throws GridClientException {
VisorIdleVerifyTaskArg taskArg = new VisorIdleVerifyTaskArg(
args.caches(),
@@ -335,10 +337,13 @@ public class IdleVerify extends AbstractCommand<IdleVerify.Arguments> {
IdleVerifyResultV2 res = executeTask(client, VisorIdleVerifyTaskV2.class, taskArg, clientCfg);
- logParsedArgs(taskArg, System.out::print);
- res.print(System.out::print, false);
+ logParsedArgs(taskArg, logger::info);
+
+ StringBuilder sb = new StringBuilder();
+ res.print(sb::append, false);
+ logger.info(sb.toString());
- if (F.isEmpty(res.exceptions()))
+ if (F.isEmpty(res.exceptions()) && !res.hasConflicts())
return;
try {
@@ -349,18 +354,14 @@ public class IdleVerify extends AbstractCommand<IdleVerify.Arguments> {
res.print(pw::print, true);
pw.flush();
- System.out.println("See log for additional information. " + f.getAbsolutePath());
+ logger.info("See log for additional information. " + f.getAbsolutePath());
}
catch (FileNotFoundException e) {
- System.err.println("Can't write exceptions to file " + f.getAbsolutePath() + " " + e.getMessage());
-
- e.printStackTrace();
+ logger.error("Can't write exceptions to file " + f.getAbsolutePath(), e);
}
}
catch (IgniteCheckedException e) {
- System.err.println("Can't find work directory. " + e.getMessage());
-
- e.printStackTrace();
+ logger.error("Can't find work directory. " + e.getMessage(), e);
}
}
diff --git a/modules/control-utility/src/test/java/org/apache/ignite/util/GridCommandHandlerClusterByClassTest.java b/modules/control-utility/src/test/java/org/apache/ignite/util/GridCommandHandlerClusterByClassTest.java
index 657ebc3a18b..d40f05bfcbb 100644
--- a/modules/control-utility/src/test/java/org/apache/ignite/util/GridCommandHandlerClusterByClassTest.java
+++ b/modules/control-utility/src/test/java/org/apache/ignite/util/GridCommandHandlerClusterByClassTest.java
@@ -490,6 +490,39 @@ public class GridCommandHandlerClusterByClassTest extends GridCommandHandlerClus
);
}
+ /** */
+ @Test
+ public void testCacheIdleVerifyDumpFile() throws IOException {
+ IgniteEx ignite = crd;
+
+ createCacheAndPreload(ignite, 100);
+
+ injectTestSystemOut();
+
+ HashSet<Integer> clearKeys = new HashSet<>(asList(1, 2, 3, 4, 5, 6));
+
+ ignite.context().cache().cache(DEFAULT_CACHE_NAME).clearLocallyAll(clearKeys, true, true, true);
+
+ assertEquals(EXIT_CODE_OK, execute("--cache", "idle_verify"));
+
+ Pattern fileNamePattern = Pattern.compile("See log for additional information. (.*)");
+ Matcher matcher = fileNamePattern.matcher(testOut.toString());
+
+ if (matcher.find()) {
+ String fileContent = new String(Files.readAllBytes(Paths.get(matcher.group(1))));
+ String out = testOut.toString();
+
+ assertContains(log, out, fileContent);
+
+ String summaryStr = "Total:" + nl() + DEFAULT_CACHE_NAME + " (6)" + nl() + "1,2,3,4,5,6" + nl();
+
+ assertContains(log, fileContent, "conflict partitions");
+ assertContains(log, fileContent, summaryStr);
+ }
+ else
+ fail("Should contain file name");
+ }
+
/** */
@Test
public void testCacheIdleVerifyNodeFilter() {