From: Nuno Carvalho Date: September 18 2012 12:43pm Subject: bzr push into mysql-5.6 branch (nuno.carvalho:4289 to 4290) Bug#14640486 List-Archive: http://lists.mysql.com/commits/144784 X-Bug: 14640486 Message-Id: <20120918124313.13890.68881.4290@localhost> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit 4290 Nuno Carvalho 2012-09-18 BUG#14640486: MISSING INITIALIZATION OF MYSQL_BIN_LOG::M_PREP_XIDS_COND MYSQL_BIN_LOG::m_prep_xids_cond is not initialized on MYSQL_BIN_LOG object creation and not destroyed on MYSQL_BIN_LOG destructor. Added missing initialization and destruction, also created a new perfschema key for this condition variable. @ mysql-test/suite/perfschema/r/relaylog.result Update result file with new key. @ sql/binlog.cc Added m_prep_xids_cond initialization and destruction. @ sql/binlog.h Added perfschema key and update MYSQL_BIN_LOG constructor. @ sql/mysqld.cc Added perfschema keys for BINLOG and RELAYLOG. @ sql/mysqld.h Added perfschema keys for BINLOG and RELAYLOG. @ sql/rpl_rli.cc Updated Rpl_info constructor. modified: mysql-test/suite/perfschema/r/relaylog.result sql/binlog.cc sql/binlog.h sql/mysqld.cc sql/mysqld.h sql/rpl_rli.cc 4289 Tor Didriksen 2012-09-18 Bug#12762891 SSL.CMAKE FILE IS BROKEN WHEN USING CUSTOM OPENSSL BUILD Bug#14603714 CRASH OBSERVED IN SQL_ACL.CC WHILE FREE FREEING UP THE MEMORY Extra patch for windows: Assume that WITH_SSL_PATH=x:/some/path points to static libraries. modified: CMakeLists.txt cmake/create_initial_db.cmake.in cmake/ssl.cmake extra/CMakeLists.txt === modified file 'mysql-test/suite/perfschema/r/relaylog.result' --- a/mysql-test/suite/perfschema/r/relaylog.result revid:tor.didriksen@stripped +++ b/mysql-test/suite/perfschema/r/relaylog.result revid:nuno.carvalho@stripped @@ -60,6 +60,7 @@ where event_name like "%MYSQL_BIN_LOG%" order by event_name; EVENT_NAME COUNT_STAR wait/synch/cond/sql/MYSQL_BIN_LOG::COND_done NONE +wait/synch/cond/sql/MYSQL_BIN_LOG::prep_xids_cond NONE wait/synch/mutex/sql/MYSQL_BIN_LOG::LOCK_commit MANY wait/synch/mutex/sql/MYSQL_BIN_LOG::LOCK_commit_queue MANY wait/synch/mutex/sql/MYSQL_BIN_LOG::LOCK_done MANY @@ -83,6 +84,7 @@ where event_name like "%MYSQL_RELAY_LOG% order by event_name; EVENT_NAME COUNT_STAR SUM_TIMER_WAIT MIN_TIMER_WAIT AVG_TIMER_WAIT MAX_TIMER_WAIT wait/synch/cond/sql/MYSQL_RELAY_LOG::COND_done 0 0 0 0 0 +wait/synch/cond/sql/MYSQL_RELAY_LOG::prep_xids_cond 0 0 0 0 0 wait/synch/mutex/sql/MYSQL_RELAY_LOG::LOCK_commit 0 0 0 0 0 wait/synch/mutex/sql/MYSQL_RELAY_LOG::LOCK_commit_queue 0 0 0 0 0 wait/synch/mutex/sql/MYSQL_RELAY_LOG::LOCK_done 0 0 0 0 0 @@ -148,6 +150,7 @@ where event_name like "%MYSQL_BIN_LOG%" order by event_name; EVENT_NAME COUNT_STAR wait/synch/cond/sql/MYSQL_BIN_LOG::COND_done NONE +wait/synch/cond/sql/MYSQL_BIN_LOG::prep_xids_cond NONE wait/synch/mutex/sql/MYSQL_BIN_LOG::LOCK_commit MANY wait/synch/mutex/sql/MYSQL_BIN_LOG::LOCK_commit_queue MANY wait/synch/mutex/sql/MYSQL_BIN_LOG::LOCK_done MANY @@ -193,6 +196,7 @@ where event_name like "%MYSQL_RELAY_LOG% order by event_name; EVENT_NAME COUNT_STAR wait/synch/cond/sql/MYSQL_RELAY_LOG::COND_done NONE +wait/synch/cond/sql/MYSQL_RELAY_LOG::prep_xids_cond NONE wait/synch/mutex/sql/MYSQL_RELAY_LOG::LOCK_commit NONE wait/synch/mutex/sql/MYSQL_RELAY_LOG::LOCK_commit_queue NONE wait/synch/mutex/sql/MYSQL_RELAY_LOG::LOCK_done NONE === modified file 'sql/binlog.cc' --- a/sql/binlog.cc revid:tor.didriksen@stripped +++ b/sql/binlog.cc revid:nuno.carvalho@stripped @@ -2273,6 +2273,7 @@ void MYSQL_BIN_LOG::cleanup() mysql_mutex_destroy(&LOCK_sync); mysql_cond_destroy(&update_cond); my_atomic_rwlock_destroy(&m_prep_xids_lock); + mysql_cond_destroy(&m_prep_xids_cond); } DBUG_VOID_RETURN; } @@ -2286,6 +2287,7 @@ void MYSQL_BIN_LOG::init_pthread_objects mysql_mutex_init(m_key_LOCK_sync, &LOCK_sync, MY_MUTEX_INIT_FAST); mysql_cond_init(m_key_update_cond, &update_cond, 0); my_atomic_rwlock_init(&m_prep_xids_lock); + mysql_cond_init(m_key_prep_xids_cond, &m_prep_xids_cond, NULL); stage_manager.init( #ifdef HAVE_PSI_INTERFACE m_key_LOCK_flush_queue, === modified file 'sql/binlog.h' --- a/sql/binlog.h revid:tor.didriksen@stripped +++ b/sql/binlog.h revid:nuno.carvalho@stripped @@ -228,6 +228,8 @@ class MYSQL_BIN_LOG: public TC_LOG, priv PSI_mutex_key m_key_LOCK_sync; /** The instrumentation key to use for @ update_cond. */ PSI_cond_key m_key_update_cond; + /** The instrumentation key to use for @ prep_xids_cond. */ + PSI_cond_key m_key_prep_xids_cond; /** The instrumentation key to use for opening the log file. */ PSI_file_key m_key_file_log; /** The instrumentation key to use for opening the log index file. */ @@ -402,6 +404,7 @@ public: PSI_mutex_key key_LOCK_sync_queue, PSI_cond_key key_COND_done, PSI_cond_key key_update_cond, + PSI_cond_key key_prep_xids_cond, PSI_file_key key_file_log, PSI_file_key key_file_log_index) { @@ -417,6 +420,7 @@ public: m_key_LOCK_commit= key_LOCK_commit; m_key_LOCK_sync= key_LOCK_sync; m_key_update_cond= key_update_cond; + m_key_prep_xids_cond= key_prep_xids_cond; m_key_file_log= key_file_log; m_key_file_log_index= key_file_log_index; } === modified file 'sql/mysqld.cc' --- a/sql/mysqld.cc revid:tor.didriksen@stripped +++ b/sql/mysqld.cc revid:nuno.carvalho@stripped @@ -3621,6 +3621,7 @@ int init_common_variables() key_BINLOG_LOCK_sync_queue, key_BINLOG_COND_done, key_BINLOG_update_cond, + key_BINLOG_prep_xids_cond, key_file_binlog, key_file_binlog_index); #endif @@ -9154,6 +9155,8 @@ PSI_cond_key key_BINLOG_update_cond, PSI_cond_key key_RELAYLOG_update_cond; PSI_cond_key key_BINLOG_COND_done; PSI_cond_key key_RELAYLOG_COND_done; +PSI_cond_key key_BINLOG_prep_xids_cond; +PSI_cond_key key_RELAYLOG_prep_xids_cond; PSI_cond_key key_gtid_ensure_index_cond; static PSI_cond_info all_server_conds[]= @@ -9168,8 +9171,10 @@ static PSI_cond_info all_server_conds[]= #endif /* HAVE_MMAP */ { &key_BINLOG_COND_done, "MYSQL_BIN_LOG::COND_done", 0}, { &key_BINLOG_update_cond, "MYSQL_BIN_LOG::update_cond", 0}, + { &key_BINLOG_prep_xids_cond, "MYSQL_BIN_LOG::prep_xids_cond", 0}, { &key_RELAYLOG_COND_done, "MYSQL_RELAY_LOG::COND_done", 0}, { &key_RELAYLOG_update_cond, "MYSQL_RELAY_LOG::update_cond", 0}, + { &key_RELAYLOG_prep_xids_cond, "MYSQL_RELAY_LOG::prep_xids_cond", 0}, { &key_COND_cache_status_changed, "Query_cache::COND_cache_status_changed", 0}, { &key_COND_manager, "COND_manager", PSI_FLAG_GLOBAL}, { &key_COND_server_started, "COND_server_started", PSI_FLAG_GLOBAL}, === modified file 'sql/mysqld.h' --- a/sql/mysqld.h revid:tor.didriksen@stripped +++ b/sql/mysqld.h revid:nuno.carvalho@stripped @@ -361,6 +361,8 @@ extern PSI_cond_key key_BINLOG_update_co extern PSI_cond_key key_BINLOG_COND_done; extern PSI_cond_key key_RELAYLOG_COND_done; extern PSI_cond_key key_RELAYLOG_update_cond; +extern PSI_cond_key key_BINLOG_prep_xids_cond; +extern PSI_cond_key key_RELAYLOG_prep_xids_cond; extern PSI_cond_key key_gtid_ensure_index_cond; extern PSI_thread_key key_thread_bootstrap, key_thread_delayed_insert, === modified file 'sql/rpl_rli.cc' --- a/sql/rpl_rli.cc revid:tor.didriksen@stripped +++ b/sql/rpl_rli.cc revid:nuno.carvalho@stripped @@ -113,6 +113,7 @@ Relay_log_info::Relay_log_info(bool is_s key_RELAYLOG_LOCK_done, key_RELAYLOG_COND_done, key_RELAYLOG_update_cond, + key_RELAYLOG_prep_xids_cond, key_file_relaylog, key_file_relaylog_index); #endif No bundle (reason: useless for push emails).