Commit 6c1344a1 authored by monty@hundin.mysql.fi's avatar monty@hundin.mysql.fi
Browse files

Merge work:/home/bk/mysql-4.0 into hundin.mysql.fi:/my/bk/mysql-4.0

parents 62c80141 18053685
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -4,10 +4,10 @@ use Getopt::Long;
$opt_distribution=$opt_user=$opt_result=$opt_config_options=$opt_config_env="";
$opt_dbd_options=$opt_perl_options=$opt_suffix="";
$opt_tmp=$version_suffix="";
$opt_help=$opt_Information=$opt_no_delete=$opt_delete=$opt_debug=$opt_stage=$opt_rsh_mail=$opt_no_test=$opt_no_perl=$opt_with_low_memory=$opt_fast_benchmark=$opt_static_client=$opt_static_server=$opt_static_perl=$opt_sur=$opt_with_small_disk=$opt_local_perl=$opt_tcpip=$opt_build_thread=$opt_no_mysqltest=$opt_use_old_distribution=$opt_enable_shared=$opt_no_crash_me=$opt_no_strip=0;
$opt_help=$opt_Information=$opt_delete=$opt_debug=$opt_stage=$opt_rsh_mail=$opt_no_test=$opt_no_perl=$opt_with_low_memory=$opt_fast_benchmark=$opt_static_client=$opt_static_server=$opt_static_perl=$opt_sur=$opt_with_small_disk=$opt_local_perl=$opt_tcpip=$opt_build_thread=$opt_no_mysqltest=$opt_use_old_distribution=$opt_enable_shared=$opt_no_crash_me=$opt_no_strip=0;
$opt_innodb=$opt_bdb=0;

GetOptions("Information","help","distribution=s","user=s","result=s","no-delete","delete","no-test","no-mysqltest","perl-files=s","debug","config-options=s","config-env=s","stage=i","rsh-mail","with-low-memory","fast-benchmark","tmp=s","static-client","static-server","static-perl","no-perl","local-perl","perl-options=s","sur","with-small-disk","dbd-options=s","tcpip","suffix=s","build-thread=i","innodb","bdb","use-old-distribution","enable-shared","no-crash-me","no-strip") || usage();
GetOptions("Information","help","distribution=s","user=s","result=s","delete","no-test","no-mysqltest","perl-files=s","debug","config-options=s","config-env=s","stage=i","rsh-mail","with-low-memory","fast-benchmark","tmp=s","static-client","static-server","static-perl","no-perl","local-perl","perl-options=s","sur","with-small-disk","dbd-options=s","tcpip","suffix=s","build-thread=i","innodb","bdb","use-old-distribution","enable-shared","no-crash-me","no-strip") || usage();

usage() if ($opt_help || $opt_Information);
usage() if (!$opt_distribution);
@@ -128,6 +128,8 @@ if ($opt_stage <= 1)
  $opt_config_options.=" --with-low-memory" if ($opt_with_low_memory);
  # Fix files if this is in another timezone than work.mysql.com
  unlink("config.cache");
  unlink("bdb/build_unix/config.cache");
  unlink("innobase/config.cache");
  log_system("$make clean") if ($opt_use_old_distribution);
  if ($opt_static_server)
  {
+3 −21
Original line number Diff line number Diff line
@@ -9840,31 +9840,13 @@ work). You must also use the @code{egcs} C++ compiler
@node Linux-IA64,  , Linux-MIPS, Linux
@subsubsection Linux IA64 Notes
To get MySQL to compile on Linux Ia64, we had to do the following
(we assume that this will be easier when next gcc version for ia64 is
released).
Using @code{gcc-2.9-final}:
@example
CFLAGS="-O2" CXX=gcc CXXFLAGS="-O2 -felide-constructors -fno-exceptions -fno-rtti" ./configure --prefix=/usr/local/mysql --enable-assembler --with-mysqld-ldflags=-all-static --disable-shared --with-extra-charsets=complex
@end example
After @code{make} you will get an error that @code{sql/opt_range.cc}
will not compile (internal compiler error).  To fix this, go to the sql
directory and type @code{make} again.  Copy the compile line, but change
-O2 to -O0.  The file should now compile.
Now you can do:
To get MySQL to compile on Linux Ia64, we use the following compile line:
Using @code{gcc-2.96}:
@example
cd ..
make
make_install
CC=gcc CFLAGS="-O3 -fno-omit-frame-pointer" CXX=gcc CXXFLAGS="-O3 -fno-omit-frame-pointer -felide-constructors -fno-exceptions -fno-rtti" ./configure --prefix=/usr/local/mysql "--with-comment=Official MySQL binary" --with-extra-charsets=complex
@end example
and @code{mysqld} should be ready to run.
On Ia64 the MySQL client binaries are using shared libraries. This means
that if you install our binary distribution in some other place than
@file{/usr/local/mysql} you need to either modify @file{/etc/ld.so.conf}
+7 −1
Original line number Diff line number Diff line
@@ -113,6 +113,11 @@ SLAVE_LOAD_TMPDIR=../../var/tmp #needs to be same length to test logging
RES_SPACE="      "
MYSQLD_SRC_DIRS="strings mysys include extra regex isam merge myisam \
 myisammrg heap sql"
#
# Set LD_LIBRARY_PATH if we are using shared libraries
#
LD_LIBRARY_PATH="$BASEDIR/lib:$LD_LIBRARY_PATH"
export LD_LIBRARY_PATH

MASTER_RUNNING=0
MASTER_MYPORT=9306
@@ -580,12 +585,12 @@ start_slave()
    	    --exit-info=256 \
	    --log-bin=$MYSQL_TEST_DIR/var/log/slave-bin
	    --log-slave-updates \
            --log=$SLAVE_MYLOG \
            --basedir=$MY_BASEDIR \
            --datadir=$SLAVE_MYDDIR \
	    --pid-file=$SLAVE_MYPID \
	    --port=$SLAVE_MYPORT \
	    --socket=$SLAVE_MYSOCK \
            --log=$SLAVE_MYLOG \
	    --character-sets-dir=$CHARSETSDIR \
	    --default-character-set=$CHARACTER_SET \
	    --core \
@@ -595,6 +600,7 @@ start_slave()
	    --slave-load-tmpdir=$SLAVE_LOAD_TMPDIR \
	    --report-host=127.0.0.1 --report-user=root \
	    --report-port=$SLAVE_MYPORT \
	    --master-retry-count=5 \
	     $SMALL_SERVER \
             $EXTRA_SLAVE_OPT $EXTRA_SLAVE_MYSQLD_OPT"
    if [ x$DO_DDD = x1 ]
+6 −7
Original line number Diff line number Diff line
@@ -286,7 +286,7 @@ uint master_port = MYSQL_PORT, master_connect_retry = 60;
uint report_port = MYSQL_PORT;
bool master_ssl = 0;

ulong max_tmp_tables,max_heap_table_size;
ulong max_tmp_tables,max_heap_table_size,master_retry_count=0;
ulong bytes_sent = 0L, bytes_received = 0L;

bool opt_endinfo,using_udf_functions,low_priority_updates, locked_in_memory;
@@ -2573,10 +2573,9 @@ enum options {
	       OPT_MASTER_HOST,             OPT_MASTER_USER,
               OPT_MASTER_PASSWORD,         OPT_MASTER_PORT,
               OPT_MASTER_INFO_FILE,        OPT_MASTER_CONNECT_RETRY,
#ifdef HAVE_OPENSSL
	       OPT_MASTER_RETRY_COUNT,
	       OPT_MASTER_SSL,             OPT_MASTER_SSL_KEY,
	       OPT_MASTER_SSL_CERT,            
#endif /* HAVE_OPESSSL*/ 
               OPT_SQL_BIN_UPDATE_SAME,     OPT_REPLICATE_DO_DB,      
               OPT_REPLICATE_IGNORE_DB,     OPT_LOG_SLAVE_UPDATES,
               OPT_BINLOG_DO_DB,            OPT_BINLOG_IGNORE_DB,
@@ -2683,12 +2682,11 @@ static struct option long_options[] = {
  {"master-password",       required_argument, 0, (int) OPT_MASTER_PASSWORD},
  {"master-port",           required_argument, 0, (int) OPT_MASTER_PORT},
  {"master-connect-retry",  required_argument, 0, (int) OPT_MASTER_CONNECT_RETRY},
  {"master-retry-count",    required_argument, 0, (int) OPT_MASTER_RETRY_COUNT},
  {"master-info-file",      required_argument, 0, (int) OPT_MASTER_INFO_FILE},
#ifdef HAVE_OPENSSL  
  {"master-ssl",      	    optional_argument, 0, (int) OPT_MASTER_SSL},
  {"master-ssl-key",        optional_argument, 0, (int) OPT_MASTER_SSL_KEY},
  {"master-ssl-cert",       optional_argument, 0, (int) OPT_MASTER_SSL_CERT},
#endif  
  {"myisam-recover",	    optional_argument, 0, (int) OPT_MYISAM_RECOVER},
  {"memlock",		    no_argument,       0, (int) OPT_MEMLOCK},
    // needs to be available for the test case to pass in non-debugging mode
@@ -3972,7 +3970,6 @@ static void get_options(int argc,char **argv)
    case OPT_MASTER_PORT:
      master_port= atoi(optarg);
      break;
#ifdef HAVE_OPENSSL
    case OPT_MASTER_SSL:
      master_ssl=atoi(optarg);
      break;
@@ -3982,7 +3979,6 @@ static void get_options(int argc,char **argv)
    case OPT_MASTER_SSL_CERT:
      master_ssl_cert=optarg;
      break;
#endif /* HAVE_OPENSSL */
    case OPT_REPORT_HOST:
      report_host=optarg;
      break;
@@ -3998,6 +3994,9 @@ static void get_options(int argc,char **argv)
    case OPT_MASTER_CONNECT_RETRY:
      master_connect_retry= atoi(optarg);
      break;
    case OPT_MASTER_RETRY_COUNT:
      master_retry_count= atoi(optarg);
      break;
    case OPT_SAFE_SHOW_DB:
      opt_safe_show_db=1;
      break;
+32 −15
Original line number Diff line number Diff line
@@ -522,7 +522,7 @@ int init_master_info(MASTER_INFO* mi)
    if (master_user)
      strmake(mi->user, master_user, sizeof(mi->user) - 1);
    if (master_password)
      strmake(mi->password, master_password, sizeof(mi->password) - 1);
      strmake(mi->password, master_password, HASH_PASSWORD_LENGTH);
    mi->port = master_port;
    mi->connect_retry = master_connect_retry;
  }
@@ -561,7 +561,7 @@ int init_master_info(MASTER_INFO* mi)
			     master_host) ||
       init_strvar_from_file(mi->user, sizeof(mi->user), &mi->file,
			     master_user) || 
       init_strvar_from_file(mi->password, sizeof(mi->password), &mi->file,
       init_strvar_from_file(mi->password, HASH_PASSWORD_LENGTH+1, &mi->file,
			     master_password) ||
       init_intvar_from_file((int*)&mi->port, &mi->file, master_port) ||
       init_intvar_from_file((int*)&mi->connect_retry, &mi->file,
@@ -1267,26 +1267,43 @@ static int safe_connect(THD* thd, MYSQL* mysql, MASTER_INFO* mi)
  return slave_was_killed;
}

/* try to connect until successful or slave killed */
/*
  Try to connect until successful or slave killed or we have retried
  master_retry_count times
*/

static int safe_reconnect(THD* thd, MYSQL* mysql, MASTER_INFO* mi)
{
  int slave_was_killed;
  int last_errno= -2;				// impossible error
  ulong err_count=0;
  char llbuff[22];

 // if we lost connection after reading a state set event
  // we will be re-reading it, so pending needs to be cleared
  /*
    If we lost connection after reading a state set event
    we will be re-reading it, so pending needs to be cleared
  */
  mi->pending = 0;
#ifndef DBUG_OFF
  events_till_disconnect = disconnect_slave_event_count;
#endif
  while (!(slave_was_killed = slave_killed(thd)) && mc_mysql_reconnect(mysql))
  {
    /* Don't repeat last error */
    if (mc_mysql_errno(mysql) != last_errno)
    {
      sql_print_error("Slave thread: error re-connecting to master: \
%s, last_errno=%d, retry in %d sec",
		    mc_mysql_error(mysql), errno, mi->connect_retry);
		      mc_mysql_error(mysql), last_errno=mc_mysql_errno(mysql),
		      mi->connect_retry);
      safe_sleep(thd, mi->connect_retry);
    }
    if (err_count++ == master_retry_count)
    {
      slave_was_killed=1;
      break;
    }
  }

  if (!slave_was_killed)
  {
Loading