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
24203799
Commit
24203799
authored
Jun 28, 2001
by
sasha@mysql.sashanet.com
Browse files
Options
Browse Files
Download
Plain Diff
merged with 3.23 replication updates
parents
0b8f1595
14c133fb
Changes
11
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
120 additions
and
13 deletions
+120
-13
BitKeeper/triggers/post-commit
BitKeeper/triggers/post-commit
+4
-2
BitKeeper/triggers/post-incoming
BitKeeper/triggers/post-incoming
+3
-0
BitKeeper/triggers/post-outgoing
BitKeeper/triggers/post-outgoing
+3
-0
mysql-test/r/rpl_sporadic_master.result
mysql-test/r/rpl_sporadic_master.result
+7
-0
mysql-test/t/rpl_sporadic_master-master.opt
mysql-test/t/rpl_sporadic_master-master.opt
+1
-0
mysql-test/t/rpl_sporadic_master.test
mysql-test/t/rpl_sporadic_master.test
+24
-0
sql/ha_innobase.cc
sql/ha_innobase.cc
+4
-0
sql/mysqld.cc
sql/mysqld.cc
+28
-2
sql/slave.cc
sql/slave.cc
+8
-6
sql/sql_repl.cc
sql/sql_repl.cc
+33
-3
sql/sql_repl.h
sql/sql_repl.h
+5
-0
No files found.
BitKeeper/triggers/post-commit
View file @
24203799
...
@@ -37,8 +37,10 @@ From: $FROM
...
@@ -37,8 +37,10 @@ From: $FROM
To:
$INTERNALS
To:
$INTERNALS
Subject: bk commit into 4.0 tree
Subject: bk commit into 4.0 tree
Below is the list of changes that have just been pushed into main
Below is the list of changes that have just been committed into a
4.0 repository. For information on how to access the repository
4.0 repository of
$USER
. When
$USER
does a push, they will be propogated to
the main repository and within 24 hours after the push to the public repository.
For information on how to access the public repository
see http://www.mysql.com/doc/I/n/Installing_source_tree.html
see http://www.mysql.com/doc/I/n/Installing_source_tree.html
EOF
EOF
...
...
BitKeeper/triggers/post-incoming
0 → 100755
View file @
24203799
#! /bin/sh
echo
"Test: post-incoming works"
BitKeeper/triggers/post-outgoing
0 → 100755
View file @
24203799
#! /bin/sh
echo
"Test: post-outgoing works"
mysql-test/r/rpl_sporadic_master.result
0 → 100644
View file @
24203799
n
1
2
3
4
5
6
mysql-test/t/rpl_sporadic_master-master.opt
0 → 100644
View file @
24203799
--sporadic-binlog-dump-fail --max-binlog-dump-events=2
mysql-test/t/rpl_sporadic_master.test
0 → 100644
View file @
24203799
#test to see if replication can continue when master sporadically fails on
# COM_BINLOG_DUMP and additionally limits the number of events per dump
source
include
/
master
-
slave
.
inc
;
connection
master
;
drop
table
if
exists
t1
;
create
table
t1
(
n
int
not
null
auto_increment
primary
key
);
insert
into
t1
values
(
NULL
),(
NULL
);
delete
from
t1
;
insert
into
t1
values
(
NULL
),(
NULL
);
insert
into
t1
values
(
NULL
),(
NULL
);
flush
logs
;
delete
from
t1
;
insert
into
t1
values
(
NULL
),(
NULL
);
insert
into
t1
values
(
NULL
),(
NULL
);
insert
into
t1
values
(
NULL
),(
NULL
);
save_master_pos
;
connection
slave
;
sync_with_master
;
select
*
from
t1
;
connection
master
;
drop
table
t1
;
save_master_pos
;
connection
slave
;
sync_with_master
;
sql/ha_innobase.cc
View file @
24203799
...
@@ -1523,6 +1523,10 @@ ha_innobase::update_row(
...
@@ -1523,6 +1523,10 @@ ha_innobase::update_row(
DBUG_ENTER
(
"ha_innobase::update_row"
);
DBUG_ENTER
(
"ha_innobase::update_row"
);
if
(
table
->
time_stamp
)
{
update_timestamp
(
new_row
+
table
->
time_stamp
-
1
);
}
if
(
last_query_id
!=
user_thd
->
query_id
)
{
if
(
last_query_id
!=
user_thd
->
query_id
)
{
prebuilt
->
sql_stat_start
=
TRUE
;
prebuilt
->
sql_stat_start
=
TRUE
;
last_query_id
=
user_thd
->
query_id
;
last_query_id
=
user_thd
->
query_id
;
...
...
sql/mysqld.cc
View file @
24203799
...
@@ -2487,8 +2487,8 @@ enum options {
...
@@ -2487,8 +2487,8 @@ enum options {
OPT_GEMINI_UNBUFFERED_IO
,
OPT_SKIP_SAFEMALLOC
,
OPT_GEMINI_UNBUFFERED_IO
,
OPT_SKIP_SAFEMALLOC
,
OPT_SKIP_STACK_TRACE
,
OPT_SKIP_SYMLINK
,
OPT_REPORT_HOST
,
OPT_SKIP_STACK_TRACE
,
OPT_SKIP_SYMLINK
,
OPT_REPORT_HOST
,
OPT_REPORT_USER
,
OPT_REPORT_PASSWORD
,
OPT_REPORT_PORT
,
OPT_REPORT_USER
,
OPT_REPORT_PASSWORD
,
OPT_REPORT_PORT
,
OPT_SHOW_SLAVE_AUTH_INFO
OPT_MAX_BINLOG_DUMP_EVENTS
,
OPT_SPORADIC_BINLOG_DUMP
,
};
OPT_SHOW_SLAVE_AUTH_INFO
};
static
struct
option
long_options
[]
=
{
static
struct
option
long_options
[]
=
{
{
"ansi"
,
no_argument
,
0
,
'a'
},
{
"ansi"
,
no_argument
,
0
,
'a'
},
...
@@ -2573,6 +2573,10 @@ static struct option long_options[] = {
...
@@ -2573,6 +2573,10 @@ static struct option long_options[] = {
(
int
)
OPT_DISCONNECT_SLAVE_EVENT_COUNT
},
(
int
)
OPT_DISCONNECT_SLAVE_EVENT_COUNT
},
{
"abort-slave-event-count"
,
required_argument
,
0
,
{
"abort-slave-event-count"
,
required_argument
,
0
,
(
int
)
OPT_ABORT_SLAVE_EVENT_COUNT
},
(
int
)
OPT_ABORT_SLAVE_EVENT_COUNT
},
{
"max-binlog-dump-events"
,
required_argument
,
0
,
(
int
)
OPT_MAX_BINLOG_DUMP_EVENTS
},
{
"sporadic-binlog-dump-fail"
,
no_argument
,
0
,
(
int
)
OPT_SPORADIC_BINLOG_DUMP_FAIL
},
{
"safemalloc-mem-limit"
,
required_argument
,
0
,
(
int
)
{
"safemalloc-mem-limit"
,
required_argument
,
0
,
(
int
)
OPT_SAFEMALLOC_MEM_LIMIT
},
OPT_SAFEMALLOC_MEM_LIMIT
},
{
"new"
,
no_argument
,
0
,
'n'
},
{
"new"
,
no_argument
,
0
,
'n'
},
...
@@ -2634,6 +2638,9 @@ static struct option long_options[] = {
...
@@ -2634,6 +2638,9 @@ static struct option long_options[] = {
{
"temp-pool"
,
no_argument
,
0
,
(
int
)
OPT_TEMP_POOL
},
{
"temp-pool"
,
no_argument
,
0
,
(
int
)
OPT_TEMP_POOL
},
{
"tmpdir"
,
required_argument
,
0
,
't'
},
{
"tmpdir"
,
required_argument
,
0
,
't'
},
{
"use-locking"
,
no_argument
,
0
,
(
int
)
OPT_USE_LOCKING
},
{
"use-locking"
,
no_argument
,
0
,
(
int
)
OPT_USE_LOCKING
},
#ifdef USE_SYMDIR
{
"use-symbolic-links"
,
no_argument
,
0
,
's'
},
#endif
{
"user"
,
required_argument
,
0
,
'u'
},
{
"user"
,
required_argument
,
0
,
'u'
},
{
"version"
,
no_argument
,
0
,
'V'
},
{
"version"
,
no_argument
,
0
,
'V'
},
{
"warnings"
,
no_argument
,
0
,
'W'
},
{
"warnings"
,
no_argument
,
0
,
'W'
},
...
@@ -3088,6 +3095,9 @@ static void usage(void)
...
@@ -3088,6 +3095,9 @@ static void usage(void)
--remove Remove mysqld from the service list (NT)
\n
\
--remove Remove mysqld from the service list (NT)
\n
\
--standalone Dummy option to start as a standalone program (NT)\
--standalone Dummy option to start as a standalone program (NT)\
"
);
"
);
#ifdef USE_SYMDIR
puts
(
"--use-symbolic-links Enable symbolic link support"
);
#endif
puts
(
""
);
puts
(
""
);
#endif
#endif
#ifdef HAVE_BERKELEY_DB
#ifdef HAVE_BERKELEY_DB
...
@@ -3274,6 +3284,11 @@ static void get_options(int argc,char **argv)
...
@@ -3274,6 +3284,11 @@ static void get_options(int argc,char **argv)
case
'r'
:
case
'r'
:
mysqld_chroot
=
optarg
;
mysqld_chroot
=
optarg
;
break
;
break
;
#ifdef USE_SYMDIR
case
's'
:
my_use_symdir
=
1
;
/* Use internal symbolic links */
break
;
#endif
case
't'
:
case
't'
:
mysql_tmpdir
=
optarg
;
mysql_tmpdir
=
optarg
;
break
;
break
;
...
@@ -3327,6 +3342,17 @@ static void get_options(int argc,char **argv)
...
@@ -3327,6 +3342,17 @@ static void get_options(int argc,char **argv)
abort_slave_event_count
=
atoi
(
optarg
);
abort_slave_event_count
=
atoi
(
optarg
);
#endif
#endif
break
;
break
;
case
(
int
)
OPT_SPORADIC_BINLOG_DUMP_FAIL
:
#ifndef DBUG_OFF
opt_sporadic_binlog_dump_fail
=
1
;
#endif
break
;
case
(
int
)
OPT_MAX_BINLOG_DUMP_EVENTS
:
#ifndef DBUG_OFF
max_binlog_dump_events
=
atoi
(
optarg
);
#endif
break
;
case
(
int
)
OPT_LOG_SLAVE_UPDATES
:
case
(
int
)
OPT_LOG_SLAVE_UPDATES
:
opt_log_slave_updates
=
1
;
opt_log_slave_updates
=
1
;
break
;
break
;
...
...
sql/slave.cc
View file @
24203799
...
@@ -1349,6 +1349,8 @@ pthread_handler_decl(handle_slave,arg __attribute__((unused)))
...
@@ -1349,6 +1349,8 @@ pthread_handler_decl(handle_slave,arg __attribute__((unused)))
goto
err
;
goto
err
;
}
}
connected:
// register ourselves with the master
// register ourselves with the master
// if fails, this is not fatal - we just print the error message and go
// if fails, this is not fatal - we just print the error message and go
// on with life
// on with life
...
@@ -1397,7 +1399,7 @@ try again, log '%s' at postion %s", RPL_LOG_NAME,
...
@@ -1397,7 +1399,7 @@ try again, log '%s' at postion %s", RPL_LOG_NAME,
goto
err
;
goto
err
;
}
}
continue
;
goto
connected
;
}
}
...
@@ -1448,8 +1450,9 @@ reconnecting to retry, log '%s' position %s", RPL_LOG_NAME,
...
@@ -1448,8 +1450,9 @@ reconnecting to retry, log '%s' position %s", RPL_LOG_NAME,
reconnect done to recover from failed read"
);
reconnect done to recover from failed read"
);
goto
err
;
goto
err
;
}
}
break
;
}
goto
connected
;
}
// if(event_len == packet_error)
thd
->
proc_info
=
"Processing master log event"
;
thd
->
proc_info
=
"Processing master log event"
;
if
(
exec_event
(
thd
,
&
mysql
->
net
,
&
glob_mi
,
event_len
))
if
(
exec_event
(
thd
,
&
mysql
->
net
,
&
glob_mi
,
event_len
))
...
@@ -1492,9 +1495,8 @@ the slave thread with \"mysqladmin start-slave\". We stopped at log \
...
@@ -1492,9 +1495,8 @@ the slave thread with \"mysqladmin start-slave\". We stopped at log \
events_till_disconnect
++
;
events_till_disconnect
++
;
}
}
#endif
#endif
}
// while(!slave_killed(thd)) - read/exec loop
}
}
// while(!slave_killed(thd)) - slave loop
}
// error = 0;
// error = 0;
err:
err:
...
...
sql/sql_repl.cc
View file @
24203799
...
@@ -32,9 +32,11 @@ extern pthread_handler_decl(handle_slave,arg);
...
@@ -32,9 +32,11 @@ extern pthread_handler_decl(handle_slave,arg);
HASH
slave_list
;
HASH
slave_list
;
static
uint32
*
slave_list_key
(
SLAVE_INFO
*
si
,
uint
*
len
,
#ifndef DBUG_OFF
my_bool
not_used
__attribute__
((
unused
)))
int
max_binlog_dump_events
=
0
;
// unlimited
{
bool
opt_sporadic_binlog_dump_fail
=
0
;
static
int
binlog_dump_count
=
0
;
#endif
*
len
=
4
;
*
len
=
4
;
return
&
si
->
server_id
;
return
&
si
->
server_id
;
}
}
...
@@ -349,8 +351,19 @@ void mysql_binlog_send(THD* thd, char* log_ident, ulong pos, ushort flags)
...
@@ -349,8 +351,19 @@ void mysql_binlog_send(THD* thd, char* log_ident, ulong pos, ushort flags)
int
error
;
int
error
;
const
char
*
errmsg
=
"Unknown error"
;
const
char
*
errmsg
=
"Unknown error"
;
NET
*
net
=
&
thd
->
net
;
NET
*
net
=
&
thd
->
net
;
#ifndef DBUG_OFF
int
left_events
=
max_binlog_dump_events
;
#endif
DBUG_ENTER
(
"mysql_binlog_send"
);
DBUG_ENTER
(
"mysql_binlog_send"
);
#ifndef DBUG_OFF
if
(
opt_sporadic_binlog_dump_fail
&&
(
binlog_dump_count
++
%
2
))
{
errmsg
=
"Master failed COM_BINLOG_DUMP to test if slave can recover"
;
goto
err
;
}
#endif
bzero
((
char
*
)
&
log
,
sizeof
(
log
));
bzero
((
char
*
)
&
log
,
sizeof
(
log
));
if
(
!
mysql_bin_log
.
is_open
())
if
(
!
mysql_bin_log
.
is_open
())
...
@@ -410,6 +423,14 @@ impossible position";
...
@@ -410,6 +423,14 @@ impossible position";
while
(
!
(
error
=
Log_event
::
read_log_event
(
&
log
,
packet
,
log_lock
)))
while
(
!
(
error
=
Log_event
::
read_log_event
(
&
log
,
packet
,
log_lock
)))
{
{
#ifndef DBUG_OFF
if
(
max_binlog_dump_events
&&
!
left_events
--
)
{
net_flush
(
net
);
errmsg
=
"Debugging binlog dump abort"
;
goto
err
;
}
#endif
if
(
my_net_write
(
net
,
(
char
*
)
packet
->
ptr
(),
packet
->
length
())
)
if
(
my_net_write
(
net
,
(
char
*
)
packet
->
ptr
(),
packet
->
length
())
)
{
{
errmsg
=
"Failed on my_net_write()"
;
errmsg
=
"Failed on my_net_write()"
;
...
@@ -484,6 +505,15 @@ impossible position";
...
@@ -484,6 +505,15 @@ impossible position";
bool
read_packet
=
0
,
fatal_error
=
0
;
bool
read_packet
=
0
,
fatal_error
=
0
;
#ifndef DBUG_OFF
if
(
max_binlog_dump_events
&&
!
left_events
--
)
{
net_flush
(
net
);
errmsg
=
"Debugging binlog dump abort"
;
goto
err
;
}
#endif
// no one will update the log while we are reading
// no one will update the log while we are reading
// now, but we'll be quick and just read one record
// now, but we'll be quick and just read one record
pthread_mutex_lock
(
log_lock
);
pthread_mutex_lock
(
log_lock
);
...
...
sql/sql_repl.h
View file @
24203799
...
@@ -20,6 +20,11 @@ extern uint32 server_id;
...
@@ -20,6 +20,11 @@ extern uint32 server_id;
extern
bool
server_id_supplied
;
extern
bool
server_id_supplied
;
extern
I_List
<
i_string
>
binlog_do_db
,
binlog_ignore_db
;
extern
I_List
<
i_string
>
binlog_do_db
,
binlog_ignore_db
;
#ifndef DBUG_OFF
extern
int
max_binlog_dump_events
;
extern
bool
opt_sporadic_binlog_dump_fail
;
#endif
File
open_binlog
(
IO_CACHE
*
log
,
const
char
*
log_file_name
,
File
open_binlog
(
IO_CACHE
*
log
,
const
char
*
log_file_name
,
const
char
**
errmsg
);
const
char
**
errmsg
);
...
...
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