4.0.5 issues with Actions and Goal plugins (unknown columns)

I updated to 4.0.4 (and to 4.0.5) today (successfully run the DB update routine via console), anyway I had to disable the Actions plugin, as the following error is displayed on dashboard:

Mysqli prepare error: Unknown column ‘log_link_visit_action.search_cat’ in ‘field list’

and

Mysqli prepare error: Unknown column ‘log_link_visit_action.product_price’ in ‘field list’ - in plugin Goals.

Any help on how to fix this would be much appreciated!
Thx

Hi,

I am not sure if it is possible to disable the actions plugin as other plugins (like in your case the goals plugin) might depend on it.

Disabling is not really an option of course - the question for me is how can this be fixed? can e.g. the update routine be run once more to check if everything went ok?

Hi,

You can run sudo -u www-data php /your/matomo/dir//console core:update (or however that command looks on your server setup) to rerun the database update (in case it didn’t finish).

I ran ./console console:update and got the info Everything is already up to date

FYI - I manually checked the database structure and the table was missing the new columns - this is why I manually added them by using the attached SQL. I just wonder why the console command core:update did not check that the table structure was incomplete?

ALTER TABLE piwikdb.piwik_log_link_visit_action
ADD COLUMN search_cat VARCHAR(255) NULL DEFAULT NULL AFTER custom_dimension_5,
ADD COLUMN search_count VARCHAR(200) UNSIGNED NULL DEFAULT NULL AFTER search_cat,
ADD COLUMN time_dom_completion MEDIUMINT(10) UNSIGNED NULL DEFAULT NULL AFTER search_count,
ADD COLUMN time_dom_processing MEDIUMINT(10) UNSIGNED NULL DEFAULT NULL AFTER time_dom_completion,
ADD COLUMN time_network MEDIUMINT(10) UNSIGNED NULL DEFAULT NULL AFTER time_dom_processing,
ADD COLUMN time_on_load MEDIUMINT(10) UNSIGNED NULL DEFAULT NULL AFTER time_network,
ADD COLUMN time_server MEDIUMINT(10) UNSIGNED NULL DEFAULT NULL AFTER time_on_load,
ADD COLUMN time_transfer MEDIUMINT(10) UNSIGNED NULL DEFAULT NULL AFTER time_server,
ADD COLUMN idaction_product_cat INT(10) UNSIGNED NULL DEFAULT NULL AFTER time_transfer,
ADD COLUMN idaction_product_cat2 INT(10) UNSIGNED NULL DEFAULT NULL AFTER idaction_product_cat,
ADD COLUMN idaction_product_cat3 INT(10) UNSIGNED NULL DEFAULT NULL AFTER idaction_product_cat2,
ADD COLUMN idaction_product_cat4 INT(10) UNSIGNED NULL DEFAULT NULL AFTER idaction_product_cat3,
ADD COLUMN idaction_product_cat5 INT(10) UNSIGNED NULL DEFAULT NULL AFTER idaction_product_cat4,
ADD COLUMN idaction_product_name INT(10) UNSIGNED NULL DEFAULT NULL AFTER idaction_product_cat5,
ADD COLUMN product_price DOUBLE NULL DEFAULT NULL AFTER idaction_product_name,
ADD COLUMN idaction_product_sku INT(10) UNSIGNED NULL DEFAULT NULL AFTER product_price

1 Like

We found and fixed the issue. It was caused by an incomplete database update due to MariaDB 10.1 usage, which had reached its limits (we had to set row_format to DYNAMIC before we could apply the DDL update manually - see https://mariadb.com/kb/en/troubleshooting-row-size-too-large-errors-with-innodb/ for details). Anyway it would be great if the update procedure would also check those fails in the future.

1 Like

What was the solution for this in the end, how do I fix this? As I see, all of the table rows are already DYNAMIC

As said in my last reply, in our case the fix was setting row_format to DYNAMIC. We also checked the database structure from a fresh install and manually updated the DDL from our production environment accordingly.

We accounted this where the DB is about 700GB and the log_link_visit_action table is about 192GB.

This post solved it. Thanx! :pray: