Hi Chuck,
I have reviewed your WL#4280 and have some comments (mostly technical).
1. Problems while compiling the server:
- I have found that compiling with BUILD/compile-pentium-debug-max
would fail (in si_objects.cc). This happens in function is_slave(),
because both active_mi and MYSQL_SLAVE_RUN_CONNECT are not valid in the
scope. This is because HAVE_REPLICATION was not active, thence, as the
code you added was not protected with #ifdef HAVE_REPLICATION
compilation would break.
The reason why HAVE_REPLICATION was not defined is that the that the
-DEMBEDDED_LIBRARY overrided it. I was told that while compiling with
embedded flag HAVE_REPLICATION is disabled. I then compiled with
BUILD/compile-pentium-debug-max-no-embedded and it worked.
SUGGESTION: protect the parts of the code that access replication
only functions and objects with HAVE_REPLICATION. In
write_incident_event, I would also suggest to find a way to log the
event even if there are no slaves, agree? (Might be useful for auditing
purposes).
2. I have found a segmentation fault while running a simple mtr test
(exercising your test harness). The test would segfault on restore:
##
source include/have_log_bin.inc;
USE test;
--disable_warnings
DROP TABLE IF EXISTS t1;
--enable_warnings
CREATE TABLE t1 (id INT);
# on the master insert some rows
let $1=10;
disable_query_log;
begin;
while ($1)
{
eval INSERT INTO t1 VALUES( $1 );
dec $1;
}
enable_query_log;
DROP TABLE t1;
save_master_pos;
####
#### 1. EXERCISE TEST HARNESS
####
BACKUP_TEST ebt;
BACKUP_TEST ibe;
BACKUP_TEST ebf;
BACKUP_TEST ibe;
BACKUP_TEST iss;
BACKUP_TEST nsa;
#source include/master-slave.inc;
#sync_slave_with_master;
#stop slave;
#connection master;
BACKUP_TEST dst;
BACKUP_TEST dsf;
BACKUP_TEST nsa;
BACKUP DATABASE test TO 'test-image';
RESTORE FROM 'test-image';
3. I have done also some manual testing for the following situations:
- Turn on/off binlog and and check with mysqlbinlog whether events
were written or not depending on the BACKUP_TEST ibe; (SUCCESS)
- Tested BACKUP/RESTORE command not logging to binlog on master.
(SUCCESS)
- Tested RESTORE commands on slaves (while slave running and while
stopped): (FAILED)
While IO thread and SQL thread running the restore command would
succeed. Is this the expected behavior. Please double check this.
4. Regarding a conceptual and architectural view on the interfaces,
overall these seemed good, although I missed the interface to: "Change
type of binlogging (e.g., row/stmt)".
Hope these comments provide good feedback regarding this worklog and
help you in your tasks.
Regards,
Luís