From b95d4dd68a5bb77d37c0a9822b6e24ec687f24ac Mon Sep 17 00:00:00 2001 From: mattpiwik <matthieu.aubry@gmail.com> Date: Sun, 11 Sep 2011 21:08:56 +0000 Subject: [PATCH] Fixes #2655 git-svn-id: http://dev.piwik.org/svn/trunk@5156 59fd770c-687e-43c8-a1e3-f5a4ff64c105 --- config/global.ini.php | 3 +++ core/Piwik.php | 20 ++++++++++++++++---- 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/config/global.ini.php b/config/global.ini.php index d53ad8b109..e6ff05d97e 100644 --- a/config/global.ini.php +++ b/config/global.ini.php @@ -140,6 +140,9 @@ minimum_pgsql_version = 8.3 ; Minimum adviced memory limit in php.ini file (see memory_limit value) minimum_memory_limit = 128 +; Minimum memory limit enforced when archived via misc/cron/archive.php +minimum_memory_limit_when_archiving = 768 + ; Piwik will check that usernames and password have a minimum length, and will check that characters are "allowed" ; This can be disabled, if for example you wish to import an existing User database in Piwik and your rules are less restrictive disable_checks_usernames_attributes = 0 diff --git a/core/Piwik.php b/core/Piwik.php index a27ec3b4b3..287bb70bac 100644 --- a/core/Piwik.php +++ b/core/Piwik.php @@ -968,14 +968,26 @@ class Piwik */ static public function raiseMemoryLimitIfNecessary() { - $minimumMemoryLimit = Zend_Registry::get('config')->General->minimum_memory_limit; $memoryLimit = self::getMemoryLimitValue(); - if($memoryLimit !== false - && $memoryLimit < $minimumMemoryLimit) + if($memoryLimit === false) + { + return false; + } + $minimumMemoryLimit = Zend_Registry::get('config')->General->minimum_memory_limit; + + if(Piwik_Common::isArchivePhpTriggered()) + { + $minimumMemoryLimitWhenArchiving = Zend_Registry::get('config')->General->minimum_memory_limit_when_archiving; + if($memoryLimit < $minimumMemoryLimitWhenArchiving) + { + return self::setMemoryLimit($minimumMemoryLimitWhenArchiving); + } + return false; + } + if($memoryLimit < $minimumMemoryLimit) { return self::setMemoryLimit($minimumMemoryLimit); } - return false; } -- GitLab