Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
M
MariaDB
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
nexedi
MariaDB
Commits
f5a53594
Commit
f5a53594
authored
Oct 03, 2001
by
monty@hundin.mysql.fi
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Added usage of --master-retry-count to make mysql-test-run safer.
parent
4e502866
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
53 additions
and
43 deletions
+53
-43
Build-tools/Do-compile
Build-tools/Do-compile
+3
-3
Docs/manual.texi
Docs/manual.texi
+3
-21
mysql-test/mysql-test-run.sh
mysql-test/mysql-test-run.sh
+7
-1
sql/mysqld.cc
sql/mysqld.cc
+6
-1
sql/slave.cc
sql/slave.cc
+33
-16
sql/slave.h
sql/slave.h
+1
-1
No files found.
Build-tools/Do-compile
View file @
f5a53594
...
...
@@ -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
);
...
...
@@ -143,7 +143,7 @@ if ($opt_stage <= 1)
if
(
$opt_stage
<=
2
)
{
unlink
(
$opt_distribution
)
if
(
!
$opt_delete
&&
!
$opt_use_old_distribution
);
unlink
(
$opt_distribution
)
if
(
$opt_delete
&&
!
$opt_use_old_distribution
);
safe_system
("
$make
");
}
...
...
Docs/manual.texi
View file @
f5a53594
...
...
@@ -10151,31 +10151,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}
mysql-test/mysql-test-run.sh
View file @
f5a53594
...
...
@@ -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
...
...
@@ -574,17 +579,18 @@ start_slave()
slave_args
=
"--no-defaults
$master_info
\
--exit-info=256
\
--log-bin=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
\
--core
\
--tmpdir=
$MYSQL_TMP_DIR
\
--language=
$LANGUAGE
\
--skip-innodb --skip-slave-start
\
--master-retry-count=5
\
$SMALL_SERVER
\
$EXTRA_SLAVE_OPT
$EXTRA_SLAVE_MYSQLD_OPT
"
if
[
x
$DO_DDD
=
x1
]
...
...
sql/mysqld.cc
View file @
f5a53594
...
...
@@ -276,7 +276,7 @@ const char *localhost=LOCAL_HOST;
const
char
*
delayed_user
=
"DELAYED"
;
uint
master_port
=
MYSQL_PORT
,
master_connect_retry
=
60
;
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
;
...
...
@@ -2534,6 +2534,7 @@ enum options {
OPT_MASTER_HOST
,
OPT_MASTER_USER
,
OPT_MASTER_PASSWORD
,
OPT_MASTER_PORT
,
OPT_MASTER_INFO_FILE
,
OPT_MASTER_CONNECT_RETRY
,
OPT_MASTER_RETRY_COUNT
,
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
,
...
...
@@ -2635,6 +2636,7 @@ 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
},
{
"myisam-recover"
,
optional_argument
,
0
,
(
int
)
OPT_MYISAM_RECOVER
},
{
"memlock"
,
no_argument
,
0
,
(
int
)
OPT_MEMLOCK
},
...
...
@@ -3859,6 +3861,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
;
...
...
sql/slave.cc
View file @
f5a53594
...
...
@@ -504,7 +504,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
;
}
...
...
@@ -543,7 +543,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
,
...
...
@@ -927,7 +927,7 @@ static int exec_event(THD* thd, NET* net, MASTER_INFO* mi, int event_len)
(
actual_error
=
thd
->
net
.
last_errno
)
&&
expected_error
)
{
const
char
*
errmsg
=
"Slave: did not get the expected error\
running query from master - expected: '%s'
(%d), got '%s'
(%d)"
;
running query from master - expected: '%s'
(%d), got '%s'
(%d)"
;
sql_print_error
(
errmsg
,
ER_SAFE
(
expected_error
),
expected_error
,
actual_error
?
thd
->
net
.
last_error
:
"no error"
,
...
...
@@ -1435,7 +1435,7 @@ static int safe_connect(THD* thd, MYSQL* mysql, MASTER_INFO* mi)
!
mc_mysql_connect
(
mysql
,
mi
->
host
,
mi
->
user
,
mi
->
password
,
0
,
mi
->
port
,
0
,
0
))
{
sql_print_error
(
"Slave thread: error connecting to master:
%s
(%d),\
sql_print_error
(
"Slave thread: error connecting to master:
%s
(%d),\
retry in %d sec"
,
mc_mysql_error
(
mysql
),
errno
,
mi
->
connect_retry
);
safe_sleep
(
thd
,
mi
->
connect_retry
);
}
...
...
@@ -1452,38 +1452,55 @@ 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
))
while
(
!
(
slave_was_killed
=
slave_killed
(
thd
))
&&
mc_mysql_reconnect
(
mysql
))
{
sql_print_error
(
"Slave thread: error re-connecting to master:\
/* 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
);
safe_sleep
(
thd
,
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
)
{
sql_print_error
(
"Slave: reconnected to master '%s@%s:%d',\
if
(
!
slave_was_killed
)
{
sql_print_error
(
"Slave: reconnected to master '%s@%s:%d',\
replication resumed in log '%s' at position %s"
,
glob_mi
.
user
,
glob_mi
.
host
,
glob_mi
.
port
,
RPL_LOG_NAME
,
llstr
(
glob_mi
.
pos
,
llbuff
));
#ifdef SIGNAL_WITH_VIO_CLOSE
thd
->
set_active_vio
(
mysql
->
net
.
vio
);
thd
->
set_active_vio
(
mysql
->
net
.
vio
);
#endif
}
}
return
slave_was_killed
;
}
...
...
sql/slave.h
View file @
f5a53594
...
...
@@ -3,7 +3,7 @@
#define SLAVE_NET_TIMEOUT 3600
extern
ulong
slave_net_timeout
;
extern
ulong
slave_net_timeout
,
master_retry_count
;
typedef
struct
st_master_info
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment