When all table blocks were removed from the query cache the client session
hung in a tight loop waiting on an impossible condition while consuming a lot
of CPU.
This patch also corrects an error which caused valid tables to sometimes be
removed from the query cache.
mysql-test/r/query_cache.result:
Added test case to make sure server doesn't hang in a tight loop if last
table block is removed from the cache.
mysql-test/t/query_cache.test:
Added test case to make sure server doesn't hang in a tight loop if last
table block is removed from the cache.
sql/sql_cache.cc:
- Refactored loop over table blocks. The invalidate_table() function effects
the elements over which we iterate. The previous stop condition was broken
due to a compiler optimization error probably caused by the goto-statement
pointing out of the loop. The effect being that tables_blocks was never
checked for null values and thus the loop never terminated.
- The new implementation uses two while loops instead of a goto-statement.
The tables_blocks is a circular list which becomes null if the last table
block is removed from the list.
- make tests wait until ndb connects properly
mysql-test/extra/rpl_tests/rpl_commit_after_flush.test:
make tests wait until ndb connects properly
mysql-test/extra/rpl_tests/rpl_delete_no_where.test:
make tests wait until ndb connects properly
mysql-test/extra/rpl_tests/rpl_insert_ignore.test:
make tests wait until ndb connects properly
mysql-test/extra/rpl_tests/rpl_log.test:
make tests wait until ndb connects properly
mysql-test/extra/rpl_tests/rpl_multi_update2.test:
make tests wait until ndb connects properly
mysql-test/extra/rpl_tests/rpl_multi_update3.test:
make tests wait until ndb connects properly
mysql-test/extra/rpl_tests/rpl_relayrotate.test:
make tests wait until ndb connects properly
mysql-test/extra/rpl_tests/rpl_row_001.test:
make tests wait until ndb connects properly
mysql-test/extra/rpl_tests/rpl_row_UUID.test:
make tests wait until ndb connects properly
mysql-test/extra/rpl_tests/rpl_row_basic.test:
make tests wait until ndb connects properly
mysql-test/extra/rpl_tests/rpl_row_blob.test:
make tests wait until ndb connects properly
mysql-test/extra/rpl_tests/rpl_row_charset.test:
make tests wait until ndb connects properly
mysql-test/extra/rpl_tests/rpl_row_func003.test:
make tests wait until ndb connects properly
mysql-test/extra/rpl_tests/rpl_row_sp003.test:
make tests wait until ndb connects properly
mysql-test/extra/rpl_tests/rpl_row_sp006.test:
make tests wait until ndb connects properly
mysql-test/include/have_multi_ndb.inc:
make tests wait until ndb connects properly
mysql-test/include/have_ndb.inc:
make tests wait until ndb connects properly
mysql-test/include/ndb_not_readonly.inc:
make tests wait until ndb connects properly
mysql-test/t/rpl_commit_after_flush.test:
make tests wait until ndb connects properly
mysql-test/t/rpl_delete_no_where.test:
make tests wait until ndb connects properly
mysql-test/t/rpl_insert_ignore.test:
make tests wait until ndb connects properly
mysql-test/t/rpl_multi_update2.test:
make tests wait until ndb connects properly
mysql-test/t/rpl_multi_update3.test:
make tests wait until ndb connects properly
mysql-test/t/rpl_ndb_2innodb.test:
make tests wait until ndb connects properly
mysql-test/t/rpl_ndb_2myisam.test:
make tests wait until ndb connects properly
mysql-test/t/rpl_ndb_UUID.test:
make tests wait until ndb connects properly
mysql-test/t/rpl_ndb_auto_inc.test:
make tests wait until ndb connects properly
mysql-test/t/rpl_ndb_bank.test:
make tests wait until ndb connects properly
mysql-test/t/rpl_ndb_basic.test:
make tests wait until ndb connects properly
mysql-test/t/rpl_ndb_blob.test:
make tests wait until ndb connects properly
mysql-test/t/rpl_ndb_blob2.test:
make tests wait until ndb connects properly
mysql-test/t/rpl_ndb_charset.test:
make tests wait until ndb connects properly
mysql-test/t/rpl_ndb_circular.test:
make tests wait until ndb connects properly
mysql-test/t/rpl_ndb_circular_simplex.test:
make tests wait until ndb connects properly
mysql-test/t/rpl_ndb_commit_afterflush.test:
make tests wait until ndb connects properly
mysql-test/t/rpl_ndb_dd_advance.test:
make tests wait until ndb connects properly
mysql-test/t/rpl_ndb_dd_basic.test:
make tests wait until ndb connects properly
mysql-test/t/rpl_ndb_dd_partitions.test:
make tests wait until ndb connects properly
mysql-test/t/rpl_ndb_ddl.test:
make tests wait until ndb connects properly
mysql-test/t/rpl_ndb_delete_nowhere.test:
make tests wait until ndb connects properly
mysql-test/t/rpl_ndb_do_db.test:
make tests wait until ndb connects properly
mysql-test/t/rpl_ndb_do_table.test:
make tests wait until ndb connects properly
mysql-test/t/rpl_ndb_extraCol.test:
make tests wait until ndb connects properly
mysql-test/t/rpl_ndb_func003.test:
make tests wait until ndb connects properly
mysql-test/t/rpl_ndb_idempotent.test:
make tests wait until ndb connects properly
mysql-test/t/rpl_ndb_innodb2ndb.test:
make tests wait until ndb connects properly
mysql-test/t/rpl_ndb_innodb_trans.test:
make tests wait until ndb connects properly
mysql-test/t/rpl_ndb_insert_ignore.test:
make tests wait until ndb connects properly
mysql-test/t/rpl_ndb_load.test:
make tests wait until ndb connects properly
mysql-test/t/rpl_ndb_log.test:
make tests wait until ndb connects properly
mysql-test/t/rpl_ndb_multi.test:
make tests wait until ndb connects properly
mysql-test/t/rpl_ndb_multi_update2.test:
make tests wait until ndb connects properly
mysql-test/t/rpl_ndb_multi_update3.test:
make tests wait until ndb connects properly
mysql-test/t/rpl_ndb_myisam2ndb.test:
make tests wait until ndb connects properly
mysql-test/t/rpl_ndb_relayrotate.test:
make tests wait until ndb connects properly
mysql-test/t/rpl_ndb_rep_ignore.test:
make tests wait until ndb connects properly
mysql-test/t/rpl_ndb_row_001.test:
make tests wait until ndb connects properly
mysql-test/t/rpl_ndb_sp003.test:
make tests wait until ndb connects properly
mysql-test/t/rpl_ndb_sp006.test:
make tests wait until ndb connects properly
mysql-test/t/rpl_ndb_stm_innodb.test:
make tests wait until ndb connects properly
mysql-test/t/rpl_ndb_sync.test:
make tests wait until ndb connects properly
mysql-test/t/rpl_ndb_trig004.test:
make tests wait until ndb connects properly
mysql-test/t/rpl_ndbapi_multi.test:
make tests wait until ndb connects properly
mysql-test/t/rpl_relayrotate.test:
make tests wait until ndb connects properly
mysql-test/t/rpl_row_001.test:
make tests wait until ndb connects properly
mysql-test/t/rpl_row_UUID.test:
make tests wait until ndb connects properly
mysql-test/t/rpl_row_basic_2myisam.test:
make tests wait until ndb connects properly
mysql-test/t/rpl_row_basic_3innodb.test:
make tests wait until ndb connects properly
mysql-test/t/rpl_row_basic_7ndb.test:
make tests wait until ndb connects properly
mysql-test/t/rpl_row_blob_innodb.test:
make tests wait until ndb connects properly
mysql-test/t/rpl_row_blob_myisam.test:
make tests wait until ndb connects properly
mysql-test/t/rpl_row_charset.test:
make tests wait until ndb connects properly
mysql-test/t/rpl_row_func003.test:
make tests wait until ndb connects properly
mysql-test/t/rpl_row_log.test:
make tests wait until ndb connects properly
mysql-test/t/rpl_row_log_innodb.test:
make tests wait until ndb connects properly
mysql-test/t/rpl_row_sp003.test:
make tests wait until ndb connects properly
mysql-test/t/rpl_row_sp006_InnoDB.test:
make tests wait until ndb connects properly
mysql-test/t/rpl_stm_log.test:
make tests wait until ndb connects properly
mysql-test/t/rpl_truncate_7ndb.test:
make tests wait until ndb connects properly
mysql-test/include/ndb_master-slave.inc:
New BitKeeper file ``mysql-test/include/ndb_master-slave.inc''
The method select_insert::send_error does two things, it rolls back a statement
being executed and outputs an error message. But when a
nonexistent column is referenced, an error message has been published already and
there is no need to publish another.
Fixed by moving all functionality beyond publishing an error message into
select_insert::abort() and calling only that function.
mysql-test/r/errors.result:
Bug#28677: test result
mysql-test/t/errors.test:
Bug#28677: test case
sql/sql_class.h:
Bug#28677: overriding abort()
sql/sql_insert.cc:
Bug#28677:
- moved everything beyond producing an error message out of select_insert::send_error
and into new override select_insert::abort()
- made corresponding move of code from select_create::send_error to select_create::abort
sql/sql_select.cc:
Bug#28677: No need to pusblish an error here
into gleb.loc:/home/uchum/work/bk/5.1-opt
mysql-test/r/func_str.result:
Auto merged
mysql-test/t/func_str.test:
Auto merged
sql/item_strfunc.cc:
Auto merged
into mysql.com:/nfsdisk1/lars/MERGE/mysql-5.1-merge
mysql-test/t/disabled.def:
Auto merged
mysql-test/t/ndb_basic.test:
Auto merged
mysql-test/t/ndb_insert.test:
Auto merged
mysql-test/t/ndb_restore.test:
Auto merged
sql/ha_ndbcluster.cc:
Auto merged
sql/handler.cc:
Auto merged
sql/handler.h:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/mysqld.cc:
Auto merged
sql/set_var.cc:
Auto merged
storage/myisam/ha_myisam.cc:
Auto merged
storage/myisammrg/ha_myisammrg.h:
Auto merged
sql/share/errmsg.txt:
SCCS merged
mysql-test/r/binlog_multi_engine.result:
Result change
mysql-test/t/binlog_multi_engine.test:
Commenting out statements that generate non-deterministic results.
into mysql.com:/nfsdisk1/lars/MERGE/mysql-5.1-merge
mysql-test/t/innodb.test:
Auto merged
mysql-test/t/ndb_basic.test:
Auto merged
mysql-test/t/ndb_charset.test:
Auto merged
mysql-test/t/ndb_index_unique.test:
Auto merged
mysql-test/t/ndb_insert.test:
Auto merged
mysql-test/t/ndb_replace.test:
Auto merged
mysql-test/t/ndb_update.test:
Auto merged
mysql-test/t/rpl_000015.test:
Auto merged
mysql-test/t/rpl_rotate_logs.test:
Auto merged
mysql-test/t/rpl_row_inexist_tbl.test:
Auto merged
sql/Makefile.am:
Auto merged
BitKeeper/deleted/.del-ndb_binlog_basic2.test:
Auto merged
sql/field.cc:
Auto merged
sql/handler.cc:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/mysqld.cc:
Auto merged
sql/set_var.cc:
Auto merged
sql/sql_class.h:
Auto merged
sql/sql_insert.cc:
Auto merged
sql/sql_parse.cc:
Auto merged
storage/myisam/ha_myisam.cc:
Auto merged
sql/item_create.cc:
Manual merge
represented by an expression of the type UNSIGNED INT and this
expression was evaluated to 0 then the function erroneously returned
the value of the first argument instead of an empty string.
This problem was introduced by the patch for bug 10963.
The problem has been resolved by a proper modification of the code of
Item_func_substr::val_str.
mysql-test/r/func_str.result:
Added a test case for bug #27130.
mysql-test/t/func_str.test:
Added a test case for bug #27130.
into whalegate.ndb.mysql.com:/home/tomas/mysql-5.1-engines
extra/perror.c:
Auto merged
mysql-test/t/ndb_basic.test:
Auto merged
mysql-test/t/ndb_insert.test:
Auto merged
sql/ha_ndbcluster.cc:
Auto merged
sql/handler.cc:
Auto merged
sql/handler.h:
Auto merged
sql/mysqld.cc:
Auto merged
storage/ndb/src/common/transporter/Packer.cpp:
Auto merged
storage/ndb/src/common/transporter/TCP_Transporter.hpp:
Auto merged
storage/ndb/src/common/transporter/TransporterRegistry.cpp:
Auto merged
storage/ndb/src/kernel/blocks/cmvmi/Cmvmi.cpp:
Auto merged
storage/ndb/src/kernel/blocks/dbdict/Dbdict.cpp:
Auto merged
storage/ndb/src/mgmclient/main.cpp:
Auto merged
storage/ndb/src/ndbapi/NdbBlob.cpp:
Auto merged
storage/ndb/test/ndbapi/testNdbApi.cpp:
Auto merged
storage/ndb/test/run-test/daily-basic-tests.txt:
Auto merged
storage/ndb/tools/restore/consumer_restore.cpp:
Auto merged
mysql-test/t/disabled.def:
manual merge
The log tables are by nature PERFORMANCE_SCHEMA tables,
which should not be affected by SET GLOBAL READ_ONLY or FLUSH TABLES
WITH READ LOCK.
The implementation of FLUSH TABLES WITH READ LOCK already ignored log tables.
Now with this patch, the implementation of LOCK TABLE also ignore a
global read lock for log tables, which was the missing symmetry.
mysql-test/r/flush.result:
Fix for bug #26380: LOCK TABLES + FLUSH LOGS causes deadlock
- test result.
mysql-test/t/flush.test:
Fix for bug #26380: LOCK TABLES + FLUSH LOGS causes deadlock
- test case.
sql/lock.cc:
Fix for bug #26380: LOCK TABLES + FLUSH LOGS causes deadlock
- logger.is_privileged_thread() used.
sql/log.h:
Fix for bug #26380: LOCK TABLES + FLUSH LOGS causes deadlock
- LOGGER::is_privileged_thread() introduced that returns TRUE if a given thread
is either a general_log or a slow_log or a privileged thread.
sql/sql_base.cc:
Fix for bug #26380: LOCK TABLES + FLUSH LOGS causes deadlock
- pass MYSQL_LOCK_IGNORE_GLOBAL_READ_LOCK to the mysql_lock_tables() in case of
call from a logger in order not to honor the GLOBAL READ LOCK
and to avoid possible deadlocks.
into mysql.com:/home/ram/work/b28144/b28144.5.1
mysql-test/r/rpl_log_pos.result:
ul
mysql-test/r/rpl_ssl.result:
ul
mysql-test/t/rpl_log_pos.test:
manual merge
mysql-test/t/rpl_ssl.test:
manual merge
into gleb.loc:/home/uchum/work/bk/5.1-opt
mysql-test/r/func_str.result:
Auto merged
mysql-test/t/func_str.test:
Auto merged
mysql-test/r/bigint.result:
Merge with 5.0-opt.
mysql-test/t/bigint.test:
Merge with 5.0-opt.
sql/item_func.cc:
Merge with 5.0-opt.
into chilla.local:/home/mydev/mysql-5.1-axmrg
configure.in:
Auto merged
mysql-test/mysql-test-run.pl:
Auto merged
mysql-test/r/sp.result:
Auto merged
mysql-test/t/merge.test:
Auto merged
mysql-test/t/show_check.test:
Auto merged
sql/mysqld.cc:
Auto merged
storage/myisam/ha_myisam.cc:
Auto merged
DECIMAL column was used instead of BIGINT for the minimal possible
BIGINT (-9223372036854775808).
The Item_func_neg::fix_length_and_dec has been adjusted to
to inherit the type of the argument in the case when it's an
Item_int object whose value is equal to LONGLONG_MIN.
sql/item_func.cc:
Fixed bug #28625.
The Item_func_neg::fix_length_and_dec has been adjusted to
to inherit the type of the argument in the case when it's an
Item_int object whose value is equal to LONGLONG_MIN.
mysql-test/t/bigint.test:
Added test result for bug #28625.
mysql-test/r/bigint.result:
Added test case for bug #28625.
client/client_priv.h:
Clean up of options.
client/mysqlslap.c:
Cleanup of the connection and reconnect code.
mysql-test/r/mysqlslap.result:
Add of new test.
mysql-test/t/mysqlslap.test:
Additional test.
Post-merge fix: replace xid=* with XID to isolate from number of transactions
mysql-test/r/binlog.result:
Post-merge fix: replace xid=* with XID to isolate from number of transactions
mysql-test/t/binlog.test:
Post-merge fix: replace xid=* with XID to isolate from number of transactions
into chilla.local:/home/mydev/mysql-5.1-axmrg
mysql-test/r/view.result:
Auto merged
sql/mysqld.cc:
Auto merged
sql/set_var.cc:
Auto merged
sql/sql_table.cc:
Auto merged
sql/sql_yacc.yy:
Auto merged
sql/table.cc:
Auto merged
sql/mysql_priv.h:
SCCS merged
into weblab.(none):/home/marcsql/TREE/mysql-5.1-rt-merge
mysql-test/r/trigger.result:
Auto merged
mysql-test/t/trigger.test:
Auto merged
sql/field.cc:
Auto merged
sql/field.h:
Auto merged
sql/handler.cc:
Auto merged
sql/item.h:
Auto merged
sql/log.cc:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/sql_class.h:
Auto merged
sql/sql_insert.cc:
Auto merged
sql/sql_parse.cc:
Auto merged
sql/sql_partition.cc:
Auto merged
sql/sql_prepare.cc:
Auto merged
sql/sql_select.cc:
Auto merged
sql/sql_table.cc:
Auto merged
sql/sql_yacc.yy:
Auto merged
into maint1.mysql.com:/data/localhome/tsmith/bk/maint/51
mysql-test/mysql-test-run.pl:
Auto merged
BitKeeper/deleted/.del-ctype_cp932_notembedded.test~3047e508460cef42:
Auto merged
mysql-test/extra/binlog_tests/blackhole.test:
Auto merged
mysql-test/extra/binlog_tests/ctype_cp932_binlog.test:
Auto merged
mysql-test/extra/binlog_tests/ctype_ucs_binlog.test:
Auto merged
mysql-test/extra/binlog_tests/drop_temp_table.test:
Auto merged
mysql-test/extra/binlog_tests/mix_innodb_myisam_binlog.test:
Auto merged
mysql-test/r/have_log_bin.require:
Auto merged
mysql-test/t/flush_block_commit_notembedded.test:
Auto merged
mysql-test/t/mysqlbinlog-cp932.test:
Auto merged
mysql-test/t/mysqlbinlog.test:
Auto merged
mysql-test/t/mysqldump.test:
Auto merged
mysql-test/t/sp_trans.test:
Auto merged
mysql-test/t/user_var-binlog.test:
Auto merged
sql/sql_parse.cc:
Auto merged
sql/sql_select.cc:
Auto merged
mysql-test/extra/binlog_tests/insert_select-binlog.test:
SCCS merged
mysql-test/r/binlog_stm_binlog.result:
SCCS merged
mysql-test/r/binlog_stm_mix_innodb_myisam.result:
SCCS merged
configure.in:
manual merge
mysql-test/extra/binlog_tests/binlog.test:
manual merge
mysql-test/t/mysqlbinlog2.test:
manual merge
sql/mysqld.cc:
manual merge
- Select STDOUT as default handle after having cloned the child
- Disable check for "$error eq $output" to ptoperly redirect $error
mysql-test/lib/mtr_process.pl:
Restore output to STDOUT after forking the child
Since STDOUT is not redirected disable to check to see if $output
is equal to $error so STDERR is properly opened to $error
Problem: show slave status may return different Slave_IO_Running values running some tests.
Fix: wait for a certain slave state if needed to get tests more predictable.
mysql-test/r/rpl_log_pos.result:
Fix for bug #28144: "Slave_IO_Running" differs in replication tests
- test result adjusted.
mysql-test/r/rpl_ssl.result:
Fix for bug #28144: "Slave_IO_Running" differs in replication tests
- test result adjusted.
mysql-test/t/rpl_log_pos.test:
Fix for bug #28144: "Slave_IO_Running" differs in replication tests
- test has been rewritten to get certain slave state, now we use wait_for_slave_param.inc
to ensure we get proper IO/SQL slave's threads states.
mysql-test/t/rpl_ssl.test:
Fix for bug #28144: "Slave_IO_Running" differs in replication tests
- wait_for_slave_to_start.inc used to get certain slave states in order
to be more predictable.
mysql-test/include/wait_for_slave_param.inc:
New BitKeeper file ``mysql-test/include/wait_for_slave_param.inc''
allow to wait until SHOW SLAVE STATUS has returned a spicified value.