1
0
mirror of https://github.com/MariaDB/server.git synced 2025-09-02 09:41:40 +03:00
Commit Graph

25713 Commits

Author SHA1 Message Date
Luis Soares
b9d94d2a09 automerge: mysql-5.1-bugteam branch --> mysql-5.1-bugteam latest
NOTE: added TODO to the comments requested by reviewer during this
      merge.
2010-01-26 08:55:22 +00:00
Marc Alff
e0c1fb5227 Bug#50436 perfschema.aggregate fails on HPUX in 6.0
Relaxed the test conditions to account for objects destroyed,
as was intended in the comments in mysql-test/suite/perfschema/t/aggregate.test
2010-01-25 21:53:04 -07:00
Marc Alff
d86d1221c0 Bug#50596 Spurious test failures in perfschema.dml_mutex_instances
Fixed the dml_mutex_instances and dml_rwlock_instances to be more reliable.
In particular, the tests may not assume a mutex or rwlock is never locked.
2010-01-25 20:12:20 -07:00
Alexander Nozdrin
f30223d9f5 Auto-merge from mysql-next-mr. 2010-01-25 19:48:45 +03:00
Alexander Nozdrin
e3dfbdfd3d Auto-merge from mysql-next-mr. 2010-01-25 19:16:45 +03:00
Alexander Nozdrin
9ba4d00763 Enable one test case for weekly builds. 2010-01-25 19:12:25 +03:00
Alexander Nozdrin
deb6ded14c Make sys_vars.delayed_insert_limit_func experimental due to Bug 50435. 2010-01-25 19:04:56 +03:00
Alexander Nozdrin
1164ca5f3f Auto-merge from mysql-next-mr. 2010-01-25 19:02:02 +03:00
Andrei Elkin
1c0056b3ba Bug #47142 "slave start until" stops 1 event too late in 4.1 to 5.0 replication
When replicating from 4.1 master to 5.0 slave START SLAVE UNTIL can stop too late.
The necessary in calculating of the beginning of an event the event's length
did not correspond to the master's genuine information at the event's execution time.
That piece of info was changed at the event's relay-logging due to binlog_version<4 event
conversion by IO thread.

Fixed with storing the master genuine Query_log_event size into a new status
variable at relay-logging of the event. The stored info is extacted at the event
execution and participate further to caclulate the correct start position of the event
in the until-pos stopping routine.
The new status variable's algorithm will be only active when the event comes
from the master of version < 5.0 (binlog_version < 4).
2010-01-25 17:46:48 +02:00
Marc Alff
4428409ddb Bug#34455 Ambiguous foreign keys syntax is accepted
Backport from 6.0 to 5.5
2010-01-25 04:55:31 -07:00
8a66b424f3 Manual merge with Conflicts:
sql_udf.cc
2010-01-25 10:55:05 +08:00
He Zhenxing
6bf8c119fe Backport Bug#37148 to 5.1 2010-01-24 15:03:23 +08:00
Alexey Kopytov
7b5f5d5c37 Manual merge of mysql-5.1-bugteam into mysql-trunk-merge. 2010-01-24 00:09:23 +03:00
Marc Alff
dba07c7396 Bug#11714 Non-sensical ALTER TABLE ADD CONSTRAINT allowed
Bug#35578 Parser allows useless/illegal CREATE TABLE syntax
Bug#38696 CREATE TABLE ... CHECK ... allows illegal syntax

Backport from 6.0 to mysql-next-mr.
2010-01-22 19:00:19 -07:00
Marc Alff
7146864986 Removing perfschema.tampered_perfschema_table1 from the experimental tests 2010-01-22 18:06:13 -07:00
Sergey Vojtovich
a365016f8b Merge InnoDB snapshot with mysql-5.1-bugteam. 2010-01-22 16:26:17 +04:00
Sergey Vojtovich
58ebdfaec0 Applying InnoDB snapshot, fixes BUG#49396.
Detailed revision comments:

r6471 | calvin | 2010-01-16 01:43:27 +0200 (Sat, 16 Jan 2010) | 4 lines
branches/5.1: fix bug#49396: main.innodb test fails in embedded mode

Change replace_result by using $MYSQLD_DATADIR. Tested in both embedded
mode and normal server mode.
2010-01-22 16:23:27 +04: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
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
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
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
Alexander Nozdrin
b561f9262e Mark several failing test cases experimental. 2010-01-20 18:25:29 +03:00
Horst.Hunger
705174808c due to merge. 2010-01-20 14:22:49 +01:00
7a8ab5f4bc Auto Merge from 5.1-rep+2 2010-01-20 11:36:41 +08: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
Luis Soares
cddae2445b automerge: local bug branch --> mysql-5.1-rep+3 latest. 2010-01-19 13:08:03 +00:00
Mattias Jonsson
c26551e15d merge 2010-01-19 12:18:48 +01:00