MySQL/MariaDB error on upgrade to 5.2: Row size too large

  • Well, this didn't work...

    I'm using MariaDB 10.3.22 (Debian 10). During the upgrade to WCF 5.2 the ALTER SQL (specifically, the statement 'ALTER TABLE `gallery1_image` ADD COLUMN `favorites` int(10) NOT NULL DEFAULT '0'' errors out with SQLSTATE 42000/1118 Row size too large. I've attached the logfile below.

    This effectively breaks the update process and requires a rollback.

    After some digging, this seems to be a known issue with the InnoDB-Engine. However, while there seem to be various workarounds (which I haven't yet had the time to fully explore) the only definitive "fix" for now seems to be switching to the MyISAM-Engine (which, due to its limitations, is not at all a desirable proposition!).

    Has anyone run into the same issue or knows a reliable workaround?

  • Hello,

    This might indicate a too low value for innodb_log_file_size, which could raise the same error message. The number of columns should be perfectly fine, also MyISAM is not even remotely a solution, it's a dying storage engine with a very limited feature set - it doesn't even support foreign keys.

    Alexander Ebert
    Senior Developer WoltLab® GmbH

  • That is an option to try. However (due to a mistake all my own, forgot a -r for cp and somehow didn't notice) I can't roll back cleanly right now... That's another issue entirely though. Thanks for the tip, I'll definitely check that.

    As for MyISAM, I know that. As I said, that's not at all a desirable option.