Bug #39485 Incorrect value passed when SET variable=X on AIX
Submitted: 16 Sep 2008 16:01 Modified: 22 Sep 2010 12:57
Reporter: Chuck Bell Email Updates:
Status: Unsupported Impact on me:
None 
Category:MySQL Server: General Severity:S3 (Non-critical)
Version:6.0.8 OS:IBM AIX (5.2, 5.3)
Assigned to: Ingo Strüwing CPU Architecture:Any

[16 Sep 2008 16:01] Chuck Bell
Description:
The parser on AIX returns 0 for the value of the variable for the SET command for backup_wait_timeout.

For example, if a user enters SET backup_wait_timeout = 100;, the parser passes 0 to the sys_var constructor resulting in setting the value to 0.

For giggles, the result of SET backup_wait_timeout = DEFAULT; has the expected behavior.

The code in sql_yacc.yy at line # 12308:

            else if ($2.var)
            { /* System variable */
              if ($1)
                lex->option_type= $1;
              set_var *var= new set_var(lex->option_type, $2.var,
                                        &$2.base_name, $4);
              if (var == NULL)
                MYSQL_YYABORT;
              lex->var_list.push_back(var);
            }

Shows the value being passed as $4. This works on other platforms, but the value of $4 on AIX is always 0.

How to repeat:
Run the backup test backup_timeout to see the effects in the log.

-or-

Issue the command:

SET backup_wait_timeout = 100;
SHOW VARIABLES like 'backup_wait%';

Result should be 100, but it is 0. This is what is causing the backup_timeout test to fail.
[19 Sep 2008 10:33] Sveta Smirnova
Thank you for the report.

Verified as described.
[3 Feb 2009 9:00] Ingo Strüwing
This might be a duplicate of Bug#40808 (The backup_wait_timeout variable is not working on powermac platform), which has been fixed recently. However, the preliminary analyze regarding sql_yacc.yy points in a different direction.
[22 Sep 2010 12:57] Ingo Strüwing
This server version is no longer supported.