Uploaded image for project: 'MariaDB Server'
  1. MariaDB Server
  2. MDEV-16548

Innodb fails to start on older kernels that don't support F_DUPFD_CLOEXEC

    XMLWordPrintable

    Details

      Description

      After 10.1.34 was released, we have received several reports of systems using the community repositories unable to start innodb with the error:

      InnoDB: Error: unable to create temporary file; errno: 22
      

      An strace shows:

      3517 1529471977.932867 fcntl(6, F_DUPFD_CLOEXEC, 0) = -1 EINVAL (Invalid argument) <0.000004>
      13517 1529471977.932897 write(2, "2018-06-20  2:19:37 47857084847680 [ERROR] mysqld: Out of resources when opening file 'ib*' (Errcode: 22 \"Invalid argument\")\n", 125) = 125 <0.000008>
      13517 1529471977.932931 close(6)              = 0 <0.000010>
      13517 1529471977.932955 write(2, "2018-06-20 02:19:37 2b86988ad640", 32) = 32 <0.000006>
      13517 1529471977.932978 write(2, "  InnoDB: Error: unable to create temporary file; errno: 22\n", 60) = 60 <0.000006>
      

      Seems that this was introduced in https://github.com/MariaDB/server/commit/bbee025370

      Likely need a runtime check added to ensure F_DUPFD_CLOEXEC is supported by the kernel.

      Haven't checked what other versions may be affected, but there are likely others.

        Attachments

          Issue Links

            Activity

              People

              Assignee:
              marko Marko Mäkelä
              Reporter:
              njackson Nicholas Jackson
              Votes:
              2 Vote for this issue
              Watchers:
              10 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved: