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

innodb_flush_method=O_DIRECT creates excessive errors on Solaris

    XMLWordPrintable

Details

    Description

      After upgrading MariaDB from 10.3.9 to 10.11.6, we got an excessive number of errors in the server logs:
      ```
      2023-12-20 11:25:48 0 [ERROR] InnoDB: Failed to set DIRECTIO_ON on file ./mysql/gtid_slave_pos.ibd; OPEN: Inappropriate ioctl for device, continuing anyway.
      ```
      It seems the general change of default for `innodb_flush_method` from `fsync` to `O_DIRECT` on every platform is ill-advised: `O_DIRECT` is *not* portable across Unix platforms, but is a Linux extensions that has been adopted by some non-Linux targets, but is certainly not POSIX.

      While I can manually restore the default to `fsync` to avoid this flood of errors, `mysqld` should only change the default to `O_DIRECT` on targets where it's supported and known to work.

      Attachments

        Issue Links

          Activity

            People

              marko Marko Mäkelä
              rorth Rainer Orth
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Git Integration

                  Error rendering 'com.xiplink.jira.git.jira_git_plugin:git-issue-webpanel'. Please contact your Jira administrators.