summaryrefslogtreecommitdiffstats
path: root/container-accesslogging
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2018-09-26 16:18:08 +0200
committerGitHub <noreply@github.com>2018-09-26 16:18:08 +0200
commitb4bd563a4c22652437a39d83161f14abbb540f6e (patch)
treea7d2fae084392dea90584aefb69dcf7ebb33bae8 /container-accesslogging
parenta246879bed135a7c5861eab5ad0da85e16e539d7 (diff)
Revert "Revert "Balder/add native fadvise""
Diffstat (limited to 'container-accesslogging')
-rw-r--r--container-accesslogging/src/main/java/com/yahoo/container/logging/LogFileHandler.java20
1 files changed, 17 insertions, 3 deletions
diff --git a/container-accesslogging/src/main/java/com/yahoo/container/logging/LogFileHandler.java b/container-accesslogging/src/main/java/com/yahoo/container/logging/LogFileHandler.java
index d729b092670..9963429bf97 100644
--- a/container-accesslogging/src/main/java/com/yahoo/container/logging/LogFileHandler.java
+++ b/container-accesslogging/src/main/java/com/yahoo/container/logging/LogFileHandler.java
@@ -2,6 +2,7 @@
package com.yahoo.container.logging;
import com.yahoo.container.core.AccessLogConfig;
+import com.yahoo.io.NativeIO;
import com.yahoo.log.LogFileDb;
import java.io.File;
@@ -263,15 +264,28 @@ public class LogFileHandler extends StreamHandler {
numberOfRecords = 0;
lastRotationTime = now;
nextRotationTime = 0; //figure it out later (lazy evaluation)
- if (compressOnRotation && (oldFileName != null)) {
- triggerCompression(oldFileName);
+ if ((oldFileName != null)) {
+ if (compressOnRotation) {
+ triggerCompression(oldFileName);
+ } else {
+ NativeIO nativeIO = new NativeIO();
+ nativeIO.dropFileFromCache(new File(oldFileName));
+ }
}
}
private void triggerCompression(String oldFileName) {
try {
+ String gzippedFileName = oldFileName + ".gz";
Runtime r = Runtime.getRuntime();
- Process p = r.exec(new String[] { "gzip", oldFileName });
+ StringBuilder cmd = new StringBuilder("gzip");
+ cmd.append(" < "). append(oldFileName).append(" > ").append(gzippedFileName);
+ Process p = r.exec(cmd.toString());
+ NativeIO nativeIO = new NativeIO();
+ File oldFile = new File(oldFileName);
+ nativeIO.dropFileFromCache(oldFile); // Drop from cache in case somebody else has a reference to it preventing from dying quickly.
+ oldFile.delete();
+ nativeIO.dropFileFromCache(new File(gzippedFileName));
// Detonator pattern: Think of all the fun we can have if gzip isn't what we
// think it is, if it doesn't return, etc, etc
} catch (IOException e) {