List:Commits« Previous MessageNext Message »
From:Magne Mahre Date:October 12 2009 1:35pm
Subject:bzr push into mysql-5.5.0-next-mr-runtime branch (magne.mahre:2910 to
2911) Bug#33693
View as plain text  
 2911 Magne Mahre	2009-10-12
      Bug #33693 general log name and location depend on PID file, 
                 not on predefined values
      
      The default name of the PID file was constructed, as documented, 
      based on the hostname.  This name was subsequently used as the
      base for the general log file name.   If the name of the PID
      file was overridden in the configuration, and no explicit name
      was set for the general log file, the path location for the
      PID file was used also for the general log file.
                        
      A new variable, 'default_logfile_name', has been introduced.  This name
      is constructed based on the hostname, and is then used to
      construct both the PID file and the general log file.
                        
      The general log file will now, unless explicitly set, be
      located in the server data directory (as documentated in
      the server docs)
     @ mysql-test/t/log_state.test
        run/mysqld.log was created as a consequence of this bug.
        After the fix it is no longer created, and will thus not
        be deleted.

    added:
      mysql-test/r/log_state_bug33693.result
      mysql-test/t/log_state_bug33693-master.opt
      mysql-test/t/log_state_bug33693.test
    modified:
      mysql-test/t/log_state.test
      sql/log.cc
      sql/mysql_priv.h
      sql/mysqld.cc
 2910 Jon Olav Hauglid	2009-10-12
      Bug #35877 Update .. WHERE with function, constraint violation, crash 
      
      Unable to reproduce crash with current version of the 5.5.0 codebase.
      Test case for MyISAM/InnoDB based on the bug rapport added to 
      sp_trans.test.
      
      Backport of revno: 2617.65.9.

    modified:
      mysql-test/r/sp_trans.result
      mysql-test/t/sp_trans.test
=== added file 'mysql-test/r/log_state_bug33693.result'
--- a/mysql-test/r/log_state_bug33693.result	1970-01-01 00:00:00 +0000
+++ b/mysql-test/r/log_state_bug33693.result	2009-10-12 13:35:30 +0000
@@ -0,0 +1,3 @@
+SELECT INSTR(@@general_log_file, 'MYSQLTEST_VARDIR/run');;
+INSTR(@@general_log_file, 'MYSQLTEST_VARDIR/run')
+0

=== modified file 'mysql-test/t/log_state.test'
--- a/mysql-test/t/log_state.test	2009-01-23 12:22:05 +0000
+++ b/mysql-test/t/log_state.test	2009-10-12 13:35:30 +0000
@@ -390,7 +390,6 @@ if(!$fixed_bug38124)
    --enable_query_log
 }
 
-# Remove the log files that was created in the "default location"
+# Remove the log file that was created in the "default location"
 # i.e var/run
---remove_file $MYSQLTEST_VARDIR/run/mysqld.log
 --remove_file $MYSQLTEST_VARDIR/tmp/log.master

=== added file 'mysql-test/t/log_state_bug33693-master.opt'
--- a/mysql-test/t/log_state_bug33693-master.opt	1970-01-01 00:00:00 +0000
+++ b/mysql-test/t/log_state_bug33693-master.opt	2009-10-12 13:35:30 +0000
@@ -0,0 +1 @@
+--pid-file=$MYSQLTEST_VARDIR/run/mysqld.1.pid --log=

=== added file 'mysql-test/t/log_state_bug33693.test'
--- a/mysql-test/t/log_state_bug33693.test	1970-01-01 00:00:00 +0000
+++ b/mysql-test/t/log_state_bug33693.test	2009-10-12 13:35:30 +0000
@@ -0,0 +1,18 @@
+### t/log_state_bug33693.test
+#
+# Regression test for bug #33693
+#   "general log name and location depend on PID 
+#    file, not on predefined values"
+#
+# The server is started with a hard-coded 
+# PID file in the $MYSQLTEST_VARDIR/run
+# directory, and an unspecified general log
+# file name.
+#
+# The correct result should show the log file to 
+# rest in the database directory. Unfixed, the 
+# log file will be in the same directory as the
+# PID.
+
+--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
+--eval SELECT INSTR(@@general_log_file, '$MYSQLTEST_VARDIR/run');

=== modified file 'sql/log.cc'
--- a/sql/log.cc	2009-09-30 20:10:22 +0000
+++ b/sql/log.cc	2009-10-12 13:35:30 +0000
@@ -110,9 +110,16 @@ sql_print_message_func sql_print_message
 };
 
 
+/**
+  Create the name of the default general log file
+  
+  @param[IN] buff    Location for building new string.
+  @param[IN] log_ext The extension for the file (e.g .log)
+  @returns Pointer to a new string containing the name
+*/
 char *make_default_log_name(char *buff,const char* log_ext)
 {
-  strmake(buff, pidfile_name, FN_REFLEN-5);
+  strmake(buff, default_logfile_name, FN_REFLEN-5);
   return fn_format(buff, buff, mysql_data_home, log_ext,
                    MYF(MY_UNPACK_FILENAME|MY_REPLACE_EXT));
 }

=== modified file 'sql/mysql_priv.h'
--- a/sql/mysql_priv.h	2009-10-09 13:59:25 +0000
+++ b/sql/mysql_priv.h	2009-10-12 13:35:30 +0000
@@ -1934,6 +1934,7 @@ extern MYSQL_PLUGIN_IMPORT uint reg_ext_
 #ifdef MYSQL_SERVER
 extern char glob_hostname[FN_REFLEN], mysql_home[FN_REFLEN];
 extern char pidfile_name[FN_REFLEN], system_time_zone[30], *opt_init_file;
+extern char default_logfile_name[FN_REFLEN];
 extern char log_error_file[FN_REFLEN], *opt_tc_log_file;
 extern ulonglong log_10_int[20];
 extern ulonglong keybuff_size;

=== modified file 'sql/mysqld.cc'
--- a/sql/mysqld.cc	2009-10-09 13:59:25 +0000
+++ b/sql/mysqld.cc	2009-10-12 13:35:30 +0000
@@ -572,6 +572,7 @@ const char *log_output_str= "FILE";
 time_t server_start_time, flush_status_time;
 
 char mysql_home[FN_REFLEN], pidfile_name[FN_REFLEN], system_time_zone[30];
+char default_logfile_name[FN_REFLEN];
 char *default_tz_name;
 char log_error_file[FN_REFLEN], glob_hostname[FN_REFLEN];
 char mysql_real_data_home[FN_REFLEN],
@@ -3168,10 +3169,13 @@ static int init_common_variables(const c
     strmake(glob_hostname, STRING_WITH_LEN("localhost"));
     sql_print_warning("gethostname failed, using '%s' as hostname",
                       glob_hostname);
-    strmake(pidfile_name, STRING_WITH_LEN("mysql"));
+    strmake(default_logfile_name, STRING_WITH_LEN("mysql"));
   }
   else
-  strmake(pidfile_name, glob_hostname, sizeof(pidfile_name)-5);
+    strmake(default_logfile_name, glob_hostname, 
+	    sizeof(default_logfile_name)-5);
+
+  strmake(pidfile_name, default_logfile_name, sizeof(pidfile_name)-5);
   strmov(fn_ext(pidfile_name),".pid");		// Add proper extension
 
   /*


Attachment: [text/bzr-bundle] bzr/magne.mahre@sun.com-20091012133530-1rrq0nuyv6uverck.bundle
Thread
bzr push into mysql-5.5.0-next-mr-runtime branch (magne.mahre:2910 to2911) Bug#33693Magne Mahre12 Oct