This is an automated email from the ASF dual-hosted git repository. cshannon pushed a commit to branch 2.1 in repository https://gitbox.apache.org/repos/asf/accumulo.git
The following commit(s) were added to refs/heads/2.1 by this push: new 1a9da5af4d Reduce logging when external compactions are cancelled (#3067) 1a9da5af4d is described below commit 1a9da5af4d8e9f461fe2b8c07b83fad5e6987141 Author: Christopher L. Shannon <christopher.l.shan...@gmail.com> AuthorDate: Thu Nov 10 18:31:21 2022 -0500 Reduce logging when external compactions are cancelled (#3067) Reduce logging noise when external compactions are canceled Also only shows stack traces in FileCompactor on file writer close errors when canceled compaction is unexpected. This closes #3023 --- .../accumulo/server/compaction/FileCompactor.java | 19 +++++++++++++++++-- .../java/org/apache/accumulo/compactor/Compactor.java | 2 ++ 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/server/base/src/main/java/org/apache/accumulo/server/compaction/FileCompactor.java b/server/base/src/main/java/org/apache/accumulo/server/compaction/FileCompactor.java index 903d5f2c90..a15f9a901e 100644 --- a/server/base/src/main/java/org/apache/accumulo/server/compaction/FileCompactor.java +++ b/server/base/src/main/java/org/apache/accumulo/server/compaction/FileCompactor.java @@ -258,6 +258,9 @@ public class FileCompactor implements Callable<CompactionStats> { majCStats.setFileSize(mfwTmp.getLength()); return majCStats; + } catch (CompactionCanceledException e) { + log.debug("Compaction canceled {}", extent); + throw e; } catch (IOException | RuntimeException e) { log.error("{}", e.getMessage(), e); throw e; @@ -280,7 +283,18 @@ public class FileCompactor implements Callable<CompactionStats> { } } } catch (IOException | RuntimeException e) { - log.warn("{}", e.getMessage(), e); + /* + * If compaction is enabled then the compaction didn't finish due to a real error condition + * so log any errors on the output file close as a warning. However, if not enabled, then + * the compaction was canceled due to something like tablet split, user cancellation, or + * table deletion which is not an error so log any errors on output file close as a debug as + * this may happen due to an InterruptedException thrown due to the cancellation. + */ + if (env.isCompactionEnabled()) { + log.warn("{}", e.getMessage(), e); + } else { + log.debug("{}", e.getMessage(), e); + } } } } @@ -392,7 +406,8 @@ public class FileCompactor implements Callable<CompactionStats> { try { mfw.close(); } catch (IOException e) { - log.error("{}", e.getMessage(), e); + log.warn("{}", e.getMessage()); + log.debug("{}", e.getMessage(), e); } fs.deleteRecursively(outputFile.getPath()); } catch (Exception e) { diff --git a/server/compactor/src/main/java/org/apache/accumulo/compactor/Compactor.java b/server/compactor/src/main/java/org/apache/accumulo/compactor/Compactor.java index 16f727b26e..627fbab088 100644 --- a/server/compactor/src/main/java/org/apache/accumulo/compactor/Compactor.java +++ b/server/compactor/src/main/java/org/apache/accumulo/compactor/Compactor.java @@ -578,6 +578,8 @@ public class Compactor extends AbstractServer implements MetricsProducer, Compac TCompactionStatusUpdate update2 = new TCompactionStatusUpdate(TCompactionState.SUCCEEDED, "Compaction completed successfully", -1, -1, -1); updateCompactionState(job, update2); + } catch (FileCompactor.CompactionCanceledException cce) { + LOG.debug("Compaction canceled {}", job.getExternalCompactionId()); } catch (Exception e) { LOG.error("Compaction failed", e); err.set(e);