Commit graph

60099 commits

Author SHA1 Message Date
Luis Soares
26b12adb5d Makes slave_type_conversions_basic to be skipped in embedded
run in PB2 as it ought to be. Otherwise test will fail because
variable is no recognized:

1193: Unknown system variable 'slave_type_conversions'
2010-01-13 08:29:23 +00:00
Luis Soares
5f42365a93 Fixes two remaining test failures:
- mysqld--help-win
    Updated result so that it contains missing
    value for slave-type-conversions

  - rpl_idempotency
    This seems a bad merge. In BUG#39934, the contents of
    this file had been split into rpl_row_idempontency and
    rpl_idempotency. The patch was pushed to 5.1-rep+3 which
    was later merged in rep+2-delivery1 which in turn was
    merged in 5.1-rpl-merge. Now while merging next-mr in
    5.1-rpl-merge, the file got back it's old content (which
    is in rpl_row_idempotency now because of BUG#39934). This
    cset reverts the bad merge:

    bzr merge -r revid:dao-gang.qu@sun.com-20100112120709-ioxp11yl9bvquaqd..\
    before:revid:dao-gang.qu@sun.com-20100112120709-ioxp11yl9bvquaqd\
    suite/rpl/t/rpl_idempotency.test
2010-01-13 00:23:07 +00:00
Luis Soares
9d89069d64 Fixes one more failure in gcov run:
- sys_vars.rpl_init_slave_func
    Added suppression for the unsafe warning.
2010-01-12 23:22:34 +00:00
Luis Soares
ca15e2779f Fixes for three test failures:
- sys_vars.all_vars:
   Added test case for slave_type_conversions variable
 - rpl_row_idempotency
   Removed ER_SLAVE_AMBIGOUS_EXEC_MODE (which was removed by WL 4738)
   from the test case. Using ER_WRONG_VALUE_FOR_VAR instead.
 - mysqld--help-win
   Added missing help for --slave-type-conversions from the
   result file.
2010-01-12 17:52:02 +00:00
unknown
802ba52bc5 Auto merge. 2010-01-12 20:13:45 +08:00
unknown
16e15e6952 Manual merge from next-mr. 2010-01-12 20:07:09 +08:00
Luis Soares
7f41473320 Fixes rpl_stm_loaddata_concurrent failure in PB2.
The test case did not start with fresh binlogs, so in some
cases, dependending on the order MTR runs the tests, it would
try to show binlog contents from invalid positions (binary log
would contain unexpected events from previous test).

We fix this by deploying a RESET MASTER at the beginning of the
test case.
2010-01-08 15:56:26 +00:00
Alfranio Correia
4b67a11d2b merge mysql-5.1-rep+2-delivery1 --> mysql-5.1-rpl-merge 2010-01-07 17:39:01 +00:00
Alfranio Correia
5dcb0e447f merge mysql-5.1-rep+2-delivery1 --> mysql-5.1-rpl-merge
Conflicts:

Text conflict in .bzr-mysql/default.conf
Text conflict in mysql-test/extra/rpl_tests/rpl_loaddata.test
Text conflict in mysql-test/r/mysqlbinlog2.result
Text conflict in mysql-test/suite/binlog/r/binlog_stm_mix_innodb_myisam.result
Text conflict in mysql-test/suite/binlog/r/binlog_unsafe.result
Text conflict in mysql-test/suite/rpl/r/rpl_insert_id.result
Text conflict in mysql-test/suite/rpl/r/rpl_loaddata.result
Text conflict in mysql-test/suite/rpl/r/rpl_stm_auto_increment_bug33029.result
Text conflict in mysql-test/suite/rpl/r/rpl_udf.result
Text conflict in mysql-test/suite/rpl/t/rpl_slow_query_log.test
Text conflict in sql/field.h
Text conflict in sql/log.cc
Text conflict in sql/log_event.cc
Text conflict in sql/log_event_old.cc
Text conflict in sql/mysql_priv.h
Text conflict in sql/share/errmsg.txt
Text conflict in sql/sp.cc
Text conflict in sql/sql_acl.cc
Text conflict in sql/sql_base.cc
Text conflict in sql/sql_class.h
Text conflict in sql/sql_db.cc
Text conflict in sql/sql_delete.cc
Text conflict in sql/sql_insert.cc
Text conflict in sql/sql_lex.cc
Text conflict in sql/sql_lex.h
Text conflict in sql/sql_load.cc
Text conflict in sql/sql_table.cc
Text conflict in sql/sql_update.cc
Text conflict in sql/sql_view.cc
Conflict adding files to storage/innobase.  Created directory.
Conflict because storage/innobase is not versioned, but has versioned children.  Versioned directory.
Conflict adding file storage/innobase.  Moved existing file to storage/innobase.moved.
Conflict adding files to storage/innobase/handler.  Created directory.
Conflict because storage/innobase/handler is not versioned, but has versioned children.  Versioned directory.
Contents conflict in storage/innobase/handler/ha_innodb.cc
2010-01-07 15:39:11 +00:00
Luis Soares
a533cec71b Fix for rpl_bug31076 valgrind failure which popped up after
WL#5151 was pushed.

Problem 1: Some old binlog events do not contain metadata. This
makes checking whether the field can be converted or not rather
impossible because one cannot compare, for instance, field sizes
from original table and target table.

Solution 1: When an event does not contain metadata, we will just
check if field types are equal and assume that original field
definition matched with the one in the target table.

Problem 2: There is a second fix, which involves lack of
information regarding maybe_null. This was causing a conditional
jump warning when creating a conversion table. 

Solution 2: We will just assume that all fields that need to be
in the conversion table may be null.
2010-01-07 01:04:38 +00:00
Alexander Nozdrin
3701208a2e Change version tag (to 5.5.99-m3). 2010-01-06 13:02:42 +03:00
Alfranio Correia
9e2c9cd2c0 merge 5.1-rep+3 --> 5.1-rep+2-delivery1 2010-01-05 17:35:33 +00:00
Alfranio Correia
54b2371e92 BUG#50038 Deadlock on flush logs with concurrent DML and RBR
In auto-commit mode, updating both trx and non-trx tables (i.e. issuing a mixed
statement) causes the following sequence of events:

1 - "Flush trx changes" (MYSQL_BIN_LOG::write) - T1:
  1.1 - mutex_lock (&LOCK_log)
  1.2 - mutex_lock (&LOCK_prep_xids)
  1.3 - increase prepared_xids
  1.4 - mutex_unlock (&LOCK_prep_xids)
  1.5 - mutex_unlock (&LOCK_log)

2 - "Flush non-trx changes" (MYSQL_BIN_LOG::write) - T1:
  2.1 - mutex_lock (&LOCK_log)
  2.2 - mutex_unlock (&LOCK_log)

3. "unlog" - T1
  3.1 - mutex_lock (&LOCK_prep_xids)
  3.2 - decrease prepared xids
  3.3 - pthread_cond_signal(&COND_prep_xids);
  3.4 - mutex_unlock (&LOCK_prep_xids)

The "FLUSH logs" command produces the following sequence of events:

1 - "FLUSH logs" command (MYSQL_BIN_LOG::new_file_impl) - user thread:
  1.1 - mutex_lock (&LOCK_log)
  1.2 - mutex_lock (&LOCK_prep_xids)
  1.3 - while (prepared_xids)  pthread_cond_wait(..., &LOCK_prep_xids);
  1.4 - mutex_unlock (&LOCK_prep_xids)
  1.5 - mutex_unlock (&LOCK_log)

A deadlock will arise if T1 flushes the trx changes and thus increases
prepared_xids but before it is able to continue the execution and flush the
non-trx changes, an user thread calls the "FLUSH logs" command and wait that
the prepared_xids is decreased and gets to zero. However, T1 cannot proceed
with the call to "Flush non-trx changes" because it will block in the mutex
"LOCK_log" and by consequence cannot complete the execution and call the
unlog to decrease the prepared_xids.

To fix the problem, we ensure that the non-trx changes are always flushed
before the trx changes.

Note that if you call "Flush non-trx changes" and a concurrent "FLUSH logs" is
issued, the "Flush non-trx changes" may block, but a deadlock will never happen
because the prepared_xids will eventually get to zero. Bottom line, there will
not be any transaction able to increase the prepared_xids because they will
block in the mutex "LOCK_log" (MYSQL_BIN_LOG::write) and those that increased
the prepared_xids will eventually commit and decrease the prepared_xids.
2010-01-05 16:55:23 +00:00
Alexander Nozdrin
8e1dc83c42 Auto-merge from mysql-next-mr-serg. 2010-01-04 12:34:59 +03:00
Sergei Golubchik
c3ea71896c possible fix for sporadic sys_vars.delayed_insert_limit_func failures 2009-12-31 14:05:33 +01:00
Alexey Kopytov
6c716007d1 Manual merge of WL#4738 from mysql-next-mr:
- backported code that handles %f/%g arguments in 
my_vsnprintf.c from 6.0 
- backported %f/%g tests in unittest/mysys/my_vsnprintf-t.c 
from 6.0 
- replaced snprintf("%g") in sql/set_var.cc with my_gcvt() 
- removed unnecessary "--replace-result"s for Windows in 
mysql-test/suite/sys_vars/t/long_query_time_basic.test 
- some test results adjustments
2009-12-28 15:54:16 +03:00
Alfranio Correia
f4b6e8986a merge mysql-5.1-rep+2 --> mysql-5.1-rep+2-delivery1 2009-12-28 00:06:12 +00:00
Alfranio Correia
1b4541681a merging from 5.1 to rep+2 starting at gca(5.1, next-mr) == ramil@mysql.com-20091215170821-eexh9rqrnw1ruzh2 2009-12-27 23:47:04 +00:00
Sergei Golubchik
e7441f0b60 my_once.c: clarify the comment 2009-12-26 21:55:32 +01:00
Sergei Golubchik
9c22d1ecfa don't show the value of open_files_limit 2009-12-26 09:35:42 +01:00
Sergei Golubchik
bd05ac9a6b don't show --ssl* option if ssl is not compiled in 2009-12-25 22:36:59 +01:00
Alexander Nozdrin
c3eabe01fc Auto-merge from mysql-next-mr. 2009-12-25 16:22:25 +03:00
Alexey Kopytov
387cb3c99b Automerge. 2009-12-25 00:09:18 +03:00
Alexey Kopytov
ac6b2605ff Addendum to the backport patch for WL#2934:
Unlike other platforms --mfpmath=sse is the default 
gcc mode on Mac OS X Intel. So it is unnecessary
to switch FPU to double precision mode (in fact,
it even breaks some math library functions).
2009-12-25 00:06:53 +03:00
Sergei Golubchik
56deea0dd7 merged 2009-12-24 21:18:53 +01:00
Luis Soares
c5f7044d1a Valgrind warnings that have poped up ever since WL#5151 was pushed.
This fixes two more warnings for tests: 
  - rpl_row_colSize
  - rpl_typeconv
2009-12-24 15:55:46 +00:00
Alfranio Correia
e284f50681 merge mysql-next-mr --> mysql-5.1-rpl-merge 2009-12-24 11:51:30 +00:00
Sergei Golubchik
025d86a60a slightly more complete mysqld--help test 2009-12-24 12:30:23 +01:00
Alexander Nozdrin
10eab6ccb0 Manual merge from mysql-trunk.
Conflicts:
  - storage/myisam/mi_static.c
2009-12-24 10:12:07 +03:00
Alexander Nozdrin
0b74a91126 Postfix for Bug#37408 (fix for Bug#49898). 2009-12-24 10:10:05 +03:00
Luis Soares
dcf8e11536 BUG#49836: Replication of geometric fields is broken after WL#5151
Metadata for geometric fields was not being properly stored by
the slave in its the table definition. This happened because
MYSQL_TYPE_GEOMETRY was not included in the 'switch... case' that
handles field metadata according to the field type. Therefore, it
would default to 0, leading to always have a mismatch between
master's field and slave fields'. 

We fix this by deploying the missing 'case MYSQL_TYPE_GEOMETRY:'.

mysql-test/extra/rpl_tests/type_conversions.test:
  Added some tests for blob fields and also the particular
  case for replicating from/into BLOB into/from GEOMETRY.
sql/field.h:
  As requested by Mats, reverted function added by him in
  changeset:
  http://lists.mysql.com/commits/95313
2009-12-24 01:07:35 +00:00
Sergei Golubchik
5b9ed28575 backport typos found 2009-12-23 17:51:03 +01:00
Alexander Nozdrin
4a489a2592 Merge default.conf from mysql-trunk. 2009-12-23 15:10:25 +03:00
Alexander Nozdrin
5be5b55ff4 Fix default.conf. 2009-12-23 15:09:31 +03:00
Alexander Nozdrin
d6cc32a047 Auto-merge (empty) from mysql-trunk-bugfixing. 2009-12-23 15:06:10 +03:00
Sergei Golubchik
b188b1bfcc fixed "engine not found" error in open_binary_frm
corrected rotten test
2009-12-23 13:06:03 +01:00
Alexey Kopytov
924e048e98 Fixed test failures from the 'parts' suite introduced by
backporting WL#2934.
2009-12-23 15:04:32 +03:00
Alexander Nozdrin
ba60b39ca3 Backporting fix for Bug#49834 from mysql-next-mr-bugfixing
into mysql-trunk-bugfixing.

Original revision:
------------------------------------------------------------
revision-id: vvaintroub@mysql.com-20091222115311-bam0xorumd8gvjyo
parent: mattias.jonsson@sun.com-20091221104426-x2e6c93x8iik4fo0
committer: Vladislav Vaintroub <vvaintroub@mysql.com>
branch nick: mysql-next-mr-bugfixing
timestamp: Tue 2009-12-22 12:53:11 +0100
message:
  Bug#49834 - fixed a bug introduced by mismerge.
  restore original innobase version
------------------------------------------------------------
2009-12-23 15:03:51 +03:00
Alfranio Correia
3543244a12 merge mysql-5.1-rep+2 --> mysql-5.1-rep+2-delivery1 2009-12-23 12:02:57 +00:00
Alfranio Correia
2a765c87e6 merge mysql-5.1-rep+3 --> mysql-5.1-rep+2-delivery1 2009-12-23 11:52:03 +00:00
Alexander Nozdrin
cb8b607187 Auto-merge from mysql-trunk-bugfixing. 2009-12-23 13:43:52 +03:00
unknown
f87816b450 Bug #47863 binlog_format should be writable only at transaction boundaries
When @@session.binlog_format is modified inside a transaction,
it can cause slave to go out of sync.
      
To fix the problem, make the session variable 'binlog_format' 
read-only inside a transaction.


mysql-test/suite/binlog/r/binlog_format_switch_inside_trans.result:
  Test result for bug#47863.
mysql-test/suite/binlog/t/binlog_format_switch_inside_trans.test:
  Added test file to verify if the session variable 'binlog_format' 
  is read-only inside a transaction and in sub-statements.
sql/set_var.cc:
  Added code to make the session variable 'binlog_format'
  read-only inside a transaction.
2009-12-23 18:43:45 +08:00
Alexander Nozdrin
8cdcb078d3 Auto-merge from mysql-next-mr. 2009-12-23 13:42:03 +03:00
Alexander Nozdrin
a987a27dc7 Auto-merge from mysql-trunk. 2009-12-23 13:41:55 +03:00
Sergei Golubchik
3bfb8797d0 fix atomic/solaris.h to conform
remove duplicated boilerplate code
2009-12-23 09:27:41 +01:00
Alexey Kopytov
b8db5f5c74 Fixed more PB2 test failures introduced by backporting WL#2934. 2009-12-23 08:52:18 +03:00
Vladislav Vaintroub
f415cd2911 merge 2009-12-22 22:05:04 +01:00
Alexey Kopytov
c9855862f7 Fixed more PB2 test failures introduced by backporting WL#2934. 2009-12-22 23:55:56 +03:00
Vladislav Vaintroub
dcdaa8f4fc Fix build error with CMake 2.8 (mysql_stmt_next_result not exported
by shared embedded library)
2009-12-22 21:49:37 +01:00
Alexey Kopytov
4f3e6f7a6a Fixed a Windows build failure 2009-12-22 21:10:31 +03:00