#At file:///home/anders/work/bzrwork/September/bug42984/mysql-next-bugfixing/ based on revid:magne.mahre@stripped
2817 Li-Bing.Song@stripped 2009-09-24
BUG#42984 rpl.rpl_ssl1 fails in PB2
There are two problems need to be resolved:
P1, $master_binlog_name_sql's value is NULL, this leads the error showed in this report.
$master_binlog_name_sql's value is equal to the value of Master_Log_File which appears in
slave status. The 'CHANGE MASTER' operation resets Master_Log_File as NULL if
'master_log_file' option is not assigned.
This problem can be resolved through adding code to show_rpl_debug_info.inc. "SHOW
BINLOG EVENTS IN '$master_binlog_name_sql'" statement only be executed when
$master_binlog_name_sql is not null.
P2, The deeper reason of this bug is wait_for_slave_to_start timeout. Slave I/O thread
fails connection. It is deep relative with that master_host is set as 'localhost' and this
bug only be reproduced on techra47.norway.sun.com. I replaced all certs used in this test
case with my certs in which the server's name is 127.0.0.1, then the test worked well.
I found there is a bug in IPV6 environment. On my machine I added an entry in /etc/hosts.
It is "::1 localhost". Thus, localhost will not resolve correctly.
So I think this is not a bug of replication.
Instead of using localhost, '127.0.0.1' is used as name in server's cert. P2 has
be reported as a new bug, it is bug_47451.
@ mysql-test/suite/rpl/t/rpl_ssl1.cnf
Default certificates are replaced by these certificates which are added into this patch.
added:
mysql-test/std_data/ca.cert
mysql-test/std_data/client.cert
mysql-test/std_data/client.key
mysql-test/std_data/server.cert
mysql-test/std_data/server.key
mysql-test/suite/rpl/t/rpl_ssl1.cnf
modified:
mysql-test/include/show_rpl_debug_info.inc
mysql-test/suite/rpl/r/rpl_ssl1.result
mysql-test/suite/rpl/t/rpl_ssl1.test
=== modified file 'mysql-test/include/show_rpl_debug_info.inc'
--- a/mysql-test/include/show_rpl_debug_info.inc 2009-01-09 14:12:31 +0000
+++ b/mysql-test/include/show_rpl_debug_info.inc 2009-09-24 09:40:39 +0000
@@ -77,11 +77,16 @@ if (`SELECT '$_master_con' != ''`)
SHOW PROCESSLIST;
--echo
--echo **** SHOW BINLOG EVENTS on $_master_con ****
- eval SHOW BINLOG EVENTS IN '$master_binlog_name_sql';
- if (`SELECT '$master_binlog_name_io' != '$master_binlog_name_sql'`)
+ if ($master_binlog_name_sql)
{
- eval SHOW BINLOG EVENTS IN '$master_binlog_name_io';
+ eval SHOW BINLOG EVENTS IN '$master_binlog_name_sql';
+ }
+ if ($master_binlog_name_io)
+ {
+ if (`SELECT '$master_binlog_name_io' != '$master_binlog_name_sql'`)
+ {
+ eval SHOW BINLOG EVENTS IN '$master_binlog_name_io';
+ }
}
-
connection $_con;
}
=== added file 'mysql-test/std_data/ca.cert'
--- a/mysql-test/std_data/ca.cert 1970-01-01 00:00:00 +0000
+++ b/mysql-test/std_data/ca.cert 2009-09-24 09:40:39 +0000
@@ -0,0 +1,18 @@
+-----BEGIN CERTIFICATE-----
+MIIC6DCCAlGgAwIBAgIJAJP5vrt9+AwXMA0GCSqGSIb3DQEBBQUAMFcxCzAJBgNV
+BAYTAkNOMRAwDgYDVQQIEwdCZWlqaW5nMRAwDgYDVQQHEwdCZWlqaW5nMQ4wDAYD
+VQQKEwVNeVNRTDEUMBIGA1UECxMLUmVwbGljYXRpb24wHhcNMDkwMTIwMDIwNDMz
+WhcNMzYwNjA3MDIwNDMzWjBXMQswCQYDVQQGEwJDTjEQMA4GA1UECBMHQmVpamlu
+ZzEQMA4GA1UEBxMHQmVpamluZzEOMAwGA1UEChMFTXlTUUwxFDASBgNVBAsTC1Jl
+cGxpY2F0aW9uMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDRj9QgewupC+gl
+7BQRGf9ZSAvnArQfwHda3KZ5S2F5aakSj26epBRxXqsP5v/oZ8/Gt7fvNSVMAkB8
+QPcKz2CBn1NriHlmAPj/KHYRw4y6eURkcn1HyxjRU0ygw5tJU1UMGMjOdPQ5MtME
+Qs9QgbaQZOcl8SVykYUueTPU1I6aeQIDAQABo4G7MIG4MB0GA1UdDgQWBBQYnKG5
+WJbuqYKXOp/kcC0zP7cz3DCBiAYDVR0jBIGAMH6AFBicoblYlu6pgpc6n+RwLTM/
+tzPcoVukWTBXMQswCQYDVQQGEwJDTjEQMA4GA1UECBMHQmVpamluZzEQMA4GA1UE
+BxMHQmVpamluZzEOMAwGA1UEChMFTXlTUUwxFDASBgNVBAsTC1JlcGxpY2F0aW9u
+ggkAk/m+u334DBcwDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQUFAAOBgQB3SR70
+595HXHbvTq0uoXg4ZQebdHcWXwoxXHCgn3cQ2f2E8tCdZ/y+7MuAA8RdokCGAbis
+FEGJ4gLHxPYDJ/h06qbjHOcPwE/41gRi25Ro057d8iU1HW1NUBQPSGXX0J0COjUd
+ftlfbAPMd1yCZh5tSaPRDPk6nfkznWQ0PRma6g==
+-----END CERTIFICATE-----
=== added file 'mysql-test/std_data/client.cert'
--- a/mysql-test/std_data/client.cert 1970-01-01 00:00:00 +0000
+++ b/mysql-test/std_data/client.cert 2009-09-24 09:40:39 +0000
@@ -0,0 +1,14 @@
+-----BEGIN CERTIFICATE-----
+MIICHDCCAYUCAQIwDQYJKoZIhvcNAQEFBQAwVzELMAkGA1UEBhMCQ04xEDAOBgNV
+BAgTB0JlaWppbmcxEDAOBgNVBAcTB0JlaWppbmcxDjAMBgNVBAoTBU15U1FMMRQw
+EgYDVQQLEwtSZXBsaWNhdGlvbjAeFw0wOTAxMjAwMjIxMTRaFw0zNjA2MDcwMjIx
+MTRaMFYxCzAJBgNVBAYTAkNOMRAwDgYDVQQIEwdCZWlqaW5nMQ4wDAYDVQQKEwVN
+eVNRTDEUMBIGA1UECxMLUmVwbGljYXRpb24xDzANBgNVBAMTBmNsaWVudDCBnzAN
+BgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAr30686ux4YdCdx25mgJg3E6YTsGi3MCb
+NctUpXfSAp7e2VQ7oLUUkOx6mH+9+4M0jORoYtLmjzahfnVKrRVLSXoGKJqfruxX
+tU0EDpS6r1ffGbS64WT8dDx83pSkF7DuIoRgjUPGF3mww1c/DhtyOI5QV5UGzkuN
+Hrh8wzHslKUCAwEAATANBgkqhkiG9w0BAQUFAAOBgQAevfaCfqiPqmqbjponvSVU
+I8p1abBtjSkDTxPrRereqG2WTvB5BwzwmEHrEs8fKyKAHknt7fNEXjL6mY5z3pI4
+wK2bzyKoIaZr8yGaNhHd9pauzTWUUcOHykKW81bLzt9k92M4zN/9x7peXrfzyrxP
+fgEe2GI7Xlddr9A6yZ+xiQ==
+-----END CERTIFICATE-----
=== added file 'mysql-test/std_data/client.key'
--- a/mysql-test/std_data/client.key 1970-01-01 00:00:00 +0000
+++ b/mysql-test/std_data/client.key 2009-09-24 09:40:39 +0000
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXAIBAAKBgQCvfTrzq7Hhh0J3HbmaAmDcTphOwaLcwJs1y1Sld9ICnt7ZVDug
+tRSQ7HqYf737gzSM5Ghi0uaPNqF+dUqtFUtJegYomp+u7Fe1TQQOlLqvV98ZtLrh
+ZPx0PHzelKQXsO4ihGCNQ8YXebDDVz8OG3I4jlBXlQbOS40euHzDMeyUpQIDAQAB
+AoGANLEnaE7fZFZWsKluNz4Lk1rOBKfDnQEAGZDp450so7jMNPlDxidY+4Ll9LA2
+fTSSLNPQPAwTSmEe8HeLapkAN5n6rGKFTCzHveS2uuaDnhLwABDLEFlSMsZlbg09
+usfpTFO7fH8FncmdxIGbGcpDWqqUzzLv6BB4yNMLR5Sc+ykCQQDm0Yluec2kJ3jX
+8BE98s/N1eTNFZSv0HAnLgxmBJIRVBYzo8/VJzK/8XWK4sIx7Win/2Zi11E1TPI5
+G1nNUtEHAkEAwqJqs+syxa2+GoYxDGLO4UAX730ckVY3pRyZRSHgWyUdtWgmSBx5
+5uVXiZnkIYxzF1EMkjugXRbQG095/pK98wJAfqcxiy5I2a9TDuJLA7wNrLuWfbY+
+zS5JrCYHZZ9SazHBsPpNG4ATx+D9h4Uf2/eSesSY8NmHVQDw1MceQp0T1wJAYv2g
+L2nMJOY87diaUaZfegjTI6cKRJEJNBzbh2G3biPufDlAXyS8i0bRwtZWRQnd71n1
+ftp8sVvM9FbzwRp5KQJBANjt2Ds0wZuy6IOzWLKLFmxDTXmqYQSyOFstUWodVi5G
+k0v2L/P9lUywCaYuqsskVAc6usgEbxnnXh/cUBU0o6U=
+-----END RSA PRIVATE KEY-----
=== added file 'mysql-test/std_data/server.cert'
--- a/mysql-test/std_data/server.cert 1970-01-01 00:00:00 +0000
+++ b/mysql-test/std_data/server.cert 2009-09-24 09:40:39 +0000
@@ -0,0 +1,14 @@
+-----BEGIN CERTIFICATE-----
+MIICHzCCAYgCAQEwDQYJKoZIhvcNAQEFBQAwVzELMAkGA1UEBhMCQ04xEDAOBgNV
+BAgTB0JlaWppbmcxEDAOBgNVBAcTB0JlaWppbmcxDjAMBgNVBAoTBU15U1FMMRQw
+EgYDVQQLEwtSZXBsaWNhdGlvbjAeFw0wOTAxMjAwMjE3MzlaFw0zNjA2MDcwMjE3
+MzlaMFkxCzAJBgNVBAYTAkNOMRAwDgYDVQQIEwdCZWlqaW5nMQ4wDAYDVQQKEwVN
+eVNRTDEUMBIGA1UECxMLUmVwbGljYXRpb24xEjAQBgNVBAMTCTEyNy4wLjAuMTCB
+nzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAzUYoyAyozyGuvSjFDrrQ0qCLdAnu
+KXuAYz9uX5u1zWw/OT2PO/Tyy/oZFWjE4CkqgCrdgE4ifobYo/YMZsy1QXFdcoXk
+R1cxkggLTpByUr9Wp7VjnjmwNtgih1M58s5pwNwqU6kFaKTDdEFUbVCD8EfPjhOc
+7E/r2XXcs7pmsOcCAwEAATANBgkqhkiG9w0BAQUFAAOBgQAvZXHAOMckaHIZgLHW
+4HlHW1f3SSU/OROHPfmaiC0+hh4CKZzpTrSIpAuS+xJ7njuMj9uEog3fWo+FG9Ya
+k7NA8Njf6hGWpxJ5LQ8lT3oMtsAvOTDVM54Buep7QK7TaxuT+iBM/Ied4kRxpz6h
+ZcVD84zcjM/agDWeFs1gmpvWNw==
+-----END CERTIFICATE-----
=== added file 'mysql-test/std_data/server.key'
--- a/mysql-test/std_data/server.key 1970-01-01 00:00:00 +0000
+++ b/mysql-test/std_data/server.key 2009-09-24 09:40:39 +0000
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXAIBAAKBgQDNRijIDKjPIa69KMUOutDSoIt0Ce4pe4BjP25fm7XNbD85PY87
+9PLL+hkVaMTgKSqAKt2ATiJ+htij9gxmzLVBcV1yheRHVzGSCAtOkHJSv1antWOe
+ObA22CKHUznyzmnA3CpTqQVopMN0QVRtUIPwR8+OE5zsT+vZddyzumaw5wIDAQAB
+AoGARWmRBryJJKl+Hga4Q9fWHzMclNt6xlo1utnLJ9dOba1J38A6PAsDQwhKDRxF
+XottDLPx/J3vOhu9DAx6exSDwYcEzcx2EDKfND+2W3e/QvIFwSVoFYR9bQVP1G0s
+Lc+M25HThGtHL89d2RzQJKg1aGJfgPSY5ZXLeTdjmqO88AkCQQD0/BWWkZiOeIdQ
+dWgbY28rBCPoU/5Ka/mJLJAF6SCGjFDv5JclATAPdpVfQroKK0cf8iyPoB/rczVz
+dM59DAKrAkEA1oD7g+d2cBqoAfvduQ4qLkzRXqJtHIzlAmKu6xJuISiddsEzEBk1
+rWPIrzQYoF5z81cEkYQx+5dwDQYnt2pqtQJBAIVApIFsmj1MQ9W4trLHCA2ux9Uz
+8ooKZwV87q24W0+z/MYvYSLonXqbtq3E/qpPVfWDZUeOAi6wUK+HJlWP9dcCQGzY
+9shwZAFvBWI8VL7bGTx1bqj+8y9Rr8QOH4TZzVi2K3FfiHHa2QorYGLHpNd8Foqc
+1Yyh8Fsi9ZEmVnEUZyECQCuMoWKtt1c0Ms8llgpjA0OCcm5pVGUpRtebMjs58A9K
+gSnC2agdIT4pUyHf/sN+ok1Zob9TlqMAIPFryOB15Ec=
+-----END RSA PRIVATE KEY-----
=== modified file 'mysql-test/suite/rpl/r/rpl_ssl1.result'
--- a/mysql-test/suite/rpl/r/rpl_ssl1.result 2008-07-17 19:11:37 +0000
+++ b/mysql-test/suite/rpl/r/rpl_ssl1.result 2009-09-24 09:40:39 +0000
@@ -13,7 +13,7 @@ insert into t1 values (1);
select * from t1;
t
stop slave;
-change master to master_ssl=1 , master_ssl_ca ='MYSQL_TEST_DIR/std_data/cacert.pem', master_ssl_cert='MYSQL_TEST_DIR/std_data/client-cert.pem', master_ssl_key='MYSQL_TEST_DIR/std_data/client-key.pem';
+change master to master_ssl=1 , master_ssl_ca ='MYSQL_TEST_DIR/std_data/ca.cert', master_ssl_cert='MYSQL_TEST_DIR/std_data/client.cert', master_ssl_key='MYSQL_TEST_DIR/std_data/client.key';
start slave;
select * from t1;
t
@@ -46,11 +46,11 @@ Until_Condition None
Until_Log_File
Until_Log_Pos 0
Master_SSL_Allowed Yes
-Master_SSL_CA_File MYSQL_TEST_DIR/std_data/cacert.pem
+Master_SSL_CA_File MYSQL_TEST_DIR/std_data/ca.cert
Master_SSL_CA_Path
-Master_SSL_Cert MYSQL_TEST_DIR/std_data/client-cert.pem
+Master_SSL_Cert MYSQL_TEST_DIR/std_data/client.cert
Master_SSL_Cipher
-Master_SSL_Key MYSQL_TEST_DIR/std_data/client-key.pem
+Master_SSL_Key MYSQL_TEST_DIR/std_data/client.key
Seconds_Behind_Master #
Master_SSL_Verify_Server_Cert No
Last_IO_Errno #
@@ -92,11 +92,11 @@ Until_Condition None
Until_Log_File
Until_Log_Pos 0
Master_SSL_Allowed No
-Master_SSL_CA_File MYSQL_TEST_DIR/std_data/cacert.pem
+Master_SSL_CA_File MYSQL_TEST_DIR/std_data/ca.cert
Master_SSL_CA_Path
-Master_SSL_Cert MYSQL_TEST_DIR/std_data/client-cert.pem
+Master_SSL_Cert MYSQL_TEST_DIR/std_data/client.cert
Master_SSL_Cipher
-Master_SSL_Key MYSQL_TEST_DIR/std_data/client-key.pem
+Master_SSL_Key MYSQL_TEST_DIR/std_data/client.key
Seconds_Behind_Master #
Master_SSL_Verify_Server_Cert No
Last_IO_Errno #
@@ -107,11 +107,11 @@ Replicate_Ignore_Server_Ids
Master_Server_Id 1
stop slave;
change master to
-master_host="localhost",
+master_host="127.0.0.1",
master_ssl=1 ,
-master_ssl_ca ='MYSQL_TEST_DIR/std_data/cacert.pem',
-master_ssl_cert='MYSQL_TEST_DIR/std_data/client-cert.pem',
-master_ssl_key='MYSQL_TEST_DIR/std_data/client-key.pem',
+master_ssl_ca ='MYSQL_TEST_DIR/std_data/ca.cert',
+master_ssl_cert='MYSQL_TEST_DIR/std_data/client.cert',
+master_ssl_key='MYSQL_TEST_DIR/std_data/client.key',
master_ssl_verify_server_cert=1;
start slave;
create table t1 (t int);
@@ -122,7 +122,7 @@ t
1
show slave status;
Slave_IO_State #
-Master_Host localhost
+Master_Host 127.0.0.1
Master_User root
Master_Port MASTER_MYPORT
Connect_Retry 1
@@ -148,11 +148,11 @@ Until_Condition None
Until_Log_File
Until_Log_Pos 0
Master_SSL_Allowed Yes
-Master_SSL_CA_File MYSQL_TEST_DIR/std_data/cacert.pem
+Master_SSL_CA_File MYSQL_TEST_DIR/std_data/ca.cert
Master_SSL_CA_Path
-Master_SSL_Cert MYSQL_TEST_DIR/std_data/client-cert.pem
+Master_SSL_Cert MYSQL_TEST_DIR/std_data/client.cert
Master_SSL_Cipher
-Master_SSL_Key MYSQL_TEST_DIR/std_data/client-key.pem
+Master_SSL_Key MYSQL_TEST_DIR/std_data/client.key
Seconds_Behind_Master #
Master_SSL_Verify_Server_Cert Yes
Last_IO_Errno #
=== added file 'mysql-test/suite/rpl/t/rpl_ssl1.cnf'
--- a/mysql-test/suite/rpl/t/rpl_ssl1.cnf 1970-01-01 00:00:00 +0000
+++ b/mysql-test/suite/rpl/t/rpl_ssl1.cnf 2009-09-24 09:40:39 +0000
@@ -0,0 +1,15 @@
+!include ../my.cnf
+[mysqld.1]
+ssl-ca=../../../std_data/ca.cert
+ssl-cert=../../../std_data/server.cert
+ssl-key=../../../std_data/server.key
+
+[mysqld.2]
+ssl-ca=../../../std_data/ca.cert
+ssl-cert=../../../std_data/server.cert
+ssl-key=../../../std_data/server.key
+
+[mysqltest]
+ssl-ca=../../../std_data/ca.cert
+ssl-cert=../../../std_data/client.cert
+ssl-key=../../../std_data/client-key.pem
=== modified file 'mysql-test/suite/rpl/t/rpl_ssl1.test'
--- a/mysql-test/suite/rpl/t/rpl_ssl1.test 2008-06-22 20:05:19 +0000
+++ b/mysql-test/suite/rpl/t/rpl_ssl1.test 2009-09-24 09:40:39 +0000
@@ -32,7 +32,7 @@ select * from t1;
stop slave;
--source include/wait_for_slave_to_stop.inc
--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR
-eval change master to master_ssl=1 , master_ssl_ca ='$MYSQL_TEST_DIR/std_data/cacert.pem', master_ssl_cert='$MYSQL_TEST_DIR/std_data/client-cert.pem', master_ssl_key='$MYSQL_TEST_DIR/std_data/client-key.pem';
+eval change master to master_ssl=1 , master_ssl_ca ='$MYSQL_TEST_DIR/std_data/ca.cert', master_ssl_cert='$MYSQL_TEST_DIR/std_data/client.cert', master_ssl_key='$MYSQL_TEST_DIR/std_data/client.key';
start slave;
--source include/wait_for_slave_to_start.inc
@@ -70,11 +70,11 @@ stop slave;
--source include/wait_for_slave_to_stop.inc
--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR
eval change master to
- master_host="localhost",
+ master_host="127.0.0.1",
master_ssl=1 ,
- master_ssl_ca ='$MYSQL_TEST_DIR/std_data/cacert.pem',
- master_ssl_cert='$MYSQL_TEST_DIR/std_data/client-cert.pem',
- master_ssl_key='$MYSQL_TEST_DIR/std_data/client-key.pem',
+ master_ssl_ca ='$MYSQL_TEST_DIR/std_data/ca.cert',
+ master_ssl_cert='$MYSQL_TEST_DIR/std_data/client.cert',
+ master_ssl_key='$MYSQL_TEST_DIR/std_data/client.key',
master_ssl_verify_server_cert=1;
start slave;
--source include/wait_for_slave_to_start.inc
Attachment: [text/bzr-bundle] bzr/li-bing.song@sun.com-20090924094039-ysgp4c5v7nklrcua.bundle