3123 Marc Alff 2010-11-21 [merge]
local merge
removed:
BUILD/Makefile.am
Docs/Makefile.am
Makefile.am
client/Makefile.am
cmake/Makefile.am
cmd-line-utils/Makefile.am
cmd-line-utils/libedit/Makefile.am
cmd-line-utils/readline/Makefile.am
config/
config/ac-macros/
config/ac-macros/alloca.m4
config/ac-macros/character_sets.m4
config/ac-macros/check_cpu.m4
config/ac-macros/compiler_flag.m4
config/ac-macros/dtrace.m4
config/ac-macros/large_file.m4
config/ac-macros/maintainer.m4
config/ac-macros/misc.m4
config/ac-macros/plugins.m4
config/ac-macros/readline.m4
config/ac-macros/ssl.m4
config/ac-macros/zlib.m4
configure.in
dbug/Makefile.am
extra/Makefile.am
extra/yassl/Makefile.am
extra/yassl/src/Makefile.am
extra/yassl/taocrypt/Makefile.am
extra/yassl/taocrypt/benchmark/Makefile.am
extra/yassl/taocrypt/src/Makefile.am
extra/yassl/taocrypt/test/Makefile.am
extra/yassl/testsuite/Makefile.am
include/Makefile.am
libmysql/Makefile.am
libmysql/Makefile.shared
libmysql/acinclude.m4
libmysql_r/
libmysql_r/Makefile.am
libmysqld/Makefile.am
libmysqld/examples/Makefile.am
libservices/Makefile.am
man/Makefile.am
mysql-test/Makefile.am
mysql-test/lib/My/SafeProcess/Makefile.am
mysql-test/suite/innodb/r/innodb_bug54679.result
mysql-test/suite/innodb/r/innodb_bug56632.result
mysql-test/suite/innodb/t/innodb_bug54679.test
mysql-test/suite/innodb/t/innodb_bug56632.test
mysql-test/t/flush_read_lock_kill-master.opt
mysys/Makefile.am
packaging/Makefile.am
plugin/Makefile.am
plugin/audit_null/Makefile.am
plugin/audit_null/plug.in
plugin/auth/Makefile.am
plugin/auth/plug.in
plugin/daemon_example/Makefile.am
plugin/daemon_example/configure.in
plugin/daemon_example/plug.in
plugin/fulltext/Makefile.am
plugin/fulltext/configure.in
plugin/fulltext/plug.in
plugin/semisync/Makefile.am
plugin/semisync/configure.in
plugin/semisync/plug.in
regex/Makefile.am
scripts/Makefile.am
scripts/make_sharedlib_distribution.sh
sql-bench/Makefile.am
sql-common/Makefile.am
sql/Makefile.am
sql/share/Makefile.am
storage/Makefile.am
storage/archive/Makefile.am
storage/archive/plug.in
storage/blackhole/Makefile.am
storage/blackhole/plug.in
storage/csv/Makefile.am
storage/csv/plug.in
storage/example/Makefile.am
storage/example/plug.in
storage/federated/Makefile.am
storage/federated/plug.in
storage/heap/Makefile.am
storage/heap/plug.in
storage/innobase/Makefile.am
storage/innobase/plug.in
storage/myisam/Makefile.am
storage/myisam/plug.in
storage/myisammrg/Makefile.am
storage/myisammrg/plug.in
storage/perfschema/Makefile.am
storage/perfschema/plug.in
storage/perfschema/unittest/Makefile.am
strings/Makefile.am
support-files/MacOSX/Makefile.am
support-files/Makefile.am
support-files/RHEL4-SElinux/Makefile.am
tests/Makefile.am
unittest/Makefile.am
unittest/examples/Makefile.am
unittest/mysys/Makefile.am
unittest/mytap/Makefile.am
unittest/mytap/t/Makefile.am
unittest/strings/Makefile.am
vio/Makefile.am
win/Makefile.am
zlib/Makefile.am
added:
VERSION
mysql-test/include/check_ftwrl_compatible.inc
mysql-test/include/check_ftwrl_incompatible.inc
mysql-test/r/flush_read_lock.result
mysql-test/suite/innodb/r/innodb-create-options.result
mysql-test/suite/innodb/r/innodb_bug53046.result
mysql-test/suite/innodb/r/innodb_bug57904.result
mysql-test/suite/innodb/t/innodb-create-options.test
mysql-test/suite/innodb/t/innodb_bug53046.test
mysql-test/suite/innodb/t/innodb_bug57904.test
mysql-test/t/flush_read_lock.test
modified:
BUILD/FINISH.sh
BUILD/autorun.sh
BUILD/cmake_configure.sh
CMakeLists.txt
client/mysqltest.cc
cmake/build_configurations/mysql_release.cmake
cmake/make_dist.cmake.in
cmake/mysql_version.cmake
cmake/os/Windows.cmake
cmake/os/WindowsCache.cmake
cmake/versioninfo.rc.in
cmd-line-utils/readline/bind.c
include/m_string.h
include/my_compiler.h
include/mysql_com.h
mysql-test/extra/binlog_tests/binlog_truncate.test
mysql-test/extra/binlog_tests/blackhole.test
mysql-test/extra/binlog_tests/mix_innodb_myisam_binlog.test
mysql-test/extra/rpl_tests/create_recursive_construct.inc
mysql-test/extra/rpl_tests/rpl_drop_create_temp_table.inc
mysql-test/extra/rpl_tests/rpl_extraSlave_Col.test
mysql-test/extra/rpl_tests/rpl_implicit_commit_binlog.test
mysql-test/extra/rpl_tests/rpl_insert_delayed.test
mysql-test/extra/rpl_tests/rpl_insert_id_pk.test
mysql-test/extra/rpl_tests/rpl_not_null.test
mysql-test/include/check_slave_is_running.inc
mysql-test/include/check_slave_param.inc
mysql-test/include/ctype_numconv.inc
mysql-test/include/diff_tables.inc
mysql-test/include/handler.inc
mysql-test/include/have_example_plugin.inc
mysql-test/include/have_semisync_plugin.inc
mysql-test/include/have_simple_parser.inc
mysql-test/include/have_udf.inc
mysql-test/include/mysql_upgrade_preparation.inc
mysql-test/include/no_valgrind_without_big.inc
mysql-test/include/not_parallel.inc
mysql-test/include/rpl_diff_tables.inc
mysql-test/include/setup_fake_relay_log.inc
mysql-test/include/show_rpl_debug_info.inc
mysql-test/include/truncate_file.inc
mysql-test/include/wait_for_slave_io_to_stop.inc
mysql-test/include/wait_for_slave_sql_error.inc
mysql-test/include/wait_for_slave_sql_to_stop.inc
mysql-test/include/wait_for_slave_to_stop.inc
mysql-test/include/wait_show_condition.inc
mysql-test/mysql-test-run.pl
mysql-test/r/ctype_binary.result
mysql-test/r/ctype_cp1251.result
mysql-test/r/ctype_latin1.result
mysql-test/r/ctype_ucs.result
mysql-test/r/ctype_utf8.result
mysql-test/r/delayed.result
mysql-test/r/events_2.result
mysql-test/r/flush.result
mysql-test/r/flush_read_lock_kill.result
mysql-test/r/func_math.result
mysql-test/r/func_misc.result
mysql-test/r/handler_innodb.result
mysql-test/r/handler_myisam.result
mysql-test/r/kill.result
mysql-test/r/mdl_sync.result
mysql-test/r/mysqltest.result
mysql-test/r/partition_debug_sync.result
mysql-test/r/partition_innodb.result
mysql-test/r/plugin_auth.result
mysql-test/r/show_check.result
mysql-test/r/sp-lock.result
mysql-test/r/xml.result
mysql-test/suite/binlog/t/binlog_row_mysqlbinlog_db_filter.test
mysql-test/suite/binlog/t/binlog_stm_unsafe_warning.test
mysql-test/suite/binlog/t/binlog_unsafe.test
mysql-test/suite/federated/federated_bug_25714.test
mysql-test/suite/innodb/r/innodb-zip.result
mysql-test/suite/innodb/t/innodb-zip.test
mysql-test/suite/perfschema/r/dml_setup_instruments.result
mysql-test/suite/perfschema/r/func_file_io.result
mysql-test/suite/perfschema/r/func_mutex.result
mysql-test/suite/perfschema/r/global_read_lock.result
mysql-test/suite/perfschema/r/server_init.result
mysql-test/suite/perfschema/t/func_file_io.test
mysql-test/suite/perfschema/t/func_mutex.test
mysql-test/suite/perfschema/t/global_read_lock.test
mysql-test/suite/perfschema/t/server_init.test
mysql-test/suite/perfschema_stress/t/modify.test
mysql-test/suite/perfschema_stress/t/setup.test
mysql-test/suite/perfschema_stress/t/work.test
mysql-test/suite/rpl/r/rpl_tmp_table_and_DDL.result
mysql-test/suite/rpl/t/rpl_change_master.test
mysql-test/suite/rpl/t/rpl_concurrency_error.test
mysql-test/suite/rpl/t/rpl_heartbeat.test
mysql-test/suite/rpl/t/rpl_mysql_upgrade.test
mysql-test/suite/rpl/t/rpl_semi_sync.test
mysql-test/suite/rpl/t/rpl_semi_sync_event.test
mysql-test/suite/rpl/t/rpl_slow_query_log.test
mysql-test/suite/rpl/t/rpl_ssl.test
mysql-test/suite/rpl/t/rpl_sync.test
mysql-test/suite/sys_vars/t/slow_launch_time_func.test
mysql-test/t/change_user.test
mysql-test/t/delayed.test
mysql-test/t/disabled.def
mysql-test/t/events_2.test
mysql-test/t/execution_constants.test
mysql-test/t/fix_priv_tables.test
mysql-test/t/flush.test
mysql-test/t/flush_block_commit.test
mysql-test/t/flush_block_commit_notembedded.test
mysql-test/t/flush_read_lock_kill.test
mysql-test/t/func_math.test
mysql-test/t/func_misc.test
mysql-test/t/kill.test
mysql-test/t/lock_multi.test
mysql-test/t/mdl_sync.test
mysql-test/t/mysqltest.test
mysql-test/t/named_pipe.test
mysql-test/t/partition_debug_sync.test
mysql-test/t/partition_innodb.test
mysql-test/t/plugin_auth.test
mysql-test/t/shm.test
mysql-test/t/show_check.test
mysql-test/t/sp-lock.test
mysql-test/t/system_mysql_db_fix40123.test
mysql-test/t/system_mysql_db_fix50030.test
mysql-test/t/system_mysql_db_fix50117.test
mysql-test/t/trigger_notembedded.test
mysql-test/t/xml.test
mysys/default.c
mysys/mf_keycache.c
packaging/WiX/create_msi.cmake.in
packaging/WiX/mysql_server.wxs.in
regex/regexec.c
scripts/mysql_system_tables_fix.sql
sql-common/client_plugin.c
sql/CMakeLists.txt
sql/debug_sync.cc
sql/event_data_objects.cc
sql/event_data_objects.h
sql/event_db_repository.cc
sql/event_db_repository.h
sql/event_queue.cc
sql/events.cc
sql/events.h
sql/field.cc
sql/field.h
sql/ha_ndbcluster.cc
sql/handler.cc
sql/item.cc
sql/item.h
sql/lock.cc
sql/lock.h
sql/log_event.cc
sql/mdl.cc
sql/mdl.h
sql/mysqld.cc
sql/mysqld.h
sql/opt_range.cc
sql/protocol.cc
sql/rpl_rli.cc
sql/slave.cc
sql/sp.cc
sql/sp.h
sql/sp_head.cc
sql/sql_acl.cc
sql/sql_admin.cc
sql/sql_audit.h
sql/sql_base.cc
sql/sql_base.h
sql/sql_class.cc
sql/sql_class.h
sql/sql_cursor.cc
sql/sql_db.cc
sql/sql_error.cc
sql/sql_error.h
sql/sql_handler.cc
sql/sql_handler.h
sql/sql_insert.cc
sql/sql_lex.cc
sql/sql_lex.h
sql/sql_parse.cc
sql/sql_partition.cc
sql/sql_prepare.cc
sql/sql_rename.cc
sql/sql_select.cc
sql/sql_show.cc
sql/sql_table.cc
sql/sql_table.h
sql/sql_trigger.cc
sql/sql_update.cc
sql/sql_view.cc
sql/sql_yacc.yy
sql/table.cc
sql/table.h
sql/transaction.cc
storage/innobase/btr/btr0cur.c
storage/innobase/dict/dict0crea.c
storage/innobase/dict/dict0dict.c
storage/innobase/dict/dict0load.c
storage/innobase/fil/fil0fil.c
storage/innobase/fsp/fsp0fsp.c
storage/innobase/handler/ha_innodb.cc
storage/innobase/handler/handler0alter.cc
storage/innobase/include/btr0btr.h
storage/innobase/include/btr0btr.ic
storage/innobase/include/btr0cur.h
storage/innobase/include/db0err.h
storage/innobase/include/dict0dict.h
storage/innobase/include/fil0fil.h
storage/innobase/include/row0ins.h
storage/innobase/include/row0upd.h
storage/innobase/include/univ.i
storage/innobase/row/row0ins.c
storage/innobase/row/row0merge.c
storage/innobase/row/row0mysql.c
storage/innobase/row/row0sel.c
storage/innobase/row/row0upd.c
storage/innobase/sync/sync0rw.c
storage/innobase/thr/thr0loc.c
storage/innobase/trx/trx0i_s.c
storage/innobase/ut/ut0ut.c
storage/myisam/ft_nlq_search.c
storage/myisam/ha_myisam.cc
storage/myisammrg/myrg_open.c
support-files/CMakeLists.txt
support-files/MySQL-shared-compat.spec.sh
support-files/my-huge.cnf.sh
support-files/my-innodb-heavy-4G.cnf.sh
support-files/my-large.cnf.sh
support-files/my-medium.cnf.sh
support-files/my-small.cnf.sh
support-files/mysql.spec.sh
tests/mysql_client_test.c
unittest/unit.pl
win/configure.js
=== modified file 'sql/mysqld.cc'
--- a/sql/mysqld.cc 2010-11-16 09:05:19 +0000
+++ b/sql/mysqld.cc 2010-11-21 13:32:48 +0000
@@ -324,7 +324,8 @@ static PSI_rwlock_key key_rwlock_openssl
/* the default log output is log tables */
static bool lower_case_table_names_used= 0;
static bool volatile select_thread_in_use, signal_thread_in_use;
-static bool volatile ready_to_exit;
+/* See Bug#56666 and Bug#56760 */;
+volatile bool ready_to_exit;
static my_bool opt_debugging= 0, opt_external_locking= 0, opt_console= 0;
static my_bool opt_short_log_format= 0;
static uint kill_cached_threads, wake_thread;
=== modified file 'storage/perfschema/pfs_lock.h'
--- a/storage/perfschema/pfs_lock.h 2010-07-15 23:44:45 +0000
+++ b/storage/perfschema/pfs_lock.h 2010-11-16 08:36:42 +0000
@@ -135,7 +135,25 @@ struct pfs_lock
*/
void allocated_to_free(void)
{
- DBUG_ASSERT(m_state == PFS_LOCK_ALLOCATED);
+#ifndef DBUG_OFF
+ extern volatile bool ready_to_exit;
+#endif
+
+ /*
+ If this record is not in the ALLOCATED state and the caller is trying
+ to free it, this is a bug: the caller is confused,
+ and potentially damaging data owned by another thread or object.
+ The correct assert to use here to guarantee data integrity is simply:
+ DBUG_ASSERT(m_state == PFS_LOCK_ALLOCATED);
+ Now, because of Bug#56666 (Race condition between the server main thread
+ and the kill server thread), this assert actually fails during shutdown,
+ and the failure is legitimate, on concurrent calls to mysql_*_destroy(),
+ when destroying the instrumentation of an object ... twice.
+ During shutdown this has no consequences for the performance schema,
+ so the assert is relaxed with the "|| ready_to_exit" condition as a work
+ around until Bug#56666 is fixed.
+ */
+ DBUG_ASSERT((m_state == PFS_LOCK_ALLOCATED) || ready_to_exit);
PFS_atomic::store_32(&m_state, PFS_LOCK_FREE);
}
=== modified file 'storage/perfschema/unittest/pfs-t.cc'
--- a/storage/perfschema/unittest/pfs-t.cc 2010-07-15 23:44:45 +0000
+++ b/storage/perfschema/unittest/pfs-t.cc 2010-11-16 08:36:42 +0000
@@ -25,6 +25,7 @@
#include <memory.h>
#include "stub_print_error.h"
+#include "stub_server_misc.h"
/* test helpers, to simulate the setup */
=== modified file 'storage/perfschema/unittest/pfs_instr-oom-t.cc'
--- a/storage/perfschema/unittest/pfs_instr-oom-t.cc 2010-07-15 23:44:45 +0000
+++ b/storage/perfschema/unittest/pfs_instr-oom-t.cc 2010-11-16 08:36:42 +0000
@@ -21,6 +21,7 @@
#include <tap.h>
#include "stub_pfs_global.h"
+#include "stub_server_misc.h"
void test_oom()
{
=== modified file 'storage/perfschema/unittest/pfs_instr-t.cc'
--- a/storage/perfschema/unittest/pfs_instr-t.cc 2010-07-15 23:44:45 +0000
+++ b/storage/perfschema/unittest/pfs_instr-t.cc 2010-11-16 08:36:42 +0000
@@ -22,6 +22,8 @@
#include <memory.h>
+#include "stub_server_misc.h"
+
void test_no_instruments()
{
int rc;
=== modified file 'storage/perfschema/unittest/pfs_instr_class-oom-t.cc'
--- a/storage/perfschema/unittest/pfs_instr_class-oom-t.cc 2010-07-15 23:44:45 +0000
+++ b/storage/perfschema/unittest/pfs_instr_class-oom-t.cc 2010-11-16 08:36:42 +0000
@@ -20,6 +20,7 @@
#include <tap.h>
#include "stub_pfs_global.h"
+#include "stub_server_misc.h"
void test_oom()
{
=== modified file 'storage/perfschema/unittest/pfs_instr_class-t.cc'
--- a/storage/perfschema/unittest/pfs_instr_class-t.cc 2010-07-15 23:44:45 +0000
+++ b/storage/perfschema/unittest/pfs_instr_class-t.cc 2010-11-16 08:36:42 +0000
@@ -21,6 +21,8 @@
#include <pfs_global.h>
#include <tap.h>
+#include "stub_server_misc.h"
+
void test_no_registration()
{
int rc;
=== added file 'storage/perfschema/unittest/stub_server_misc.h'
--- a/storage/perfschema/unittest/stub_server_misc.h 1970-01-01 00:00:00 +0000
+++ b/storage/perfschema/unittest/stub_server_misc.h 2010-11-16 08:36:42 +0000
@@ -0,0 +1,21 @@
+/* Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; version 2 of the License.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
+
+/*
+ Minimal code to be able to link a unit test.
+*/
+
+volatile bool ready_to_exit= false;
+
No bundle (reason: useless for push emails).
| Thread |
|---|
| • bzr push into mysql-5.5-bugteam branch (marc.alff:3123) | Marc Alff | 21 Nov |