• Praveenkumar Hulakund's avatar
    Bug#14117012 - CHILD PROCESS MYSQL UTILITIES PICKING UP LOCAL · 1d9ae547
    Praveenkumar Hulakund authored
                   CONFIG FILES CAUSES TEST
    
    Utility as "mysql_upgrade" forks "mysql"/"mysqlcheck". Attaching
    "mysql_upgrade" shows following calls after forking "mysql" or
    "mysql_check" when configuration file information is passed as
    first argument to "mysql_upgrade".
    
    strace -f ./mysql_upgrade --defaults-file=../pdb/my.cnf --socket=../pdb/mysql.sock -f
    
    [pid  6254] stat("/etc/my.cnf", 0x7fff8e772680) = -1 ENOENT (No such file or directory)
    [pid  6254] stat("/etc/mysql/my.cnf", 0x7fff8e772680) = -1 ENOENT (No such file or directory)
    [pid  6254] stat("/usr/local/mysql/etc/my.cnf", 0x7fff8e772680) = -1 ENOENT (No such file or directory)
    [pid  6254] stat("/home/user_name/.my.cnf", {st_mode=S_IFREG|0664, st_size=19, ...}) = 0
    [pid  6254] open("/home/user_name/.my.cnf", O_RDONLY) = 3
    
    
    But when tool forks "mysqlcheck"/"mysql", "--no-defaults" is passed
    as first argument. Before forking, in function "find_tool" of
    "mysql_upgrade", check is made to verify whether tool can be
    executable or not by calling "mysqlcheck --help" and "mysql --help".
    But argument "--no-defaults", "--defaults-file" or
    "defaults-extra-file" is not passed to "mysql" and "mysqlcheck".
    So my.cnf is searched in default paths.
    
    Fix:
    ------
    Modified code to pass "--no-defaults" as first argument to "mysql"
    and "mysqlcheck" while checking tool can be executed or not.
    1d9ae547
mysql_upgrade.c 26.5 KB