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

Syntax error, and option put in wrong place, in mysqld_multi perl script

Details

    Description

      Current mysqld_multi perl script fails due to a syntax error introduced a syntax error due to use of elseif instead of perl elsif

      The following one character change fixes this:

      diff --git a/scripts/mysqld_multi.sh b/scripts/mysqld_multi.sh
      index b8730e2624a..748925bef0b 100644
      --- a/scripts/mysqld_multi.sh
      +++ b/scripts/mysqld_multi.sh
      @@ -349,7 +349,7 @@ sub start_mysqlds()
               $options[$j]= quote_shell_word($options[$j]);
               $tmp.= " $options[$j]";
             }
      -      elseif ("--defaults-group-suffix=" eq substr($options[$j], 0, 24))
      +      elsif ("--defaults-group-suffix=" eq substr($options[$j], 0, 24))
             {
               $suffix_found= 1;
             }
      

      But even with this fixed mysqld_multi can't start any server instance, as the new code in 10.3.18 does not pass --defaults-group-suffix as the very first option to mysqld, as required.

      The following should fix this for the default case, where mysqld in the [mysqld_multi] section is either given as mysqld or mysqld_multi, as expected. It will fail though if mysqld setting already contains a command line setting by itself ...

      @@ -368,7 +368,6 @@ sub start_mysqlds()
             print "wanted mysqld binary.\n\n";
             $info_sent= 1;
           }
      -    $com.= $tmp;
       
           if (!$suffix_found)
           {
      @@ -376,6 +375,8 @@ sub start_mysqlds()
             $com.= $groups[$i];
           }
       
      +    $com.= $tmp;
      +
           if ($opt_wsrep_new_cluster) {
             $com.= " --wsrep-new-cluster";
           }
      

      Both problems were introduced by commit commit 137d8ed3fee14335bd707474bd49f4e43b3bf309
      for MDEV-18863

      Attachments

        Issue Links

          Activity

            hholzgra Hartmut Holzgraefe created issue -
            hholzgra Hartmut Holzgraefe made changes -
            Field Original Value New Value
            hholzgra Hartmut Holzgraefe made changes -
            Description Current mysqld_multi perl script fails due to a syntax error introduced a syntax error due to use of +elseif+ instead of perl +elsif+

            The following one character change fixes this:

            {{noformat}}
            diff --git a/scripts/mysqld_multi.sh b/scripts/mysqld_multi.sh
            index b8730e2624a..748925bef0b 100644
            --- a/scripts/mysqld_multi.sh
            +++ b/scripts/mysqld_multi.sh
            @@ -349,7 +349,7 @@ sub start_mysqlds()
                     $options[$j]= quote_shell_word($options[$j]);
                     $tmp.= " $options[$j]";
                   }
            - elseif ("--defaults-group-suffix=" eq substr($options[$j], 0, 24))
            + elsif ("--defaults-group-suffix=" eq substr($options[$j], 0, 24))
                   {
                     $suffix_found= 1;
                   }
            {{noformat}}

            But even with this fixed mysqld_multi can't start any server instance, as the new code in 10.3.18 does not pass --defaults-group-suffix as the very first option to mysqld, as required.

            The following should fix this for the default case, where +mysqld+ in the +[mysqld_multi]+ section is either given as +mysqld+ or +mysqld_multi+, as expected. It will fail though if +mysqld+ setting already contains a command line setting by itself ...

            {noformat}
            @@ -368,7 +368,6 @@ sub start_mysqlds()
                   print "wanted mysqld binary.\n\n";
                   $info_sent= 1;
                 }
            - $com.= $tmp;
             
                 if (!$suffix_found)
                 {
            @@ -376,6 +375,8 @@ sub start_mysqlds()
                   $com.= $groups[$i];
                 }
             
            + $com.= $tmp;
            +
                 if ($opt_wsrep_new_cluster) {
                   $com.= " --wsrep-new-cluster";
                 }
            {noformat}
            Current mysqld_multi perl script fails due to a syntax error introduced a syntax error due to use of +elseif+ instead of perl +elsif+

            The following one character change fixes this:

            {{noformat}}
            diff --git a/scripts/mysqld_multi.sh b/scripts/mysqld_multi.sh
            index b8730e2624a..748925bef0b 100644
            --- a/scripts/mysqld_multi.sh
            +++ b/scripts/mysqld_multi.sh
            @@ -349,7 +349,7 @@ sub start_mysqlds()
                     $options[$j]= quote_shell_word($options[$j]);
                     $tmp.= " $options[$j]";
                   }
            - elseif ("--defaults-group-suffix=" eq substr($options[$j], 0, 24))
            + elsif ("--defaults-group-suffix=" eq substr($options[$j], 0, 24))
                   {
                     $suffix_found= 1;
                   }
            {{noformat}}

            But even with this fixed mysqld_multi can't start any server instance, as the new code in 10.3.18 does not pass --defaults-group-suffix as the very first option to mysqld, as required.

            The following should fix this for the default case, where +mysqld+ in the +[mysqld_multi]+ section is either given as +mysqld+ or +mysqld_multi+, as expected. It will fail though if +mysqld+ setting already contains a command line setting by itself ...

            {noformat}
            @@ -368,7 +368,6 @@ sub start_mysqlds()
                   print "wanted mysqld binary.\n\n";
                   $info_sent= 1;
                 }
            - $com.= $tmp;
             
                 if (!$suffix_found)
                 {
            @@ -376,6 +375,8 @@ sub start_mysqlds()
                   $com.= $groups[$i];
                 }
             
            + $com.= $tmp;
            +
                 if ($opt_wsrep_new_cluster) {
                   $com.= " --wsrep-new-cluster";
                 }
            {noformat}

            Both problems were introduced by commit commit 137d8ed3fee14335bd707474bd49f4e43b3bf309
            for MDEV-18863
            Summary Syntax error in mysqld_multi perl script Syntax error, and option put in wrong place, in mysqld_multi perl script
            hholzgra Hartmut Holzgraefe made changes -
            Affects Version/s 10.4.8 [ 23721 ]
            hholzgra Hartmut Holzgraefe made changes -
            Description Current mysqld_multi perl script fails due to a syntax error introduced a syntax error due to use of +elseif+ instead of perl +elsif+

            The following one character change fixes this:

            {{noformat}}
            diff --git a/scripts/mysqld_multi.sh b/scripts/mysqld_multi.sh
            index b8730e2624a..748925bef0b 100644
            --- a/scripts/mysqld_multi.sh
            +++ b/scripts/mysqld_multi.sh
            @@ -349,7 +349,7 @@ sub start_mysqlds()
                     $options[$j]= quote_shell_word($options[$j]);
                     $tmp.= " $options[$j]";
                   }
            - elseif ("--defaults-group-suffix=" eq substr($options[$j], 0, 24))
            + elsif ("--defaults-group-suffix=" eq substr($options[$j], 0, 24))
                   {
                     $suffix_found= 1;
                   }
            {{noformat}}

            But even with this fixed mysqld_multi can't start any server instance, as the new code in 10.3.18 does not pass --defaults-group-suffix as the very first option to mysqld, as required.

            The following should fix this for the default case, where +mysqld+ in the +[mysqld_multi]+ section is either given as +mysqld+ or +mysqld_multi+, as expected. It will fail though if +mysqld+ setting already contains a command line setting by itself ...

            {noformat}
            @@ -368,7 +368,6 @@ sub start_mysqlds()
                   print "wanted mysqld binary.\n\n";
                   $info_sent= 1;
                 }
            - $com.= $tmp;
             
                 if (!$suffix_found)
                 {
            @@ -376,6 +375,8 @@ sub start_mysqlds()
                   $com.= $groups[$i];
                 }
             
            + $com.= $tmp;
            +
                 if ($opt_wsrep_new_cluster) {
                   $com.= " --wsrep-new-cluster";
                 }
            {noformat}

            Both problems were introduced by commit commit 137d8ed3fee14335bd707474bd49f4e43b3bf309
            for MDEV-18863
            Current mysqld_multi perl script fails due to a syntax error introduced a syntax error due to use of +elseif+ instead of perl +elsif+

            The following one character change fixes this:

            {noformat}
            diff --git a/scripts/mysqld_multi.sh b/scripts/mysqld_multi.sh
            index b8730e2624a..748925bef0b 100644
            --- a/scripts/mysqld_multi.sh
            +++ b/scripts/mysqld_multi.sh
            @@ -349,7 +349,7 @@ sub start_mysqlds()
                     $options[$j]= quote_shell_word($options[$j]);
                     $tmp.= " $options[$j]";
                   }
            - elseif ("--defaults-group-suffix=" eq substr($options[$j], 0, 24))
            + elsif ("--defaults-group-suffix=" eq substr($options[$j], 0, 24))
                   {
                     $suffix_found= 1;
                   }
            {noformat}

            But even with this fixed mysqld_multi can't start any server instance, as the new code in 10.3.18 does not pass --defaults-group-suffix as the very first option to mysqld, as required.

            The following should fix this for the default case, where +mysqld+ in the +[mysqld_multi]+ section is either given as +mysqld+ or +mysqld_multi+, as expected. It will fail though if +mysqld+ setting already contains a command line setting by itself ...

            {noformat}
            @@ -368,7 +368,6 @@ sub start_mysqlds()
                   print "wanted mysqld binary.\n\n";
                   $info_sent= 1;
                 }
            - $com.= $tmp;
             
                 if (!$suffix_found)
                 {
            @@ -376,6 +375,8 @@ sub start_mysqlds()
                   $com.= $groups[$i];
                 }
             
            + $com.= $tmp;
            +
                 if ($opt_wsrep_new_cluster) {
                   $com.= " --wsrep-new-cluster";
                 }
            {noformat}

            Both problems were introduced by commit commit 137d8ed3fee14335bd707474bd49f4e43b3bf309
            for MDEV-18863
            elenst Elena Stepanova made changes -
            Fix Version/s 10.3 [ 22126 ]
            Fix Version/s 10.4 [ 22408 ]
            Assignee Julius Goryavsky [ sysprg ]
            GeoffMontee Geoff Montee (Inactive) made changes -
            Fix Version/s 10.1 [ 16100 ]
            Fix Version/s 10.2 [ 14601 ]
            serg Sergei Golubchik made changes -
            Priority Critical [ 2 ] Blocker [ 1 ]
            GeoffMontee Geoff Montee (Inactive) made changes -
            Affects Version/s 10.2.27 [ 23717 ]
            sysprg Julius Goryavsky made changes -
            Status Open [ 1 ] In Progress [ 3 ]
            sysprg Julius Goryavsky made changes -
            Fix Version/s 10.1.45 [ 23913 ]
            Fix Version/s 10.2.29 [ 23911 ]
            Fix Version/s 10.3.20 [ 23909 ]
            Fix Version/s 10.4.10 [ 23907 ]
            Fix Version/s 10.2 [ 14601 ]
            Fix Version/s 10.1 [ 16100 ]
            Fix Version/s 10.3 [ 22126 ]
            Fix Version/s 10.4 [ 22408 ]
            Resolution Fixed [ 1 ]
            Status In Progress [ 3 ] Closed [ 6 ]
            GeoffMontee Geoff Montee (Inactive) made changes -
            sysprg Julius Goryavsky made changes -
            Attachment screenshot-1.png [ 49086 ]
            anel Anel Husakovic made changes -
            anel Anel Husakovic made changes -
            anel Anel Husakovic made changes -
            sysprg Julius Goryavsky made changes -
            Fix Version/s 10.1.42 [ 23407 ]
            Fix Version/s 10.2.28 [ 23910 ]
            Fix Version/s 10.3.19 [ 23908 ]
            Fix Version/s 10.4.9 [ 23906 ]
            Fix Version/s 10.4.10 [ 23907 ]
            Fix Version/s 10.3.20 [ 23909 ]
            Fix Version/s 10.2.29 [ 23911 ]
            Fix Version/s 10.1.45 [ 23913 ]
            GeoffMontee Geoff Montee (Inactive) made changes -
            serg Sergei Golubchik made changes -
            Workflow MariaDB v3 [ 99731 ] MariaDB v4 [ 156758 ]
            mariadb-jira-automation Jira Automation (IT) made changes -
            Zendesk Related Tickets 185982 107273

            People

              sysprg Julius Goryavsky
              hholzgra Hartmut Holzgraefe
              Votes:
              0 Vote for this issue
              Watchers:
              7 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.