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

[PATCH] mysqld_multi default log location in wrong directory

    Details

    • Type: Bug
    • Status: Open
    • Priority: Minor
    • Resolution: Unresolved
    • Affects Version/s: 10.0.13
    • Fix Version/s: 10.0
    • Component/s: None
    • Labels:
    • Environment:
      Linux (but should not be OS specific)

      Description

      From my original bug report http://bugs.mysql.com/73750

      Description:
      If no datadir is set via option files or command line the log location defaults to:

        [...]
        if (!defined($logdir))
        {
          $logdir= "/usr/share/mysql" if (-d "/usr/share/mysql" && -w "/usr/share/mysql");
        }
        [...]
      

      (or whatever the "share" path is for the current installation) in the init_log() function inside the script

      This is a very unexpected location, and AFAICT in violation with the linux file system standard (and Unix practice in general) as /usr should be considered read-only for everything but software installation actions (so that a read-only /usr file system can be shared between multiple installations)

      How to repeat:
      Check source of installed mysqld_multi script or just use mysqld_multi with --no-defaults or the exampe my.cnf given in the script itself, then see that you have a "mysqld_multi.log" file in the same directory that the error message translations, charset information, and files like mysql_system_tables.sql are in
      (usually /usr/share/mysql or /usr/local/mysql/share ...) ... at least if the user executing mysqld_multi had sufficient permissions to write there ...

      Suggested fix:
      The default log location should be the default datadir, not pkgdatadir ...

        Gliffy Diagrams

          Attachments

            Issue Links

              Activity

              Hide
              hholzgra Hartmut Holzgraefe added a comment - - edited

              Suggested fix:

              === modified file 'scripts/mysqld_multi.sh'
              --- scripts/mysqld_multi.sh	2014-08-03 15:13:56 +0000
              +++ scripts/mysqld_multi.sh	2014-08-28 08:59:17 +0000
              @@ -246,7 +246,7 @@
                 }
                 if (!defined($logdir))
                 {
               -    $logdir= "@datadir@" if (-d "@datadir@" && -w "@datadir@");
               +    $logdir= "@localstatedir@" if (-d "@localstatedir@" && -w "@localstatedir@");
                 }
                 if (!defined($logdir))
                 {
              
              Show
              hholzgra Hartmut Holzgraefe added a comment - - edited Suggested fix: === modified file 'scripts/mysqld_multi.sh' --- scripts/mysqld_multi.sh 2014-08-03 15:13:56 +0000 +++ scripts/mysqld_multi.sh 2014-08-28 08:59:17 +0000 @@ -246,7 +246,7 @@ } if (!defined($logdir)) { - $logdir= "@datadir@" if (-d "@datadir@" && -w "@datadir@"); + $logdir= "@localstatedir@" if (-d "@localstatedir@" && -w "@localstatedir@"); } if (!defined($logdir)) {

                People

                • Assignee:
                  Unassigned
                  Reporter:
                  hholzgra Hartmut Holzgraefe
                • Votes:
                  0 Vote for this issue
                  Watchers:
                  3 Start watching this issue

                  Dates

                  • Created:
                    Updated:

                    Time Tracking

                    Estimated:
                    Original Estimate - 30 minutes
                    30m
                    Remaining:
                    Remaining Estimate - 30 minutes
                    30m
                    Logged:
                    Time Spent - Not Specified
                    Not Specified