Starting to process request sets, this can take a while
Error query: Error query: SQLSTATE[HY000]: General error: 1020 Record has changed since last read in table 'matomo_log_visit'; try restarting transaction In query: UPDATE matomo_log_visit SET profilable = ?, visitor_seconds_since_order = ?, visit_exit_idaction_name = ?, visit_exit_idaction_url = ?, visit_total_actions = visit_total_actions + 1 , visit_total_interactions = visit_total_interactions + 1 , visit_total_time = ? WHERE idsite = ? AND idvisit = ? Parameters: array (
0 => 1,
1 => NULL,
2 => 200127,
3 => 200128,
4 => 952,
5 => 1,
6 => 1234653346,
) In query: UPDATE matomo_log_visit SET profilable = ?, visitor_seconds_since_order = ?, visit_exit_idaction_name = ?, visit_exit_idaction_url = ?, visit_total_actions = visit_total_actions + 1 , visit_total_interactions = visit_total_interactions + 1 , visit_total_time = ? WHERE idsite = ? AND idvisit = ? Parameters: array (
0 => 1,
1 => NULL,
2 => 200127,
3 => 200128,
4 => 952,
5 => 1,
6 => 1234653346,
)
In Mysql.php line 411:
There is no active transaction
If an
innodb_snapshot_isolationor similar transaction-related DB exception occurs during processing, Queued Tracking attempts to roll back but there's no transaction any more - the DB has already aborted the transaction, so this throws a fatal error and causes unwanted side effects such as site-wide cache destruction (matomo-org/matomo#25000).It would be good to add 1020 to
onExceptionso it at least gets retried (MariaDB LTS hasinnodb_snapshot_isolationon by default), but attempting to rollback outside of the transaction is still fatal - this is already the case with InnoDB deadlocks and other transaction related errors. I would suggest catching a rollback with no active transaction error and make it a no-op as the current logic always sets$this->hasError = trueeven if it's a retriable transaction error, so rollbacks are triggered regardless.