Description
I think only checking for loaded might result in this error but not sure: https://travis-ci.org/piwik/piwik/jobs/90662653#L1158
FastCGI sent in stderr: "PHP message: Error in Piwik (tracker): Error query: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'last_idlink_va' in 'field list' In query: SELECT visit_last_action_time, visit_first_action_time, idvisitor, idvisit, user_id, visit_exit_idaction_url,
Point is some plugins may need ours to install. For example when they add columns to log tables. Imagine a plugin defines a new column for a log table which takes 10 hours to install. In these 10 hours the code of the not yet installed plugin will be already used as it is considered activated. This will lead to tracking errors for 10 hours as the data cannot be written into the table as the new column does not exist yet.
We considered this already when using components (check for $this->getPluginsLoadedAndActivated()
) but eg not in DI when checking for config files https://github.com/piwik/piwik/blob/2.15.1-b1/core/Container/ContainerFactory.php#L134 . This is eg a problem with DI 'tracker.request.processors'
as request processor will be already used even though the plugin is not installed yet.