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);

Reply via email to