1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-05 12:42:17 +03:00
Commit Graph

1558 Commits

Author SHA1 Message Date
ba835f89ba BUG#40482: server/mysqlbinlog crashes when reading invalid Incident_log_event
Problem: When an Incident_log_event contains a bad incident number on disk,
the server crashes with an assertion.
Fix: Don't validate input with assertions. Use errors.

mysql-test/include/cleanup_fake_relay_log.inc:
  Added auxiliary file to restore things that setup_fake_relay_log.inc did.
mysql-test/include/setup_fake_relay_log.inc:
  Added auxiliary file to setup replication from an existing relay log.
mysql-test/std_data/bug40482-bin.000001:
  Binlog file for rpl.rpl_binlog_corruption
mysql-test/suite/rpl/t/rpl_binlog_corruption.test:
  New test file.
sql/log_event.cc:
  Check that the incident number is correct at the time the event is constructed.
  Do not assert it at the time it is printed.
sql/log_event.h:
  Incident_log_event::is_valid() should verify that the incident number is valid.
sql/rpl_constants.h:
  Incident numbers should be hard-coded, since they may appear in files.
2008-12-29 17:04:10 +01:00
dbb7b40cda BUG#41708 rpl.rpl_flushlog_loop fails in pushbuild producing non-deterministic result file
If server has not been initialized as a slave (by CHANGE MASTER), then
SHOW SLAVE STATUS will return an empty set, and caused the waiting for
Slave_IO_running or Slave_SQL_running to 'No' fail.

This patch fixed the problem by return immediately if slave is not
initialized in include/wait_for_slave_*_to_stop.inc.


mysql-test/include/wait_for_slave_io_to_stop.inc:
  Return immediately if slave is not initialized
mysql-test/include/wait_for_slave_sql_to_stop.inc:
  Return immediately if slave is not initialized
mysql-test/include/wait_for_slave_to_stop.inc:
  Return immediately if slave is not initialized
2008-12-26 16:20:29 +08:00
2070da7092 BUG#40704 main.events_restart fails sporadically in pushbuild: "server has gone away"
mysqltest command 'shutdown_server' is supposed to shutdown the server
and wait for it to be gone, and kill it when timeout. But because the
arguments passed to my_kill were in the wrong order, 'shutdown_server'
does not wait nor kill the server at all. So after 'shutdown_server',
the server is still running, and the server may still accepting
connections.


mysql-test/include/mtr_warnings.sql:
  Suppress forcing close thread messages when server shuts down
mysql-test/include/restart_mysqld.inc:
  wait_until_disconnected.inc is not required after fix shutdown_server command
2008-12-25 17:53:24 +08:00
cb6a755929 Merge: mysql-5.0-bugteam -> mysql-5.1-bugteam 2008-12-23 16:28:13 +03:00
e6390e23c2 Merge. 2008-12-23 15:06:30 +04:00
2d06a00dda Bug #40704 main.events_restart fails sporadically in pushbuild: "server has gone away"
mysql-test/include/wait_until_disconnected.inc:
  Allow 2013 as an expected error code
2008-12-19 16:48:31 +01:00
357b500940 WL#4681: Took the system variable tests out of the main test suite, put them into "sys_vars", updated some reult files and tests. 2008-12-19 16:03:32 +01:00
25c54b358f Final fix for bug#36773: Moved patch in 5.1 from rpl to bug team tree. 2008-12-17 14:38:02 +01:00
3a42aab81c BUG#39746 - Debug flag breaks struct definition
(server crash)

Altering a table with fulltext index[es] which use
pluggable fulltext parser may cause server crash
in debug builds.

The problem was that ALTER TABLE code wrongly assigned
fulltext parser name.

Also fixed that altering a table with fulltext index[es]
leave stale fulltext parser locks, which prevent
fulltext parsers from being uninstalled after
ALTER TABLE.

mysql-test/include/have_simple_parser.inc:
  Added support for testing simple fulltext parser.
mysql-test/mysql-test-run.pl:
  Added support for testing simple fulltext parser.
mysql-test/r/fulltext_plugin.result:
  A test case for BUG#39746.
mysql-test/r/have_simple_parser.require:
  Added support for testing simple fulltext parser.
mysql-test/t/fulltext_plugin-master.opt:
  A test case for BUG#39746.
mysql-test/t/fulltext_plugin.test:
  A test case for BUG#39746.
sql/sql_table.cc:
  Fixed that alter table wrongly assigns fulltext parser
  name. parser_name member is only available during
  table creation. When we open existing table we must
  get parser_name from plugin_ref, which is handled
  by plugin_name() macro.
sql/table.cc:
  Moved code that releases fulltext parsers into
  free_table_share(). This fixes stale fulltext parser
  locks set by ALTER TABLE, which are preventing fulltext
  parsers from being uninstalled.
2008-12-17 17:24:34 +04:00
2349c56f1c auto merge 2008-12-13 19:48:19 +00:00
19f859a27e merge 5.1 --> 5.1-rpl 2008-12-13 19:42:12 +00:00
5753307aef Bug #41383 Test commit1_innodb fails with binlog-format=row
The test explicitly warned on existence of a bug in its 27th part.
The expected values of prepare and commit counters changed, corrected, by
fixes to bug#40221.
Notice, that binlog does not have to register for a statement with
the statement binlog-format because the statement rollback does not need
to do anything in that mode. It's not so with the ROW format which was
bug#40221 concern.

Fixed with correcting the expected values of the mentioned counters and
explained that with comments in the test.

mysql-test/include/commit.inc:
  Removing `Sic' that warned on a bug (The one is bug#40221).
  Correcting the expected values of prepare and commit counters due to fixes to bug#40221.
mysql-test/r/commit_1innodb.result:
  results changed.
2008-12-12 14:52:20 +02:00
aa78bb3030 Bug#41186: Possible reason of bug is waiting any sql error on slave instead
exact number of error. The patch does following:
1) Add new parameter $slave_sql_errno for wait_for_slave_sql_error.inc
2) Add waiting error 1062 (Duplicate PK) for slave SQL thread in test case.
2008-12-12 14:40:22 +03:00
5c16a315ca Bug#40636 falcon_bug_28095 test fails with "Server failed to restart"
mysql-test/include/wait_until_disconnected.inc:
  Change the default value for $mysql_errno so that the loops is run at least once
2008-12-10 19:40:27 +01:00
83b1f54508 push to 5.1-buteam tree. 2008-12-10 10:51:43 +00:00
95b779ee53 Merge 2008-12-05 22:15:52 +01:00
db6be73cf3 Bug#41061 analyze-warnings times out sporadically in pushbuild
mysql-test/include/mtr_warnings.sql:
  Slice the time the takes to load the servers error log into error_log table
  by using a declared variable instead of user variable.
  Also change the while loop to only do one LOCATE per loop.
  Drop the temporary tables created by sp
2008-12-05 19:24:10 +01:00
73326c1069 BUG#38826 Race in MYSQL_LOG::purge_logs is impossible to debug in production
BUG#39325 Server crash inside MYSQL_LOG::purge_first_log halts replicaiton

The patch reverses the order of the purging and updating events for log and
relay-log.info/index files respectively.

This solves the problem of having holes caused by crashes happening between updating
info/index files and purging logs.

This patch also contains an aditional test case for testing the crashing before purge logs.
      
NOTE1: This is a combined patch for BUG#38826 and BUG#39325. This patch is based on
bugteam tree and takes into account reviewers suggestions.

NOTE2: Merge from 5.0-bugteam
2008-12-04 14:07:56 +00:00
7ed2caed58 Fix for Bug#37810:
The "show status" may be received by the server in a startup state, where it only can reject the statement, so that the client then react with 2013.
So, adding 2013 to the list of errors may help, as the "show status" will be repeated then.
2008-12-02 12:34:52 +01:00
bf1e547779 Fix for Bug#36876:
The minimum value differs depending on the OS and mysqld build, so that the test fail spradically.
The check of this value has been changed from check of concrete values to the check of a range that is near by the expected value.
2008-12-02 11:05:56 +01:00
10548a6ee9 Merge 5.0->5.1 2008-11-24 16:56:48 -05:00
2578609322 Bug#40866: mysql-test-run's check of tests provides false failures due to timestamp
Altering how MTR checks global variable status to exclude timestamp
Changed SQL statements to update style.
2008-11-24 16:53:32 -05:00
5676a2d770 BUG#40707 rpl_multi_engine fails sporadically in pushbuild
If before running test rpl_mulit_engin, the mysqltest1 database exists
on master but not exists on slave, then the following statement:

  create database if not exists mysqltest1;

would not be logged to binary log, and so the database would not be
created on slave. This would cause the test to fail and reporting 
mysqltest1 database not existed on slave.

This patch fixed this problem by not using a different database for
the whole test, just use the default test database, there is no reason
why a seperate database is used for this test.


mysql-test/include/rpl_multi_engine.inc:
  use default test database instead of mysqltest1
mysql-test/suite/rpl/r/rpl_multi_engine.result:
  use default test database instead of mysqltest1
mysql-test/suite/rpl/t/rpl_multi_engine.test:
  use default test database instead of mysqltest1
  add missing --enable_warnings
2008-11-24 14:57:23 +08:00
ca59e88ce3 BUG#38350: Many tests don't clean up after themselves on exit.
Problem: Many test cases don't clean up after themselves (fail
to drop tables or fail to reset variables). This implies that:
(1) check-testcase in the new mtr that currently lives in
5.1-rpl failed. (2) it may cause unexpected results in
subsequent tests.
Fix: make all tests clean up.
Also: cleaned away unnecessary output in rpl_packet.result
Also: fixed bug where rpl_log called RESET MASTER with a running
slave. This is not supposed to work.
Also: removed unnecessary code from rpl_stm_EE_err2 and made it
verify that an error occurred.
Also: removed unnecessary code from rpl_ndb_ctype_ucs2_def.


mysql-test/extra/rpl_tests/rpl_loaddata.test:
  Made test clean up after itself.
mysql-test/extra/rpl_tests/rpl_stm_EE_err2.test:
  Made test clean up after itself.
  Also removed unnecessary save_master_pos.
  Also made test verify that an error occurred.
mysql-test/extra/rpl_tests/rpl_truncate_helper.test:
  Made test clean up after itself.
mysql-test/include/query_cache.inc:
  Made test clean up after itself.
mysql-test/suite/binlog/t/binlog_auto_increment_bug33029.test:
  Made test clean up after itself.
mysql-test/suite/rpl/t/rpl_alter_db.test:
  Made test clean up after itself.
  Easiest to refactor the test a little, to use an auxiliary database instead of mysql:
  Then we don't need to read the collation at the start of the test and reset it at the
  end of the test. We can just drop the database.
mysql-test/suite/rpl/t/rpl_drop_db.test:
  Made test clean up after itself.
mysql-test/suite/rpl/t/rpl_drop_view.test:
  Made test clean up after itself.
mysql-test/suite/rpl/t/rpl_events.test:
  Made test clean up after itself.
mysql-test/suite/rpl/t/rpl_idempotency.test:
  Made test clean up after itself.
mysql-test/suite/rpl/t/rpl_ignore_table.test:
  Made test clean up after itself.
  The existing cleanup code didn't work, because the --replicate-*
  options prevented the "drop table" from being replicated. Moved
  "drop table t4" to a statement of its own.
mysql-test/suite/rpl/t/rpl_packet.test:
  Made test clean up after itself.
  Also replaced SHOW SLAVE STATUS by query_get_value(SHOW SLAVE STATUS...),
  since only one column of the result was interesting.
mysql-test/suite/rpl/t/rpl_row_max_relay_size.test:
  Made test clean up after itself.
  Instead of setting binlog format at the beginning of the test, we just
  do 'source include/have_binlog_format_row.inc' like all other tests.
mysql-test/suite/rpl_ndb/t/rpl_ndb_2other.test:
  Made test clean up after itself.
mysql-test/suite/rpl_ndb/t/rpl_ndb_ctype_ucs2_def.test:
  Made test clean up after itself.
  Also removed unnecessary 'create table; drop table'
  Also removed unnecessary use of --command
mysql-test/suite/rpl_ndb/t/rpl_ndb_multi.test:
  Made test clean up after itself.
mysql-test/t/innodb-autoinc-optimize.test:
  Made test clean up after itself.
mysql-test/t/innodb.test:
  Made test clean up after itself.
mysql-test/t/log_tables.test:
  Made test clean up after itself.
mysql-test/t/mysql_client_test.test:
  Made test clean up after itself.
mysql-test/t/partition.test:
  Made test clean up after itself.
mysql-test/t/status.test:
  Made test clean up after itself.
2008-11-13 20:19:00 +01:00
ca2d184695 merging 5.1 -> 5.1 rpl. 3 of 4 conflicts are resolved similarly to 6.0->6.0-rpl merging.
mysql_upgrade results changed due to the error messesge of mysqlcheck has changed.
2008-11-12 19:51:47 +02:00
e6891a8717 Remove files which were created during an upmerge
where it was forgotten to remove them.
2008-11-06 18:51:00 +01:00
32c161f3ea Merging 5.1 main into 5.1-rpl 2008-10-23 21:27:09 +02:00
4e09e915ca BUG#39853: lowercase_table3 fails on powermacg5 in rpl tree
Problem: during a refactoring of mtr, a pattern for suppressing a warning from lowercase_table3 was lost.
Fix: re-introduce the suppression.
Problem 2: suppression was misspelt as supression. Fixed by adding a p.


mysql-test/include/mtr_warnings.sql:
  fixed spelling error
mysql-test/suite/rpl/t/rpl_bug33931.test:
  fixed spelling error
mysql-test/suite/rpl/t/rpl_idempotency.test:
  fixed spelling error
mysql-test/suite/rpl/t/rpl_temporary.test:
  fixed spelling error
mysql-test/suite/rpl/t/rpl_temporary_errors.test:
  fixed spelling error
mysql-test/t/lowercase_table3.test:
  fixed spelling error
2008-10-13 20:33:08 +02:00
7831b221e0 merged 5.1-5.1.29-rc -> 5.1-bugteam 2008-10-07 18:19:32 +03:00
bcaf5e0cf5 Merging 5.1 main into 5.1-rpl. 2008-10-06 10:27:36 +02:00
19256b96e8 Bug #39812: Make statement replication default for 5.1 (to match 5.0)
Make STMT replication default for 5.1.
Add a default of MIXED into the config files
Fix the tests that needed MIXED replication mode.

mysql-test/include/mix1.inc:
  Bug #39812: Fix the tests that needed MIXED replication mode.
mysql-test/r/innodb-semi-consistent.result:
  Bug #39812: Fix the tests that needed MIXED replication mode.
mysql-test/r/innodb.result:
  Bug #39812: Fix the tests that needed MIXED replication mode.
mysql-test/r/innodb_mysql.result:
  Bug #39812: Fix the tests that needed MIXED replication mode.
mysql-test/r/tx_isolation_func.result:
  Bug #39812: Fix the tests that needed MIXED replication mode.
mysql-test/t/innodb-semi-consistent.test:
  Bug #39812: Fix the tests that needed MIXED replication mode.
mysql-test/t/innodb.test:
  Bug #39812: Fix the tests that needed MIXED replication mode.
mysql-test/t/tx_isolation_func.test:
  Bug #39812: Fix the tests that needed MIXED replication mode.
sql/mysqld.cc:
  Bug #39812: Make STMT replication default for 5.1.
support-files/my-huge.cnf.sh:
  Bug #39812: Add a default of MIXED into the config files
support-files/my-innodb-heavy-4G.cnf.sh:
  Bug #39812: Add a default of MIXED into the config files
support-files/my-large.cnf.sh:
  Bug #39812: Add a default of MIXED into the config files
support-files/my-medium.cnf.sh:
  Bug #39812: Add a default of MIXED into the config files
support-files/my-small.cnf.sh:
  Bug #39812: Add a default of MIXED into the config files
2008-10-03 15:24:19 +03:00
7adf7154f7 merge of bug #37943 5.0-bugteam -> 5.1-bugteam 2008-10-01 19:49:59 +03:00
446fd5044c Merge 5.0 -> 5.1 2008-09-30 15:32:35 -04:00
bc544c00ca Change typo . -> , 2008-09-20 17:00:05 +03:00
404e4b802c Bug#38311 Some tests use 'rm' which is not portable
Substituted use of MTR's remove_file function in the tests
Started with 5.0 tree and will clean up any offenders discovered during upmerge.
2008-09-20 02:21:28 -04:00
9d668de5c6 merged 5.1.29-rc into 5.1-bugteam 2008-09-10 12:44:21 +03:00
3f0d6f75b5 WL#4350 Add missing 'exit' 2008-09-09 09:49:58 +02:00
488d043bdf Postfix of tests after merge 2008-09-06 12:49:43 +08:00
b17458dcc1 Merge 5.1 main -> 5.1-rpl 2008-09-06 08:51:17 +08:00
d0edf32230 Use MyISAM for all tables created in mtr_warnings.sql 2008-09-04 11:26:12 +08:00
3bad2119f9 Bug#36086: SELECT * from views don't check column grants
This patch also fixes bugs 36963 and 35600.
                      
- In many places a view was confused with an anonymous derived
  table, i.e. access checking was skipped. Fixed by introducing a
  predicate to tell the difference between named and anonymous
  derived tables.
                      
- When inserting fields for "SELECT * ", there was no 
  distinction between base tables and views, where one should be
  made. View privileges are checked elsewhere.

mysql-test/include/grant_cache.inc:
  Bug#36086: Changed test case.
mysql-test/r/grant2.result:
  Bug#36086: Changed test result.
mysql-test/r/grant_cache_no_prot.result:
  Bug#36086: Changed test result.
mysql-test/r/grant_cache_ps_prot.result:
  Bug#36086: Changed test result.
mysql-test/r/view_grant.result:
  Bug#36086: Test result.
mysql-test/t/grant2.test:
  Bug#36086: Changed test case.
mysql-test/t/view_grant.test:
  Bug#36086: Test case.
sql/item.cc:
  Bug#36086: Replaced conditional with new methods.
sql/sql_acl.cc:
  Bug no 35600: 
  In mysql_table_grant:
    Replaced conditional with the new accessor method.
  
  In check_grant:
   - Changed the requirement table->derived != null to 
     checking all anonymous derived tables.
   - Use of the accessor methods for getting object and database 
     names.
      
  Bug#36086: In check_grant_all_columns:
    - Updated comment. This function is now called for views
      as well.
    - The error message should not disclose any column names 
      unless the user has privilege to see all column names.
    - Changed names of Field_iterator_table_ref methods.
sql/sql_base.cc:
  Bug no 36963: In insert_fields()
    - Commented.
    - We should call check_grant_all_columns() for views in  
      this case.        
    - Changed names of Field_iterator_table_ref methods.
    - We should not disclose column names in the error message
      when the user has no approprate privilege.
sql/sql_cache.cc:
  Bug#36086: Replaced test with new predicate method.
sql/sql_derived.cc:
  Bug#36086: commenting only. Updated and doxygenated
  comment for mysql_derived_prepare().
sql/sql_parse.cc:
  Bug no 35600: 
  - In check_single_table_access:
    Due to the bug, check_grant would raise an error for a
    SHOW CREATE TABLE command for a TEMPTABLE view. It should in
    fact not be be invoked in this case. This table privilege
    is checked already.
    There is a test case for this in information_schema_db.test.
      
  - In check_access: replaced table->derived
sql/table.cc:
  Bug#36086: 
  
  - In TABLE_LIST::set_underlying_merge(): 
    Commenting only. Doxygenated, corrected spelling,
    added.
  
  - Renamed table_name() and db_name() methods of 
    Field_iterator_table_ref in order to be consistent
    with new methods in TABLE_LIST.
sql/table.h:
  Bug#36086: 
    - Commented GRANT_INFO.
    - Added a predicate is_anonymous_derived_table() to    
      TABLE_LIST.
    - Added get_table_name() and get_db_name() to   
      TABLE_LIST in order to hide the disparate   
      representation of these properties.
2008-09-03 16:45:40 +02:00
bc2b637f86 On behalf of Jasonh: fix for a failing test case of bug 37051 2008-08-28 18:15:54 +03:00
84b81e6c95 Merging 5.1 into 5.1-rpl-merge 2008-08-27 20:52:44 +02:00
4e6de6ed27 Fix cherry picking patch of BUG#37051
mysql-test/include/wait_for_slave_sql_error_and_skip.inc:
  include/start_slave.inc not exist yet, changed to start slave and source include/wait_for_slave_to_start.inc
mysql-test/suite/rpl/r/rpl_filter_tables_not_exist.result:
  update result
2008-08-26 20:11:56 +08:00
923f61039e Cherry picking patch for BUG#37051 2008-08-26 18:01:49 +08:00
e456ddcdee Merging 5.1-rpl-testfixes to 5.1 main. 2008-08-26 11:55:30 +05:00
b7f04d0c6c Bug #36968 rpl_temporary_errors.test produces warning in pushbuild
Backporting fixes to 5.1 from 6.0.

mysql-test/include/mtr_warnings.sql:
  removing the global rule for deadlock, use per-test intead.
mysql-test/suite/rpl/r/rpl_temporary_errors.result:
  deploying the expected deadlock error suppression in the test.
mysql-test/suite/rpl/t/rpl_temporary_errors.test:
  deploying the expected deadlock error suppression in the test.
2008-08-25 15:40:44 +03:00
afba839173 Additional fix for bug#31455
Fixing non-deterministic test results:
the number of spaces in FLOAT/DOUBLE output could 
vary between different platforms.
2008-08-25 15:29:59 +05:00
8706222b33 Additional ffix for bug#31455
- fixing double problem on big endian machines
- modifying regex_replace to replace negative numbers
  Previously only positive numbers where replaced.
2008-08-25 12:58:29 +05:00
2e4a7ba0c7 Additional fix for bug#31455
Getting rid of non-deterministic results of sprintf("%-20g").
Displaying only 3 digits after decimal dot.
2008-08-22 15:14:30 +05:00