1
0
mirror of https://github.com/MariaDB/server.git synced 2025-12-19 22:42:44 +03:00
Commit Graph

26980 Commits

Author SHA1 Message Date
Vladislav Vaintroub
ebc6b1d370 merge 2010-01-22 12:50:33 +01:00
Sergey Vojtovich
4c7ea1259b Disabled innodb-autoinc-44030 due to BUG#47621. 2010-01-22 14:20:08 +04:00
Sergey Vojtovich
8eac0062dd Applying InnoDB snapshot
Detailed revision comments:

r6492 | sunny | 2010-01-21 09:38:35 +0200 (Thu, 21 Jan 2010) | 1 line
branches/5.1: Add reference to bug#47621 in the comment.
2010-01-22 14:03:52 +04:00
Sergey Vojtovich
09c8443871 Applying InnoDB snapshot
Detailed revision comments:

r6489 | sunny | 2010-01-21 02:57:50 +0200 (Thu, 21 Jan 2010) | 2 lines
branches/5.1: Factor out test for bug#44030 from innodb-autoinc.test
into a separate test/result files.
2010-01-22 14:03:18 +04:00
Sergey Vojtovich
6f2fd9e5fd Applying InnoDB snapshot
Detailed revision comments:

r6488 | sunny | 2010-01-21 02:55:08 +0200 (Thu, 21 Jan 2010) | 2 lines
branches/5.1: Factor out test for bug#44030 from innodb-autoinc.test
into a separate test/result files.
2010-01-22 14:02:17 +04:00
25a436bdc4 Bug #49132 Replication failure on temporary table + DDL
In RBR, DDL statement will change binlog format to non row-based
format before it is binlogged, but the binlog format was not be
restored, and then manipulating a temporary table can not reset binlog
format to row-based format rightly. So that the manipulated statement
is binlogged with statement-based format.

To fix the problem, restore the state of binlog format after the DDL
statement is binlogged.
2010-01-22 17:38:21 +08:00
Magne Mahre
dc4e8890c9 Post-commit fix of two tests
The WL#5154 commit added a couple of warning messages that
was not fixed in the result files for two RPL tests.
2010-01-22 10:37:44 +01:00
Sergey Vojtovich
9da56d3b09 Merge backport of WL#3771 with mysql-next-mr. 2010-01-22 12:37:51 +04:00
Alexander Nozdrin
5b511a1ab8 Auto-merge from mysql-next-mr. 2010-01-22 11:20:13 +03:00
Alexander Nozdrin
e8024e7b63 Auto-merge from mysql-next-mr. 2010-01-22 11:20:05 +03:00
Vladislav Vaintroub
f895fb6060 cherrypick a followup fix from marc 2010-01-22 02:21:54 +01:00
Marc Alff
a47998cccc Fixed merge problem (naming of CRYPTO_dynlock_value::lock in the tests) 2010-01-21 17:57:57 -07:00
Dmitry Lenev
a63f8480db Patch that changes metadata locking subsystem to use mutex per lock and
condition variable per context instead of one mutex and one conditional
variable for the whole subsystem.

This should increase concurrency in this subsystem.

It also opens the way for further changes which are necessary to solve
such bugs as bug #46272 "MySQL 5.4.4, new MDL: unnecessary deadlock"
and bug #37346 "innodb does not detect deadlock between update and alter
table".

Two other notable changes done by this patch:

- MDL subsystem no longer implicitly acquires global intention exclusive
  metadata lock when per-object metadata lock is acquired. Now this has
  to be done by explicit calls outside of MDL subsystem.
- Instead of using separate MDL_context for opening system tables/tables
  for purposes of I_S we now create MDL savepoint in the main context
  before opening tables and rollback to this savepoint after closing
  them. This means that it is now possible to get ER_LOCK_DEADLOCK error
  even not inside a transaction. This might happen in unlikely case when
  one runs DDL on one of system tables while also running DDL on some
  other tables. Cases when this ER_LOCK_DEADLOCK error is not justified
  will be addressed by advanced deadlock detector for MDL subsystem which
  we plan to implement.
2010-01-21 23:43:03 +03:00
Marc Alff
cc8caa7d9e Bug#50513 Build failure with ifdef HAVE_OPENSSL + ifndef HAVE_YASSL
When compiling wiht ./configure --with-ssl=/usr,
which used OPEN_SSL but not YASSL, the code in sql/mysqld.cc
failed to build because of an incomplete performance schema instrumentation.

This fix implements properly the instrumentation for the rwlock
used in openssl_lock_t.

Verified that the code builds, and the ssl + performance schema tests
do pass.
2010-01-21 11:06:03 -07:00
Luis Soares
04ac86e366 BUG#49481: RBR: MyISAM and bit fields may cause slave to stop on delete:
cant find record

Some engines return data for the record. Despite the fact that
the null bit is set for some fields, their old value may still in
the row. This can happen when unpacking an AI from the binlog on
top of a previous record in which a field is set to NULL, which
previously contained a value. Ultimately, this may cause the
comparison of records to fail when the slave is doing an index or
range scan.

We fix this by deploying a call to reset() for each field that is
set to null while unpacking a row from the binary log.
Furthermore, we also add mixed mode test case to cover the
scenario where updating and setting a field to null through a
Query event and later searching it through a rows event will
succeed.

Finally, we also change the reset() method, from Field_bit class,
so that it takes into account bits stored among the null bits and
not only the ones stored in the record.
2010-01-21 17:20:24 +00:00
Georgi Kodinov
2c44919bdc Bug #50276: Security flaw in INFORMATION_SCHEMA.TABLES
check_access() returning false for a database does not
guarantee that the access is granted to it.
This wrong condition in filling the INFORMATION_SCHEMA
tables causes extra tables to be returned to the user
even if he has no rights to see them.
Fixed by correcting the condition.
2010-01-21 17:14:10 +02:00
Alfranio Correia
12318ab2a3 BUG#50397 rpl.rpl_heartbeat_basic fails in mysql-trunk-merge
Resetting the master before stopping the slave was generating the message
"[ERROR] Slave I/O: Got fatal error 1236 from master when reading data from
binary log: 'could not find next log', Error_code: 1236". In consequence,
the test case was failing because the message had not been suppressed.

To circumvent the failure, we rewrote the test stopping the slave before
resetting the master. We prefer this alternative rather than suppressing
the message.
2010-01-21 14:16:12 +00:00
Alfranio Correia
8da3fea266 BUG#46364 MyISAM transbuffer problems (NTM problem)
It is well-known that due to concurrency issues, a slave can become
inconsistent when a transaction contains updates to both transaction and
non-transactional tables.
                    
In a nutshell, the current code-base tries to preserve causality among the
statements by writing non-transactional statements to the txn-cache which
is flushed upon commit. However, modifications done to non-transactional
tables on behalf of a transaction become immediately visible to other
connections but may not immediately get into the binary log and therefore
consistency may be broken.
            
In general, it is impossible to automatically detect causality/dependency
among statements by just analyzing the statements sent to the server. This
happen because dependency may be hidden in the application code and it is
necessary to know a priori all the statements processed in the context of
a transaction such as in a procedure. Moreover, even for the few cases that
we could automatically address in the server, the computation effort
required could make the approach infeasible.
            
So, in this patch we introduce the option
      - "--binlog-direct-non-transactional-updates" that can be used to bypass
      the current behavior in order to write directly to binary log statements
      that change non-transactional tables.

Besides, it is used to enable the WL#2687 which is disabled by default.
2010-01-21 13:10:34 +00:00
Vladislav Vaintroub
f945be03d3 Cherrypick fix for -DWITH_SSL=system by Marc Alff (Bug#50513) 2010-01-21 19:41:01 +01:00
Alexander Nozdrin
b78e3a5d1e Auto-merge from mysql-next-mr. 2010-01-21 12:14:34 +03:00
Alexander Nozdrin
67ef5c58bc Auto-merge from mysql-next-mr. 2010-01-21 11:58:17 +03:00
Alexander Nozdrin
32d17f7daa Auto-merge from mysql-next-mr. 2010-01-21 11:39:14 +03:00
Magne Mahre
0482b6ebca WL#5154 Remove deprecated 4.1 features
Several items said to be deprecated in the 4.1 manual
have never been removed.  This worklog adds deprecation
warnings when these items are used, and warns the user 
that the items will be removed in MySQL 5.6.

A couple of previously deprecation decision have been
reversed (see single file comments)
2010-01-21 09:10:05 +01:00
sunny
3e04d74cac branches/5.1: Add reference to bug#47621 in the comment. 2010-01-21 07:38:35 +00:00
sunny
39305ef5f2 branches/5.1: Factor out test for bug#44030 from innodb-autoinc.test
into a separate test/result files.
2010-01-21 00:57:50 +00:00
sunny
3a4a945cb9 branches/5.1: Factor out test for bug#44030 from innodb-autoinc.test
into a separate test/result files.
2010-01-21 00:55:08 +00:00
Luis Soares
0c906be9a0 BUG#50474: rpl_slave_load_remove_tmpfile failed on windows debug
enabled binary

The test case injects an error in the server by deleting the
temporary file that it uses during the load data statement
execution. The error consisted of closing, deleting and setting
the file descriptor to -1 right before calling mysql_file_write.

Although, this error injection seems to work OK in Unix like
environments, in Windows, this would cause the server to hit an
assertion in 'my_get_open_flags':

  DBUG_ASSERT(fd >= MY_FILE_MIN && fd < (int)my_file_limit)

We fix this by changing the error injection to just call the
macro my_delete_allow_opened, instead of the close + delete + set
fd=-1. The macro deletes the file and is platform
independent. Additionally, this required some changes to how the
assertion is handled in the test case to make it cope with this
change.
2010-01-21 00:41:32 +00:00
Alexander Nozdrin
3da33f716d Fix manual merge error. 2010-01-20 23:22:43 +03:00
Alfranio Correia
0aa3aee0da BUG#46364 MyISAM transbuffer problems (NTM problem)
It is well-known that due to concurrency issues, a slave can become
inconsistent when a transaction contains updates to both transaction and
non-transactional tables in statement and mixed modes.

In a nutshell, the current code-base tries to preserve causality among the
statements by writing non-transactional statements to the txn-cache which
is flushed upon commit. However, modifications done to non-transactional
tables on behalf of a transaction become immediately visible to other
connections but may not immediately get into the binary log and therefore
consistency may be broken.

In general, it is impossible to automatically detect causality/dependency
among statements by just analyzing the statements sent to the server. This
happen because dependency may be hidden in the application code and it is
necessary to know a priori all the statements processed in the context of
a transaction such as in a procedure. Moreover, even for the few cases that
we could automatically address in the server, the computation effort
required could make the approach infeasible.

So, in this patch we introduce the option
    - "--binlog-direct-non-transactional-updates" that can be used to bypass
    the current behavior in order to write directly to binary log statements
    that change non-transactional tables.
2010-01-20 19:08:16 +00:00
Luis Soares
27828ba8e7 BUG#50473: rpl_sync fails on windows debug enabled binaries
The test case was failing because it contained instructions
to close/reopen files, when they were in use. This raises
problems in windows. Example of such instruction:

---exec echo "failure" > $MYSQLD_SLAVE_DATADIR/$file

The test also contains commands that are not platform 
agnostic. Example:

--exec cat $MYSQLD_SLAVE_DATADIR/master.backup > \
           $MYSQLD_SLAVE_DATADIR/master.info

We fix this by just truncating the necessary file and write
"failure" into it (ie, without closing the file). The
platform specific instruction is removed from the test
case as it seems redundant.
2010-01-20 18:39:29 +00:00
Bjorn Munch
8bce94ae3e upmerge 43005,48888,49837,49878,50471 2010-01-20 16:43:14 +01:00
Alexander Nozdrin
b561f9262e Mark several failing test cases experimental. 2010-01-20 18:25:29 +03:00
Bjorn Munch
8b046e600a upmerge 43005,48888,49837,49878,50471 2010-01-20 14:37:48 +01:00
Bjorn Munch
acc2b1ba6f merge 49837 2010-01-20 14:23:57 +01:00
Horst.Hunger
705174808c due to merge. 2010-01-20 14:22:49 +01:00
Bjorn Munch
21f728d94c merge 48888 2010-01-20 14:22:34 +01:00
Bjorn Munch
99d1d85daa merge 43005 2010-01-20 14:20:53 +01:00
Bjorn Munch
37dc5f082a Bug #49878 delimiter under false 'if' makes mysqltest test fail with 'Missing end of block'
delimiter not executed so does not recognize end of block
Always execute delimiter command, revert after false if() block.
2010-01-20 14:18:27 +01:00
Bjorn Munch
35d0d10ac2 Bug #48888 mysqltest crashes on --replace_result if 'from' is longer than ~1024 symbols
valgrind pointed to a buffer allocated by my_realloc which looked fishy
Replaced size with what was probably intended, added test case.
Now also fixed line after review comment
2010-01-20 12:52:35 +01:00
Bjorn Munch
128216d35b Bug #49837 mysqltest exec cannot handle multi-line command correctly
Since the exec command line is passed on externally, it cannot take newlines
Simply replace \n with space
Now also added test case
2010-01-20 12:51:18 +01:00
7a8ab5f4bc Auto Merge from 5.1-rep+2 2010-01-20 11:36:41 +08:00
Vladislav Vaintroub
7dc406fb13 Remove backslashes used as line continuation characters : makes scripts unusable under Windows. 2010-01-20 00:56:54 +01:00
Luis Soares
1c50342c4f Automerge: local bug branch --> mysql-5.1-rep+3 latest. 2010-01-19 23:18:37 +00:00
Luis Soares
ecb49f2c4e BUG#49562: SBR out of sync when using numeric data types + user
variable

Post-push fix: missing 'reset master' at the beginning of the 
test would cause show binlog events to output events from 
previous tests.
2010-01-19 23:16:22 +00:00
Sergey Vojtovich
ec59b40adc Merge backport of WL#3771 with mysql-next-mr. 2010-01-19 20:42:25 +04:00
Alexander Nozdrin
eacc937d48 Manual merge from mysql-trunk-merge.
Conflicts:
  - configure.in
  - include/m_string.h
  - mysql-test/extra/rpl_tests/rpl_row_func003.test
  - mysql-test/r/mysqlbinlog.result
  - mysql-test/r/union.result
  - mysql-test/suite/binlog/r/binlog_killed_simulate.result
  - mysql-test/suite/binlog/r/binlog_row_mix_innodb_myisam.result
  - mysql-test/suite/binlog/r/binlog_unsafe.result
  - mysql-test/suite/binlog/t/binlog_unsafe.test
  - mysql-test/suite/rpl/r/rpl_loaddata_fatal.result
  - mysql-test/suite/rpl/r/rpl_loaddata_map.result
  - mysql-test/suite/rpl/r/rpl_stm_loaddata_concurrent.result
  - mysql-test/suite/rpl/r/rpl_stm_log.result
  - mysql-test/suite/rpl/t/rpl_optimize.test
  - mysql-test/t/mysqlbinlog.test
  - mysql-test/t/union.test
  - sql/rpl_utility.h
  - sql/sql_union.cc
  - strings/Makefile.am
2010-01-19 19:36:14 +03:00
Kent Boortz
d8d4369a7e Added collections for the "test-bt" test targets 2010-01-19 17:14:25 +01:00
Luis Soares
cddae2445b automerge: local bug branch --> mysql-5.1-rep+3 latest. 2010-01-19 13:08:03 +00:00
Bjorn Munch
da1aab425b merge from next-mr 2010-01-19 13:35:23 +01:00
Mattias Jonsson
c26551e15d merge 2010-01-19 12:18:48 +01:00