Nikola Pajkovsky 8750f0
From 4f9e8ee289be1061b0fa3cf558b3057522f31bdb Mon Sep 17 00:00:00 2001
Nikola Pajkovsky 8750f0
From: Denys Vlasenko <dvlasenk@redhat.com>
Nikola Pajkovsky 8750f0
Date: Sun, 17 Jul 2011 11:46:45 +0200
Nikola Pajkovsky 8750f0
Subject: [PATCH] abrt-server/ccpp_hook: enlarge spool dir pruning threshold.
Nikola Pajkovsky 8750f0
 Closes bz#692474
Nikola Pajkovsky 8750f0
Nikola Pajkovsky 8750f0
Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
Nikola Pajkovsky 8750f0
(cherry picked from commit c20d967744f1dbbc7d747d8f5d50886f3aefe2bd)
Nikola Pajkovsky 8750f0
Nikola Pajkovsky 8750f0
diff --git a/src/daemon/abrt-server.c b/src/daemon/abrt-server.c
Nikola Pajkovsky 8750f0
index 20caaae..8153ad6 100644
Nikola Pajkovsky 8750f0
--- a/src/daemon/abrt-server.c
Nikola Pajkovsky 8750f0
+++ b/src/daemon/abrt-server.c
Nikola Pajkovsky 8750f0
@@ -143,14 +143,15 @@ static int create_debug_dump()
Nikola Pajkovsky 8750f0
     /* Trim old crash dumps if necessary */
Nikola Pajkovsky 8750f0
     load_abrt_conf();
Nikola Pajkovsky 8750f0
     free_abrt_conf_data(); /* can do this because we need only g_settings_nMaxCrashReportsSize */
Nikola Pajkovsky 8750f0
-    /* x1.25: go a bit up, so that usual in-daemon trimming
Nikola Pajkovsky 8750f0
-     * kicks in first, and we don't "fight" with it:
Nikola Pajkovsky 8750f0
-     */
Nikola Pajkovsky 8750f0
-    g_settings_nMaxCrashReportsSize += g_settings_nMaxCrashReportsSize / 4;
Nikola Pajkovsky 8750f0
     if (g_settings_nMaxCrashReportsSize > 0)
Nikola Pajkovsky 8750f0
     {
Nikola Pajkovsky 8750f0
-        check_free_space(g_settings_nMaxCrashReportsSize);
Nikola Pajkovsky 8750f0
-        trim_debug_dumps(DEBUG_DUMPS_DIR, g_settings_nMaxCrashReportsSize * (double)(1024*1024), path);
Nikola Pajkovsky 8750f0
+        /* x1.25 and round up to 64m: go a bit up, so that usual in-daemon trimming
Nikola Pajkovsky 8750f0
+         * kicks in first, and we don't "fight" with it:
Nikola Pajkovsky 8750f0
+         */
Nikola Pajkovsky 8750f0
+        unsigned maxsize = g_settings_nMaxCrashReportsSize + g_settings_nMaxCrashReportsSize / 4;
Nikola Pajkovsky 8750f0
+        maxsize |= 63;
Nikola Pajkovsky 8750f0
+        check_free_space(maxsize);
Nikola Pajkovsky 8750f0
+        trim_debug_dumps(DEBUG_DUMPS_DIR, maxsize * (double)(1024*1024), path);
Nikola Pajkovsky 8750f0
     }
Nikola Pajkovsky 8750f0
 
Nikola Pajkovsky 8750f0
     free(path);
Nikola Pajkovsky 8750f0
diff --git a/src/hooks/abrt-hook-ccpp.c b/src/hooks/abrt-hook-ccpp.c
Nikola Pajkovsky 8750f0
index f9a72a6..da3b337 100644
Nikola Pajkovsky 8750f0
--- a/src/hooks/abrt-hook-ccpp.c
Nikola Pajkovsky 8750f0
+++ b/src/hooks/abrt-hook-ccpp.c
Nikola Pajkovsky 8750f0
@@ -406,10 +406,6 @@ int main(int argc, char** argv)
Nikola Pajkovsky 8750f0
     /* Parse abrt.conf */
Nikola Pajkovsky 8750f0
     load_abrt_conf();
Nikola Pajkovsky 8750f0
     free_abrt_conf_data(); /* can do this because we need only g_settings_nMaxCrashReportsSize */
Nikola Pajkovsky 8750f0
-    /* x1.25: go a bit up, so that usual in-daemon trimming
Nikola Pajkovsky 8750f0
-     * kicks in first, and we don't "fight" with it:
Nikola Pajkovsky 8750f0
-     */
Nikola Pajkovsky 8750f0
-    g_settings_nMaxCrashReportsSize += g_settings_nMaxCrashReportsSize / 4;
Nikola Pajkovsky 8750f0
     /* ... and plugins/CCpp.conf */
Nikola Pajkovsky 8750f0
     bool setting_MakeCompatCore;
Nikola Pajkovsky 8750f0
     bool setting_SaveBinaryImage;
Nikola Pajkovsky 8750f0
@@ -474,8 +470,12 @@ int main(int argc, char** argv)
Nikola Pajkovsky 8750f0
 
Nikola Pajkovsky 8750f0
     if (g_settings_nMaxCrashReportsSize > 0)
Nikola Pajkovsky 8750f0
     {
Nikola Pajkovsky 8750f0
-        g_settings_nMaxCrashReportsSize += g_settings_nMaxCrashReportsSize / 4;
Nikola Pajkovsky 8750f0
-        check_free_space(g_settings_nMaxCrashReportsSize);
Nikola Pajkovsky 8750f0
+        /* x1.25 and round up to 64m: go a bit up, so that usual in-daemon trimming
Nikola Pajkovsky 8750f0
+         * kicks in first, and we don't "fight" with it:
Nikola Pajkovsky 8750f0
+         */
Nikola Pajkovsky 8750f0
+        unsigned maxsize = g_settings_nMaxCrashReportsSize + g_settings_nMaxCrashReportsSize / 4;
Nikola Pajkovsky 8750f0
+        maxsize |= 63;
Nikola Pajkovsky 8750f0
+        check_free_space(maxsize);
Nikola Pajkovsky 8750f0
     }
Nikola Pajkovsky 8750f0
 
Nikola Pajkovsky 8750f0
     char path[PATH_MAX];
Nikola Pajkovsky 8750f0
@@ -662,7 +662,12 @@ int main(int argc, char** argv)
Nikola Pajkovsky 8750f0
         /* rhbz#539551: "abrt going crazy when crashing process is respawned" */
Nikola Pajkovsky 8750f0
         if (g_settings_nMaxCrashReportsSize > 0)
Nikola Pajkovsky 8750f0
         {
Nikola Pajkovsky 8750f0
-            trim_debug_dumps(DEBUG_DUMPS_DIR, g_settings_nMaxCrashReportsSize * (double)(1024*1024), path);
Nikola Pajkovsky 8750f0
+            /* x1.25 and round up to 64m: go a bit up, so that usual in-daemon trimming
Nikola Pajkovsky 8750f0
+             * kicks in first, and we don't "fight" with it:
Nikola Pajkovsky 8750f0
+             */
Nikola Pajkovsky 8750f0
+            unsigned maxsize = g_settings_nMaxCrashReportsSize + g_settings_nMaxCrashReportsSize / 4;
Nikola Pajkovsky 8750f0
+            maxsize |= 63;
Nikola Pajkovsky 8750f0
+            trim_debug_dumps(DEBUG_DUMPS_DIR, maxsize * (double)(1024*1024), path);
Nikola Pajkovsky 8750f0
         }
Nikola Pajkovsky 8750f0
 
Nikola Pajkovsky 8750f0
         return 0;
Nikola Pajkovsky 8750f0
-- 
Nikola Pajkovsky 8750f0
1.7.6
Nikola Pajkovsky 8750f0