1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-04 01:23:45 +03:00
Commit Graph

3079 Commits

Author SHA1 Message Date
460a7197bb Merge mysql-5.1-innodb to mysql-5.5-innodb. 2011-04-11 17:03:32 +03:00
0ff2a182b6 Bug #11766513 - 59641: Prepared XA transaction in system after hard crash
causes future shutdown hang

InnoDB would hang on shutdown if any XA transactions exist in the
system in the PREPARED state. This has been masked by the fact that
MySQL would roll back any PREPARED transaction on shutdown, in the
spirit of Bug #12161 Xa recovery and client disconnection.

[mysql-test-run] do_shutdown_server: Interpret --shutdown_server 0 as
a request to kill the server immediately without initiating a
shutdown procedure.

xid_cache_insert(): Initialize XID_STATE::rm_error in order to avoid a
bogus error message on XA ROLLBACK of a recovered PREPARED transaction.

innobase_commit_by_xid(), innobase_rollback_by_xid(): Free the InnoDB
transaction object after rolling back a PREPARED transaction.

trx_get_trx_by_xid(): Only consider transactions whose
trx->is_prepared flag is set. The MySQL layer seems to prevent
attempts to roll back connected transactions that are in the PREPARED
state from another connection, but it is better to play it safe. The
is_prepared flag was introduced in the InnoDB Plugin.

trx_n_prepared: A new counter, counting the number of InnoDB
transactions in the PREPARED state.

logs_empty_and_mark_files_at_shutdown(): On shutdown, allow
trx_n_prepared transactions to exist in the system.

trx_undo_free_prepared(), trx_free_prepared(): New functions, to free
the memory objects of PREPARED transactions on shutdown. This is not
needed in the built-in InnoDB, because it would collect all allocated
memory on shutdown. The InnoDB Plugin needs this because of
innodb_use_sys_malloc.

trx_sys_close(): Invoke trx_free_prepared() on all remaining
transactions.
2011-04-07 21:12:54 +03:00
c68a034e83 BUG#12371924. Fxi test case 2011-04-25 23:49:56 +04:00
c43f804c37 merge 2011-04-26 11:35:17 +02:00
cd44be1a43 autocommit 5.1->5.5 2011-04-26 00:01:11 +04:00
acedd7a4a5 Load the innodb plugin instead of builtin in innodb_plugin.innodb_bug59410
Spotted by:	Marko
2011-04-06 14:38:24 +03:00
89eb32c5c3 merge from 5.5 main 2011-04-05 15:04:05 +02:00
abbdd3b643 Merge mysql-5.1-innodb -> mysql-5.5-innodb 2011-04-05 11:30:38 +03:00
b93cc42623 Add the testcase for Bug#59410 to 5.1/InnoDB Plugin
Bug#59410 read uncommitted: unlock row could not find a 3 mode lock
on the record

This bug is present only in 5.6 but I am adding the test case to earlier
versions to ensure it never appears in earlier versions too.
2011-04-05 11:20:20 +03:00
402217544e Add the testcase for Bug#59410 to 5.1/builtin
Bug#59410 read uncommitted: unlock row could not find a 3 mode lock
on the record

This bug is present only in 5.6 but I am adding the test case to earlier
versions to ensure it never appears in earlier versions too.
2011-04-05 11:08:36 +03:00
7dcb8a0106 Merge mysql-5.5-innodb -> mysql-5.5 2011-04-04 09:12:11 +03:00
772b7e89a7 merge from 5.5 main 2011-03-31 12:09:03 +02:00
237d4f8fc7 merge from 5.1 main 2011-03-31 11:22:54 +02:00
a93d530645 Small followup fix after MTR warning cleanup 2011-03-31 10:37:15 +02:00
997eb49e49 Small followup fix after MTR warning cleanup 2011-03-31 10:33:07 +02:00
89d96e3de9 mtr: cleaned up some superfluos global warning suppressions 2011-03-30 14:55:53 +02:00
4c1eb0c171 mtr: cleaned up some superfluos global warning suppressions 2011-03-30 14:33:53 +02:00
25a9c56d67 Fixing test case that is sporadically failing. 2011-03-25 15:28:11 +00:00
5af973582d merge 2011-03-25 14:57:25 +02:00
1dd519e469 merge 2011-03-25 14:57:18 +02:00
0d01bcca9d Merged bug #11766769 to 5.5.
Added back the specific warning number.
2011-03-25 14:55:22 +02:00
9b505d0237 BUG#11766865: Automerged mysql-5.1 into mysql-5.5. 2011-03-25 12:13:17 +00:00
dcf6b68d08 Bug #11766769: 59959: SMALL VALUES OF --MAX-ALLOWED-PACKET
ARE NOT BEING HONORED

max_allowed_packet works in conjunction with net_buffer_length.
max_allowed_packet is an upper bound of net_buffer_length.
So it doesn't make sense to set the upper limit lower than the value.
Added a warning (using ER_UNKNOWN_ERRROR and a specific message)
when this is done (in the log at startup and when setting either 
max_allowed_packet or the net_buffer_length variables)
Added a test case.
Fixed several tests that broke the above rule.
2011-03-25 12:57:27 +02:00
11ca6e2ca4 BUG#11765446 (BUG#58416)
Removing the test case from mysql-5.5 list of disabled
test cases for the binlog suite. Actually, the test does
not exist in mysql-5.5, thus this is just a clean up.
2011-03-24 14:39:45 +00:00
5c5dd61a9e BUG#11765446 (BUG#58416)
Original patch did not remove the test case from the list
of disabled test cases. Removing it now!
2011-03-24 14:37:12 +00:00
f24b6702e9 Automerging bzr bundle attached to bug report into latest mysql-5.1. 2011-03-24 10:58:48 +00:00
b489c89f73 BUG#11766865: 60091: RBR + NO PK + UPDATE NULL VALUE --> SLAVE BREAK WITH ERROR HA_ERR_END_OF_
The slave was not able to find the correct row in the innodb
table, because the row fetched from the innodb table would not
match the before image. This happened because the (don't care)
bytes in the NULLed fields would change once the row was stored
in the storage engine (from zero to the default value). This
would make bulk memory comparison (using memcmp) to fail.
  
We fix this by taking a preventing measure and avoiding memcmp
for tables that contain nullable fields. Therefore, we protect
the slave search routine from engines that return arbitrary
values for don't care bytes (in the nulled fields). Instead, the
slave thread will only check null_bits and those fields that are
not set to NULL when comparing the before image against the
storage engine row.

mysql-test/extra/rpl_tests/rpl_record_compare.test:
  Added test case to the include file so that this is tested 
  with more than one engine.
mysql-test/suite/rpl/r/rpl_row_rec_comp_innodb.result:
  Result update.
mysql-test/suite/rpl/r/rpl_row_rec_comp_myisam.result:
  Result update.
mysql-test/suite/rpl/t/rpl_row_rec_comp_myisam.test:
  Moved the include file last, so that the result from
  BUG#11766865 is not intermixed with the result for
  BUG#11760454.
sql/log_event.cc:
  Skips memory comparison if the table has nullable 
  columns and compares only non-nulled fields in the
  field comparison loop.
2011-03-24 10:52:40 +00:00
139844ccef merge from 5.5 main 2011-03-22 15:40:25 +01:00
761ba8349d merge from 5.1 main 2011-03-22 15:38:41 +01:00
c212442baa Bug#11766500 - 59624: FUNCS_1 SUITE TESTS FAILING WITH RESULT DIFFERENCE WHEN RUN USING EMBEDDED MODE
Updating result file for embedded mode tests due to recent changes
2011-03-22 10:02:51 +05:30
dd0823cc03 Bug # 11766011: mysql.user.authentication_string column causes
configuration wizard to fail

Made the fields mysql.user.plugin and mysql.user.authentication_string
nullable to conform with some older clients doing inserts instead of 
using the commands.
2011-03-18 16:16:17 +02:00
12d9d4963f up-merge 5.1 --> 5.5
+
Bug#11766500 - 59624: FUNCS_1 SUITE TESTS FAILING WITH RESULT DIFFERENCE WHEN RUN USING EMBEDDED MODE
      
Updating result files for embedded mode
2011-03-18 16:44:42 +05:30
8eae8e8d62 Bug#11766500 - 59624: FUNCS_1 SUITE TESTS FAILING WITH RESULT DIFFERENCE WHEN RUN USING EMBEDDED MODE
Updating result files
2011-03-18 16:35:57 +05:30
1957bd6627 merge mysql-5.5 (local) --> mysql-5.5 2011-03-17 12:12:25 +00:00
72fe4deccb BUG#11877618: rpl_slave_net_timeout fails in rpl_sync.inc (at sync_slave_with_master)
Problem: the test had not been updated after BUG#49978 was pushed
Fix: add 'set $rpl_only_running_threads= 1' to the end of the test
and update the result file.
Also, use include/assert.inc for an assertion (instead of relying
on result file comparison).
Also, move 'set @@global.slave_net_timeout' forwards, to get rid
of a warning.


mysql-test/suite/large_tests/r/rpl_slave_net_timeout.result:
  updated result file
mysql-test/suite/large_tests/t/rpl_slave_net_timeout.test:
   - Got rid of warning "The requested value for the heartbeat period
     exceeds the value of `slave_net_timeout' seconds. A sensible
     value for the period should be less than the timeout." by
     changing order of "set slave_net_timeout" and
     "change master to master_heartbeat_period".
   - replaced result file comparison by include/assert.inc
   - added "let $rpl_only_running_threads= 1"
2011-03-17 11:31:42 +01:00
967beb46a6 BUG#11877568 - RPL_SEMI_SYNC FAILS IN PB
Currently, rpl_semi_sync is failing in PB due to the warning message:

  "Slave SQL: slave SQL thread is being stopped in the middle of "
  "applying of a group having updated a non-transaction table; "
  "waiting for the group completion ..."

The problem started happening after the fix for BUG#11762407 what was
automatically suppressing some warning messages.

To fix the current issue, we suppress the aforementioned warning message
and exploit the opportunity to make the sentence clearer.
2011-03-16 16:38:30 +00:00
99a8398f42 Fix for BUG#11868903 (BUG#59717).
Automerge: mysql-5.1 --> mysql-5.5
2011-03-16 15:16:41 +00:00
6041d9c886 Fix for BUG#11868903 (BUG#59717)
There is a race between two threads: user thread and the dump
thread. The former sets a debug instruction that makes the latter wait
before processing an Xid event. There can be cases that the dump
thread has not yet processed the previous Xid event, causing it to
wait one Xid event too soon, thus causing sync_slave_with_master never
to resume.
      
We fix this by moving the instructions that set the debug variable
after calling sync_slave_with_master.
2011-03-16 15:11:54 +00:00
753c406994 Merge from mysql-5.5.10-release 2011-03-16 15:11:20 +01:00
9cb096ac98 BUG#11872422: rpl_slave_load_remove_tmpfile fails sporadically in pb2
Problem: the test failed because errors were found in the error log.
The test case contains suppressions for an old version of the error message,
but the format of the error message has changed without updating the suppression.
Fix: Update the suppression. Also small fixes to improve the test.


mysql-test/suite/rpl/r/rpl_slave_load_remove_tmpfile.result:
  update result file
mysql-test/suite/rpl/t/rpl_slave_load_remove_tmpfile-slave.opt:
  Use variables instead of .opt files to avoid server restarts.
mysql-test/suite/rpl/t/rpl_slave_load_remove_tmpfile.test:
  1. To fix the bug, we update the regular expression in mtr.add_suppression
     so that it matches the real error text.
  2. Use wait_for_slave_sql_error.inc when we wait for an error.
     This makes the test easier to understand and will produce better
     debug info if the test fails.
  3. Use server variables instead of command line options to set
     the @@GLOBAL.DEBUG variable. This avoids server restarts when
     running the test suite.
  4. Clarify the comment at the top of the file and add bug reference.
2011-03-15 16:12:41 +01:00
160a26dafe upmerge 11762804 2011-03-15 16:11:17 +01:00
ebba068d26 Bug #11762804 55442: MYSQLD DEBUG CRASHES WHILE RUNNING MYISAM_CRASH_BEFORE_FLUSH_KEYS.TEST
This will cause affected tests to skip if CrashReporter would popup
Found 5 tests that needed modification
2011-03-15 16:06:59 +01:00
feb6d22328 Manual merge from mysql-5.1 for Bug#11764168 (56976: Severe denial
of service in prepared statements).

sql/sql_prepare.cc:
  At mysql_stmt_get_longdata(): instead of pushing an internal
  error handler (as done in 5.1-tree) we save, set and restore
  the statement's diagnostics area and warning info.
2011-03-15 18:57:36 +06:00
f94e7288e3 Bug #11765416 (former 58381)
FAILED DROP DATABASE CAN BREAK STATEMENT BASED REPLICATION

The first phase of DROP DATABASE is to delete the tables in the database.
If deletion of one or more of the tables fail (e.g. due to a FOREIGN KEY
constraint), DROP DATABASE will be aborted. However, some tables could
still have been deleted. The problem was that nothing would be written
to the binary log in this case, so any slaves would not delete these tables.
Therefore the master and the slaves would get out of sync.

This patch fixes the problem by making sure that DROP TABLE is written
to the binary log for the tables that were in fact deleted by the failed
DROP DATABASE statement.

Test case added to binlog.binlog_database.test.
2011-03-15 11:49:14 +01:00
dd14e37661 Add warning suppression to test rpl.rpl_slave_load_remove_tmpfile 2011-03-15 10:58:54 +01:00
178bacbb3f BUG#59752 : mysql.user.plugin length (60) vs. mysql.plugin.name length (64)
This patch corrects the problem by fixing the definition and alterations
of the mysql.user table in the .sql files.

Also included are new result files for tests that examine the name 
column of the mysql.user table.
2011-03-11 10:15:57 -05:00
7fa456dae8 merge from 5.5-mtr 2011-03-11 12:51:51 +01:00
258e3bfc30 Test cleanup 2011-03-11 11:45:16 +01:00
268aa888b4 merge from 5.5 main 2011-03-11 10:12:58 +01:00
782b44bc7f merge from 5.1 main 2011-03-11 10:07:34 +01:00