[ERROR] [MY-011906] [InnoDB] Database page corruption on disk or a failed file read of page

Checklist
[x ] I have read intro post: https://community.passbolt.com/t/about-the-installation-issues-category/12
[x ] I have read the tutorials, help and searched for similar issues
[x ] I provide relevant information about my server (component names and versions, etc.)
[x ] I provide a copy of my logs and healthcheck
[x ] I describe the steps I have taken to trouble shoot the problem
[x ] I describe the steps on how to reproduce the issue

Host Server
Ubuntu 22.04.3 LTS
VMware Workstation Pro 17.0.2

Passbolt Server (VM)
Ubuntu 22.04.3 LTS
Passbolt 4.4.2

Passbolt VM crashed after /var/log/mysql/error.log file grew unrestricted utilizing all available disk space. I was able to clear out error.log by flushing logs. New error.log file continues to grow with the same entry every few seconds:

InnoDB: End of page dump
InnoDB: Page may be an index page where index id is 298
2025-04-30T18:07:28.723178Z 0 [ERROR] [MY-011906] [InnoDB] Database page corruption on disk or a failed file read of page [page id: space=67, page number=15208]. You may have to recover from a backup.
len 16384; hex

Which is followed by an very long hex number. Each line entry is the same, except for the time stamp. Passbolt web interface is running and accessible for login and working. Error.log file continues to grow very quickly. Please help me understand the error [ERROR] [MY-011906] [InnoDB] Database page corruption on disk or a failed file read of page and what is my best course of action? i.e. innodb_force_recovery = 1 vs migrating the installation to a fresh VM.

Thank you for your consideration.
-Nick

Passbolt API Status
Environment
PHP version 8.1.2-1ubuntu2.21.
PHP version is 8.1 or above.
PCRE compiled with unicode support.
The temporary directory and its content are writable and not executable.
The logs directory and its content are writable.
GD or Imagick extension is installed.
Intl extension is installed.
Mbstring extension is installed.
SSL access is enabled.
Config files
The application config file is present
The passbolt config file is present
Core config
Debug mode is off.
Cache is working.
Unique value set for security.salt
Full base url is set to https://passbolt.lawmg.com
App.fullBaseUrl validation OK.
Could not reach the /healthcheck/status with the url specified in App.fullBaseUrl
Database
The application is able to connect to the database
31 tables found
Some default content is present
The database schema up to date.
GPG Configuration
PHP GPG Module is installed and loaded.
The environment variable GNUPGHOME is set to /var/lib/passbolt/.gnupg.
The directory /var/lib/passbolt/.gnupg containing the keyring is writable by the webserver user.
The server OpenPGP key is not the default one
The public key file is defined in /etc/passbolt/passbolt.php and readable.
The private key file is defined in /etc/passbolt/passbolt.php and readable.
The server key fingerprint matches the one defined in /etc/passbolt/passbolt.php.
The server public key defined in the /etc/passbolt/passbolt.php (or environment variables) is in the keyring.
There is a valid email id defined for the server key.
The public key can be used to encrypt a message.
The private key can be used to sign a message.
The public and private keys can be used to encrypt and sign a message.
The private key can be used to decrypt a message.
The private key can be used to decrypt and verify a message.
The public key can be used to verify a signature.
The server public key format is Gopengpg compatible.
The server private key format is Gopengpg compatible.
Application configuration
This installation is not up to date. Currently using 4.4.2 and it should be 5.0.0.
Passbolt is configured to force SSL use.
App.fullBaseUrl is set to HTTPS.
Selenium API endpoints are disabled.
Search engine robots are told not to index content.
The deprecated self registration public setting was not found in /etc/passbolt/passbolt.php.
Host availability checking is disabled.
Serving the compiled version of the javascript app.
Some email notifications are disabled by the administrator.

Got the VM in working condition. First step was to free enough space to start services.

cd /var/log/mysql/
sudo journalctl --vacuum-size=50M
sudo mv error.log error.old
sudo mysqladmin flush-logs
sudo rm error.old
sudo df -h

Next step is to fix the error causing the log to fill the storage drive. I tried “mysqlcheck --repair passboltdb” with error returned “mysqlcheck error 2013 the storage engine for the table doesn’t support repair”

Ok…

But, aha! mysqlcheck -o can effectively repair corrupted InnoDB tables since it in fact does a “recreate + analyze”.

mysqlcheck -o passboltdb

Returns “Table does not support optimize, doing recreate + analyze instead”. And voila, no more multi GB log files filling up storage! Hope this helps anyone in the future.

-Nick

2 Likes