Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/matomo-org/matomo.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordiosmosis <diosmosis@users.noreply.github.com>2020-03-10 03:21:49 +0300
committerGitHub <noreply@github.com>2020-03-10 03:21:49 +0300
commit22cde646ec8247a068f75e673b69a51b97c825c2 (patch)
tree9625275ddbcc4b4252f3ab8dc42f449b3cf6bb3c /plugins
parentd6df56cb86f74b4fd3406b2802945470449b4b0a (diff)
Move Archive.php archive invalidation to Loader… (#15616)3.13.4-b1
* Move Archive.php archive invalidation to Loader so we only invalidate when about to launch archiving. * Attempt to handle more cases when invalidating before launching archiving. * fix possible sql error * fix possible error * fixing some tests * remove test code * Only invalidate specific archive being requested. * Do not invalidate on today in tracker and avoid existing valid archive check in CronArchive. * more test fixes * Attempt to fix more tests. * Fixing last tests. * another test fix * Invalidate in scheduled task if browser triggered archiving is enabled. * deal with TODO * Get ArchiveSelectorTest to pass. * applying review feedback including new tests * apply review feedback & fix tests * fix couple more tests Co-authored-by: Thomas Steur <tsteur@users.noreply.github.com>
Diffstat (limited to 'plugins')
-rw-r--r--plugins/CoreAdminHome/Tasks.php18
-rw-r--r--plugins/CoreAdminHome/tests/Integration/TasksTest.php1
-rw-r--r--plugins/Monolog/Processor/ExceptionToTextProcessor.php4
-rw-r--r--plugins/PrivacyManager/tests/Integration/DataPurgingTest.php7
4 files changed, 29 insertions, 1 deletions
diff --git a/plugins/CoreAdminHome/Tasks.php b/plugins/CoreAdminHome/Tasks.php
index d94979c9c3..1e3933f972 100644
--- a/plugins/CoreAdminHome/Tasks.php
+++ b/plugins/CoreAdminHome/Tasks.php
@@ -9,11 +9,14 @@
namespace Piwik\Plugins\CoreAdminHome;
use Piwik\API\Request;
+use Piwik\Archive;
+use Piwik\Archive\ArchiveInvalidator;
use Piwik\ArchiveProcessor\Rules;
use Piwik\Archive\ArchivePurger;
use Piwik\Common;
use Piwik\Config;
use Piwik\Container\StaticContainer;
+use Piwik\CronArchive;
use Piwik\DataAccess\ArchiveTableCreator;
use Piwik\Date;
use Piwik\Db;
@@ -60,6 +63,10 @@ class Tasks extends \Piwik\Plugin\Tasks
public function schedule()
{
+ // for browser triggered archiving, make sure we invalidate archives once a day just to make
+ // sure all archives that need to be invalidated get invalidated
+ $this->daily('invalidateOutdatedArchives', null, self::HIGH_PRIORITY);
+
// general data purge on older archive tables, executed daily
$this->daily('purgeOutdatedArchives', null, self::HIGH_PRIORITY);
@@ -81,6 +88,17 @@ class Tasks extends \Piwik\Plugin\Tasks
$this->scheduleTrackingCodeReminderChecks();
}
+ public function invalidateOutdatedArchives()
+ {
+ if (!Rules::isBrowserTriggerEnabled()) {
+ $this->logger->info("Browser triggered archiving disabled, archives will be invalidated during core:archive.");
+ return;
+ }
+
+ $cronArchive = new CronArchive();
+ $cronArchive->invalidateArchivedReportsForSitesThatNeedToBeArchivedAgain();
+ }
+
private function scheduleTrackingCodeReminderChecks()
{
$daysToTrackedVisitsCheck = (int) Config::getInstance()->General['num_days_before_tracking_code_reminder'];
diff --git a/plugins/CoreAdminHome/tests/Integration/TasksTest.php b/plugins/CoreAdminHome/tests/Integration/TasksTest.php
index a23d368de4..89c62252d5 100644
--- a/plugins/CoreAdminHome/tests/Integration/TasksTest.php
+++ b/plugins/CoreAdminHome/tests/Integration/TasksTest.php
@@ -132,6 +132,7 @@ class TasksTest extends IntegrationTestCase
$tasks = array_map(function (Task $task) { return $task->getMethodName() . '.' . $task->getMethodParameter(); }, $tasks);
$expected = [
+ 'invalidateOutdatedArchives.',
'purgeOutdatedArchives.',
'purgeInvalidatedArchives.',
'purgeOrphanedArchives.',
diff --git a/plugins/Monolog/Processor/ExceptionToTextProcessor.php b/plugins/Monolog/Processor/ExceptionToTextProcessor.php
index ab828dc820..0089b27d94 100644
--- a/plugins/Monolog/Processor/ExceptionToTextProcessor.php
+++ b/plugins/Monolog/Processor/ExceptionToTextProcessor.php
@@ -85,6 +85,10 @@ class ExceptionToTextProcessor
public static function getWholeBacktrace(\Exception $exception, $shouldPrintBacktrace = true)
{
+ if (!$shouldPrintBacktrace) {
+ return $exception->getMessage();
+ }
+
$message = "";
$e = $exception;
diff --git a/plugins/PrivacyManager/tests/Integration/DataPurgingTest.php b/plugins/PrivacyManager/tests/Integration/DataPurgingTest.php
index fd1bd4b823..a077bbb230 100644
--- a/plugins/PrivacyManager/tests/Integration/DataPurgingTest.php
+++ b/plugins/PrivacyManager/tests/Integration/DataPurgingTest.php
@@ -10,6 +10,7 @@ namespace Piwik\Plugins\PrivacyManager\tests\Integration;
use Piwik\Archive;
use Piwik\Common;
use Piwik\Config;
+use Piwik\Container\StaticContainer;
use Piwik\DataAccess\RawLogDao;
use Piwik\Date;
use Piwik\Db;
@@ -740,10 +741,14 @@ class DataPurgingTest extends IntegrationTestCase
$range = $rangeStart->toString('Y-m-d') . "," . $rangeEnd->toString('Y-m-d');
$rangeArchive = Archive::build(self::$idSite, 'range', $range);
- $rangeArchive->getNumeric('nb_visits', 'nb_hits');
+ $rangeArchive->getNumeric(['nb_visits']);
APIVisitorInterest::getInstance()->getNumberOfVisitsPerVisitDuration(self::$idSite, 'range', $range);
+ // remove invalidated
+ StaticContainer::get(Archive\ArchivePurger::class)->purgeInvalidatedArchivesFrom(Date::factory('2012-01-01'));
+ StaticContainer::get(Archive\ArchivePurger::class)->purgeInvalidatedArchivesFrom(Date::factory('2012-02-01'));
+
// when archiving is initiated, the archive metrics & reports for EVERY loaded plugin
// are archived. don't want this test to depend on every possible metric, so get rid of
// the unwanted archive data now.