InnoDB fails to start on systems using MariaDB when the kernel is older than 2.6.24

cPanelMichael

Administrator
Staff member
Apr 11, 2011
47,880
2,260
463
Hello,

In MariaDB version 10.1.34, the F_DUPFD_CLOEXEC flag is used with FCNTL as part of the operation to create a temporary file during the InnoDB startup process. Kernel versions older than 2.6.24 do not support the F_DUPFD_CLOEXEC flag, and thus InnoDB will fail to start. The following line will appear in the MySQL error log (/var/lib/mysql/$hostname.err) during the MySQL startup process on affected systems:

Code:
InnoDB: Error: unable to create temporary file; errno: 22
You can run the following commands to confirm which kernel and MariaDB versions are installed on your system:

Code:
mysql --version
uname -r
The recommended workaround is to update the kernel on the affected system to version 2.6.32 or newer. If you're using a VPS on an environment such as OpenVZ or Virtuozzo and you do not have access to the VPS hardware node, then you'll need to reach out to your VPS hosting provider to see if they can update the kernel at the node level.

Let us know if you have any questions.

Thank you.
 

Matthew Swift

Member
Jun 27, 2018
5
1
3
Gloucester MA USA
cPanel Access Level
Root Administrator
The problem in 10.1.34 was ported to 10.2.16, to which cPanel also updates.

Follow MariaDB bug at [MDEV-16548] Innodb fails to start on older kernels that don't support F_DUPFD_CLOEXEC - JIRA

Workaround (if you can't update the kernel to >=2.6.24, which was released more than 10 years ago on 24 January 2008), is to back down from MariaDB 10.1.34 to 10.1.33, or 10.2.16 to 10.2.15. Turn off cPanel automatic updates of operating system packages in WHM (Server Configuration -> Update Preferences) and as root:

% yum downgrade MariaDB-server-10.2.15 MariaDB-client-10.2.15 MariaDB-common-10.2.15 MariaDB-compat-10.2.15 MariaDB-devel-10.2.15 MariaDB-shared-10.2.15
 
  • Like
Reactions: cPanelMichael

Matthew Swift

Member
Jun 27, 2018
5
1
3
Gloucester MA USA
cPanel Access Level
Root Administrator
Posted today on MDEV-16548: "The out-of-support Linux kernel 2.6.18 was released on September 20, 2006. Because it does not make sense to add a run-time check for an out-of-support Linux kernel that is more than 12 years old, I am closing this ticket as ‘Won’t Fix’."

Time for me to switch from GoDaddy to Linode.