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

Starting service with mysqld_safe_helper fails in SELINUX "enforcing" mode

    Details

    • Type: Bug
    • Status: Closed (View Workflow)
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 5.5.54
    • Fix Version/s: 5.5.55
    • Component/s: Scripts & Clients
    • Labels:
      None
    • Environment:
      RHEL6 / CentOS6 - tested with centos/6 VM base image for Vagrant which is CentOS 6.8 at this point

      Description

      service mysql start bails out with weird error message from the new mysqld_safe_helper binary when having log-error option set in either [mysqld] or [mysqld_safe] section of my.cnf. Whether log-error is used with an explicit file name argument or not doesn't matter. Also when not having log-error in the config file at all mysqld_safe_helper is still throwing an error, but in this case the service startup script reports SUCCESS instead of ERROR

      The error message is

      # service mysql start
      Starting MySQL.161228 12:32:33 mysqld_safe Logging to '/var/lib/mysql/localhost.localdomain.err'.
      161228 12:32:33 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
      /usr/bin/mysqld_safe_helper: Can't create/write to file '' (Errcode: -597589344)
      

      (Jira does not show this, but the actual file name shown in the error message is the unicode placeholder character for code point U+0001, and not just an empty string)

      The actual error code varies and is usually a large positive or negative value, but not a valid error code.

      When looking at strace output the parameters passed to mysqld_safe_helper look fine:

      execve("/usr/bin/mysqld_safe_helper", ["/usr/bin/mysqld_safe_helper", "mysql", "log", "/var/lib/mysql/localhost.localdomain.err"], ["TERM=xterm", "PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/bin", "PWD=/usr", "SHLVL=2", "MYSQL_HOME=/usr", "_=/usr/bin/mysqld_safe_helper"]) = 0
      

      Also when running mysqld_safe_helper with the same arguments manually it works as expected without throwing an error at all:

      /usr/bin/mysqld_safe_helper mysql log /var/lib/mysql/localhost.localdomain.err
      

      Also when passing in an invalid file name a correct error message is displayed (^A here was entered using CTRL-V CTRL-A, so it is really 0x01

      /usr/bin/mysqld_safe_helper mysql log ^A
      /usr/bin/mysqld_safe_helper: Can't create/write to file '' (Errcode: 13)
      

      (again the file name in the actual error message is the U+0001 unicode placeholder, and not just an empty string)

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                serg Sergei Golubchik
                Reporter:
                hholzgra Hartmut Holzgraefe
              • Votes:
                1 Vote for this issue
                Watchers:
                3 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: