List:Commits« Previous MessageNext Message »
From:He Zhenxing Date:March 13 2009 10:21am
Subject:bzr push into mysql-6.0-rpl branch (zhenxing.he:2820 to 2821) Bug#42244
View as plain text  
 2821 He Zhenxing	2009-03-13
      BUG#42244 Segmentation fault at rpl_handler.h
      
      When some error caused the server to exit before calling
      delegates_init(), transaction_delegate, etc, were not initialzed,
      this would cause segmental fault when calling delegates_destroy
      because the latter does not check if the objects were NULL or not.
      
      Fixed the problem by only calling destruction on these objects if
      they are not NULL.
modified:
  sql/rpl_handler.cc

 2820 Andrei Elkin	2009-03-09 [merge]
      merging 6.0 main->rpl
removed:
  mysql-test/include/UnicodeData.txt
added:
  mysql-test/r/mdl_sync.result
  mysql-test/r/signal.result
  mysql-test/r/signal_code.result
  mysql-test/r/signal_demo1.result
  mysql-test/r/signal_demo2.result
  mysql-test/r/signal_demo3.result
  mysql-test/r/signal_sqlmode.result
  mysql-test/r/signal_utf32.result
  mysql-test/suite/falcon/r/falcon_blob_space-big.result
  mysql-test/suite/falcon/r/falcon_bug_23692.result
  mysql-test/suite/falcon/r/falcon_bug_33719.result
  mysql-test/suite/falcon/r/falcon_bug_34182.result
  mysql-test/suite/falcon/r/falcon_bug_34478.result
  mysql-test/suite/falcon/r/falcon_bug_42478.result
  mysql-test/suite/falcon/t/falcon_blob_space-big.cnf
  mysql-test/suite/falcon/t/falcon_blob_space-big.test
  mysql-test/suite/falcon/t/falcon_bug_23692.test
  mysql-test/suite/falcon/t/falcon_bug_33719.test
  mysql-test/suite/falcon/t/falcon_bug_34182.test
  mysql-test/suite/falcon/t/falcon_bug_34478.test
  mysql-test/suite/falcon/t/falcon_bug_42478.test
  mysql-test/t/mdl_sync.test
  mysql-test/t/signal.test
  mysql-test/t/signal_code.test
  mysql-test/t/signal_demo1.test
  mysql-test/t/signal_demo2.test
  mysql-test/t/signal_demo3.test
  mysql-test/t/signal_sqlmode.test
  mysql-test/t/signal_utf32.test
  sql/sql_signal.cc
  sql/sql_signal.h
  storage/falcon/SRLTableSpaces.cpp
  storage/falcon/SRLTableSpaces.h
modified:
  .bzr-mysql/default.conf
  .bzrignore
  cmd-line-utils/libedit/makelist.sh
  cmd-line-utils/libedit/readline.c
  cmd-line-utils/libedit/readline/readline.h
  cmd-line-utils/libedit/vi.c
  configure.in
  include/my_sys.h
  include/mysql.h
  include/mysql.h.pp
  libmysql/libmysql.c
  libmysqld/CMakeLists.txt
  libmysqld/Makefile.am
  libmysqld/lib_sql.cc
  mysql-test/Makefile.am
  mysql-test/mysql-test-run.pl
  mysql-test/r/variables.result
  mysql-test/suite/backup/t/backup_datatypes.test
  mysql-test/suite/backup/t/backup_logs.test
  mysql-test/suite/falcon/r/falcon_options.result
  mysql-test/suite/falcon/r/falcon_options2.result
  mysql-test/suite/falcon/t/disabled.def
  mysql-test/suite/funcs_1/r/storedproc.result
  mysql-test/suite/funcs_1/t/disabled.def
  mysql-test/suite/ndb/t/ndb_read_multi_range.test
  mysql-test/suite/rpl_ndb_big/t/disabled.def
  mysql-test/suite/rpl_ndb_big/t/rpl_ndb_circular_simplex.test
  mysql-test/t/upgrade.test
  mysql-test/t/variables.test
  sql-common/client.c
  sql/CMakeLists.txt
  sql/Makefile.am
  sql/backup/backup_aux.h
  sql/derror.cc
  sql/event_db_repository.cc
  sql/event_scheduler.cc
  sql/ha_ndbcluster_binlog.cc
  sql/ha_partition.cc
  sql/ha_partition.h
  sql/handler.cc
  sql/lex.h
  sql/lock.cc
  sql/log.cc
  sql/log_event.cc
  sql/mdl.cc
  sql/mdl.h
  sql/mysql_priv.h
  sql/mysqld.cc
  sql/protocol.cc
  sql/protocol.h
  sql/rpl_rli.cc
  sql/set_var.cc
  sql/share/errmsg.txt
  sql/si_objects.cc
  sql/slave.cc
  sql/sp.cc
  sql/sp_head.cc
  sql/sp_pcontext.h
  sql/sp_rcontext.cc
  sql/sp_rcontext.h
  sql/sql_acl.cc
  sql/sql_base.cc
  sql/sql_class.cc
  sql/sql_class.h
  sql/sql_delete.cc
  sql/sql_error.cc
  sql/sql_error.h
  sql/sql_handler.cc
  sql/sql_insert.cc
  sql/sql_lex.h
  sql/sql_parse.cc
  sql/sql_plist.h
  sql/sql_plugin.cc
  sql/sql_prepare.cc
  sql/sql_prepare.h
  sql/sql_servers.cc
  sql/sql_show.cc
  sql/sql_table.cc
  sql/sql_trigger.cc
  sql/sql_udf.cc
  sql/sql_yacc.yy
  sql/table.cc
  sql/table.h
  sql/thr_malloc.cc
  sql/unireg.cc
  storage/falcon/CMakeLists.txt
  storage/falcon/Cache.cpp
  storage/falcon/Cache.h
  storage/falcon/Collation.h
  storage/falcon/CollationCaseless.cpp
  storage/falcon/CollationCaseless.h
  storage/falcon/CollationUnknown.cpp
  storage/falcon/CollationUnknown.h
  storage/falcon/Connection.cpp
  storage/falcon/Database.cpp
  storage/falcon/Dbb.cpp
  storage/falcon/Dbb.h
  storage/falcon/DeferredIndex.cpp
  storage/falcon/DeferredIndex.h
  storage/falcon/Event.cpp
  storage/falcon/IO.cpp
  storage/falcon/Index.cpp
  storage/falcon/Index.h
  storage/falcon/IndexPage.cpp
  storage/falcon/IndexPage.h
  storage/falcon/IndexRootPage.cpp
  storage/falcon/IndexRootPage.h
  storage/falcon/Log.h
  storage/falcon/Makefile.am
  storage/falcon/MemMgr.cpp
  storage/falcon/Mutex.cpp
  storage/falcon/Mutex.h
  storage/falcon/MySQLCollation.cpp
  storage/falcon/MySQLCollation.h
  storage/falcon/NBitmap.cpp
  storage/falcon/NInSelectBitmap.cpp
  storage/falcon/PageInventoryPage.cpp
  storage/falcon/PageWriter.cpp
  storage/falcon/PriorityScheduler.cpp
  storage/falcon/RecordScavenge.cpp
  storage/falcon/RecordScavenge.h
  storage/falcon/RecordVersion.cpp
  storage/falcon/SRLCreateIndex.cpp
  storage/falcon/SRLCreateIndex.h
  storage/falcon/SRLCreateTableSpace.cpp
  storage/falcon/SRLDeleteIndex.cpp
  storage/falcon/SRLDeleteIndex.h
  storage/falcon/SRLVersion.h
  storage/falcon/Sequence.cpp
  storage/falcon/Sequence.h
  storage/falcon/SequenceManager.cpp
  storage/falcon/SequenceManager.h
  storage/falcon/SerialLog.cpp
  storage/falcon/SerialLogControl.cpp
  storage/falcon/SerialLogControl.h
  storage/falcon/SerialLogFile.cpp
  storage/falcon/SerialLogRecord.h
  storage/falcon/StorageDatabase.cpp
  storage/falcon/StorageDatabase.h
  storage/falcon/StorageTable.cpp
  storage/falcon/StorageVersion.h
  storage/falcon/SyncObject.cpp
  storage/falcon/Table.cpp
  storage/falcon/Table.h
  storage/falcon/TableSpaceManager.cpp
  storage/falcon/TableSpaceManager.h
  storage/falcon/Thread.cpp
  storage/falcon/Transaction.cpp
  storage/falcon/ValueSet.cpp
  storage/falcon/ha_falcon.cpp
  storage/myisammrg/ha_myisammrg.cc
  support-files/Makefile.am
  support-files/mysql.spec.sh
  tests/mysql_client_test.c

=== modified file 'sql/rpl_handler.cc'
--- a/sql/rpl_handler.cc	2009-01-27 02:08:48 +0000
+++ b/sql/rpl_handler.cc	2009-03-13 08:14:40 +0000
@@ -115,11 +115,15 @@ int delegates_init()
 
 void delegates_destroy()
 {
-  transaction_delegate->~Trans_delegate();
-  binlog_storage_delegate->~Binlog_storage_delegate();
+  if (transaction_delegate)
+    transaction_delegate->~Trans_delegate();
+  if (binlog_storage_delegate)
+    binlog_storage_delegate->~Binlog_storage_delegate();
 #ifdef HAVE_REPLICATION
-  binlog_transmit_delegate->~Binlog_transmit_delegate();
-  binlog_relay_io_delegate->~Binlog_relay_IO_delegate();
+  if (binlog_transmit_delegate)
+    binlog_transmit_delegate->~Binlog_transmit_delegate();
+  if (binlog_relay_io_delegate)
+    binlog_relay_io_delegate->~Binlog_relay_IO_delegate();
 #endif /* HAVE_REPLICATION */
 }
 

Thread
bzr push into mysql-6.0-rpl branch (zhenxing.he:2820 to 2821) Bug#42244He Zhenxing13 Mar