Blob Blame Raw
From 4f9e8ee289be1061b0fa3cf558b3057522f31bdb Mon Sep 17 00:00:00 2001
From: Denys Vlasenko <dvlasenk@redhat.com>
Date: Sun, 17 Jul 2011 11:46:45 +0200
Subject: [PATCH] abrt-server/ccpp_hook: enlarge spool dir pruning threshold.
 Closes bz#692474

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
(cherry picked from commit c20d967744f1dbbc7d747d8f5d50886f3aefe2bd)

diff --git a/src/daemon/abrt-server.c b/src/daemon/abrt-server.c
index 20caaae..8153ad6 100644
--- a/src/daemon/abrt-server.c
+++ b/src/daemon/abrt-server.c
@@ -143,14 +143,15 @@ static int create_debug_dump()
     /* Trim old crash dumps if necessary */
     load_abrt_conf();
     free_abrt_conf_data(); /* can do this because we need only g_settings_nMaxCrashReportsSize */
-    /* x1.25: go a bit up, so that usual in-daemon trimming
-     * kicks in first, and we don't "fight" with it:
-     */
-    g_settings_nMaxCrashReportsSize += g_settings_nMaxCrashReportsSize / 4;
     if (g_settings_nMaxCrashReportsSize > 0)
     {
-        check_free_space(g_settings_nMaxCrashReportsSize);
-        trim_debug_dumps(DEBUG_DUMPS_DIR, g_settings_nMaxCrashReportsSize * (double)(1024*1024), path);
+        /* x1.25 and round up to 64m: go a bit up, so that usual in-daemon trimming
+         * kicks in first, and we don't "fight" with it:
+         */
+        unsigned maxsize = g_settings_nMaxCrashReportsSize + g_settings_nMaxCrashReportsSize / 4;
+        maxsize |= 63;
+        check_free_space(maxsize);
+        trim_debug_dumps(DEBUG_DUMPS_DIR, maxsize * (double)(1024*1024), path);
     }
 
     free(path);
diff --git a/src/hooks/abrt-hook-ccpp.c b/src/hooks/abrt-hook-ccpp.c
index f9a72a6..da3b337 100644
--- a/src/hooks/abrt-hook-ccpp.c
+++ b/src/hooks/abrt-hook-ccpp.c
@@ -406,10 +406,6 @@ int main(int argc, char** argv)
     /* Parse abrt.conf */
     load_abrt_conf();
     free_abrt_conf_data(); /* can do this because we need only g_settings_nMaxCrashReportsSize */
-    /* x1.25: go a bit up, so that usual in-daemon trimming
-     * kicks in first, and we don't "fight" with it:
-     */
-    g_settings_nMaxCrashReportsSize += g_settings_nMaxCrashReportsSize / 4;
     /* ... and plugins/CCpp.conf */
     bool setting_MakeCompatCore;
     bool setting_SaveBinaryImage;
@@ -474,8 +470,12 @@ int main(int argc, char** argv)
 
     if (g_settings_nMaxCrashReportsSize > 0)
     {
-        g_settings_nMaxCrashReportsSize += g_settings_nMaxCrashReportsSize / 4;
-        check_free_space(g_settings_nMaxCrashReportsSize);
+        /* x1.25 and round up to 64m: go a bit up, so that usual in-daemon trimming
+         * kicks in first, and we don't "fight" with it:
+         */
+        unsigned maxsize = g_settings_nMaxCrashReportsSize + g_settings_nMaxCrashReportsSize / 4;
+        maxsize |= 63;
+        check_free_space(maxsize);
     }
 
     char path[PATH_MAX];
@@ -662,7 +662,12 @@ int main(int argc, char** argv)
         /* rhbz#539551: "abrt going crazy when crashing process is respawned" */
         if (g_settings_nMaxCrashReportsSize > 0)
         {
-            trim_debug_dumps(DEBUG_DUMPS_DIR, g_settings_nMaxCrashReportsSize * (double)(1024*1024), path);
+            /* x1.25 and round up to 64m: go a bit up, so that usual in-daemon trimming
+             * kicks in first, and we don't "fight" with it:
+             */
+            unsigned maxsize = g_settings_nMaxCrashReportsSize + g_settings_nMaxCrashReportsSize / 4;
+            maxsize |= 63;
+            trim_debug_dumps(DEBUG_DUMPS_DIR, maxsize * (double)(1024*1024), path);
         }
 
         return 0;
-- 
1.7.6