Commit graph

61100 commits

Author SHA1 Message Date
6bad45745c Bug #43913 rpl_cross_version can't pass on conflicts complainig clash with
--slave-load-tm
      
The MDL_SHARED lock was introduced for an object in 5.4, but the 'TABLE_LIST' 
object was not initialized with the MDL_SHARED lock when applying event with 
LOAD DATA INFILE into table. So the failure is caused when checking the 
MDL_SHARED lock for the object.
To fix the problem, the 'TABLE_LIST' object was initialized with the MDL_SHARED 
lock when applying event with LOAD DATA INFILE into table.
2010-02-12 12:04:57 +08:00
Joerg Bruehe
16e60ff563 Upmerge changes done to the generic spec file in 5.0 to 5.1,
this includes a major whitespace (formatting) alignment
and sequence changes to better agree with other spec files.

Further changes:
- All features are controlled by "%define" set from call
  options or builtin.
- "bundled zlib" is on by default.
- "with libgcc" is controlled by runtime detection of gcc.
- Handling of "CFLAGS" and "CXXFLAGS" is more concentrated.
- Several missing man pages were added.
2010-02-11 21:33:48 +01:00
Magne Mahre
9148700166 merge from mysql-trunk-bugfixing 2010-02-11 18:32:53 +01:00
Magne Mahre
5f2c8caea9 Bug#50574 5.5.x allows spatial indexes on non-spatial columns,
causing crashes!

Adding a SPATIAL INDEX on a non-geometrical column caused a
segmentation fault when the table was subsequently 
inserted into.
      
A test was added in mysql_prepare_create_table to explicitly
check whether non-geometrical columns are used in a
spatial index, and throw an error if so.
2010-02-11 18:25:34 +01:00
Magne Mahre
071688ba79 merge 2010-02-11 18:04:32 +01:00
Magne Mahre
b2ddac5563 Bug#50542 5.5.x doesn't check length of key prefixes:
corruption and crash results
      
An index creation statement where the index key
is larger/wider than the column it references 
should throw an error.
      
A statement like:
  CREATE TABLE t1 (a CHAR(1), PRIMARY KEY (A(255)))
did not error, but a segmentation fault followed when
an insertion was attempted on the table
      
The partial key validiation clause has been 
restructured to (hopefully) better document which
uses of partial keys are valid.
2010-02-11 18:02:41 +01:00
Konstantin Osipov
bca1fec83e next-4284 tree:
fix lock_sync.test failure in row based replication mode.
2010-02-11 19:10:34 +03:00
Konstantin Osipov
8bd1e19d68 Fix a sporadic failure of rpl_sp.test in next-4284 tree: when doing
SELECT * FROM t1 on slave, first make sure that the slave has received
the CREATE TABLE from the master.
2010-02-11 19:02:21 +03:00
Konstantin Osipov
08df87e473 next-4284 tree: fix the failures of processlist_val_* tests,
update the condition to wait for in wait_condition
to reflect type-of-operation aware metadata locks.
2010-02-11 18:19:04 +03:00
Luis Soares
ec9f4c70e1 Automerge from mysql-next-mr-bugfixing. 2010-02-11 13:50:18 +00:00
Bjorn Munch
a748b2bf21 upmerge 31602,47389,50618 2010-02-11 14:35:54 +01:00
Bjorn Munch
7c34cd2ea2 upmerge 31602,47389,50618 2010-02-11 14:33:21 +01:00
Bjorn Munch
995180af01 renaming test variables+c to variables_community, + is problematic 2010-02-11 14:26:58 +01:00
Bjorn Munch
5aa74ebab9 merge 31602 2010-02-11 14:00:34 +01:00
Bjorn Munch
ee03292107 merge 47389 2010-02-11 13:57:43 +01:00
Jon Olav Hauglid
affdd53394 Followup to Bug#34604 handler::ha_rnd_end(): Assertion `inited==RND' failed.
The test case for this bug relies on getting a ER_LOCK_WAIT_TIMEOUT
error. However with the introduction of MDL, the test would hang
forever since the metadata locks would not timeout.

MDL timeouts are now introduced in the scope of Bug#45225. This
patch changes the testcase for Bug#34604 to set the new server
variable "lock_wait_timeout" to one second which makes the test
generate the necessary timeout again.
2010-02-11 12:59:12 +01:00
Jon Olav Hauglid
5bb67f34b8 Bug #45225 Locking: hang if drop table with no timeout
This patch introduces timeouts for metadata locks. 

The timeout is specified in seconds using the new dynamic system 
variable  "lock_wait_timeout" which has both GLOBAL and SESSION
scopes. Allowed values range from 1 to 31536000 seconds (= 1 year). 
The default value is 1 year.

The new server parameter "lock-wait-timeout" can be used to set
the default value parameter upon server startup.

"lock_wait_timeout" applies to all statements that use metadata locks.
These include DML and DDL operations on tables, views, stored procedures
and stored functions. They also include LOCK TABLES, FLUSH TABLES WITH
READ LOCK and HANDLER statements.

The patch also changes thr_lock.c code (table data locks used by MyISAM
and other simplistic engines) to use the same system variable.
InnoDB row locks are unaffected.

One exception to the handling of the "lock_wait_timeout" variable
is delayed inserts. All delayed inserts are executed with a timeout
of 1 year regardless of the setting for the global variable. As the
connection issuing the delayed insert gets no notification of 
delayed insert timeouts, we want to avoid unnecessary timeouts.

It's important to note that the timeout value is used for each lock
acquired and that one statement can take more than one lock.
A statement can therefore block for longer than the lock_wait_timeout 
value before reporting a timeout error. When lock timeout occurs, 
ER_LOCK_WAIT_TIMEOUT is reported.

Test case added to lock_multi.test.
2010-02-11 11:23:39 +01:00
Bjorn Munch
445596a12c Bug #47389 Innodb tests are skipped when running as unix root user
Add --user=root to collect_mysqld_features() if running as root
Please disregard previous commit; this is much simpler.
2010-02-11 11:22:07 +01:00
Luis Soares
af67056f28 Manual merge from mysql-next-mr bug branch.
Conflicts
=========
  Text conflict in sql/sql_base.cc
2010-02-10 22:27:23 +00:00
Luis Soares
f4f4a2c780 BUG#51021: current_stmt_binlog_row_based not removed in next-mr
A closely related problem, hardly worth a new bug report:
Removed a spurious call to:  
  thd->set_current_stmt_binlog_format_row_if_mixed()
in sql_base.cc:lock_tables().
2010-02-10 21:57:07 +00:00
Alexander Nozdrin
65808c91df Update result file. 2010-02-10 19:31:34 +03:00
Luis Soares
7d213e8314 BUG#51021: current_stmt_binlog_row_based not removed in next-mr
Deployed DBUG_ASSERT before the conditional binlog format
restore.
2010-02-10 16:01:31 +00:00
Dmitry Lenev
f229ac073a Fix for bug #50998 "Deadlock in MDL code during test
rqg_mdl_stability".

When start of statement's waiting on a metadata lock 
created more than one loop in waiters graph server might 
have entered deadlock condition.

The problem was that in the case described above MDL deadlock 
detector had to perform several searches for deadlock but
forgot to reset Deadlock_detection_context before performing 
new search. 
Failure to do so has broken assumption in code resposible for 
choosing victim that if Deadlock_detection_context::victim
is set we also have read lock on m_waiting_for_lock for this
context. As result this lock could have been unlocked more
times than it was acquired which corrupted rwlock's state
which led to server deadlock.

This fix ensures that such reset is done before each attempt
to find a deadlock.
2010-02-10 18:46:03 +03:00
Luis Soares
7f83359abc Automerge from mysql-trunk-bugfixing. 2010-02-10 12:16:49 +00:00
Luis Soares
21e68e4f1d BUG#50984: check_testcase fails for rpl_tmp_table_and_DDL
We found that there are some tests that are not cleaning
up properly:
      
  1. rpl_tmp_table_and_DDL
  2. rpl_do_grant
  3. rpl_sync
      
For #1 and #2 we found that the slave would not, for some
cases, replicate all the instructions the master processed 
in the cleanup section. We fix these by deploying some 
synchronization commands in the test cases so that slave 
processes all clean up instructions.
      
As for #3, this is tracked as part of another bug 
(BUG@50442).
2010-02-10 12:12:55 +00:00
Mattias Jonsson
e23222c6e1 merge 2010-02-10 11:08:39 +01:00
Mattias Jonsson
84c205f9ee Bug#50201: Server crashes in explain_filename on an InnoDB partitioned table
Problem was that in mysql-trunk the ER() macro is now dependent on current_thd
and the innodb monitor thread has no binding to that thd object. This cause 
the crash because of bad derefencing.

Solution was to add a new macro which take the thd as an argument (which the innodb
thread uses for the call).

(Updated according to reviewers comments, i.e. added ER_THD_OR_DEFAULT and
moved test to suite parts.)
2010-02-10 10:47:14 +01:00
Luis Soares
017b8df160 Post-push fix: float/double to string conversions and vice versa
changed in mysql-next-mr (see: WL@2934). Thence, we need to 
update the result file for rpl_stm_user_variables test case.
2010-02-10 00:05:45 +00:00
Luis Soares
9ba558302b BUG#51021: current_stmt_binlog_row_based not removed in next-mr
As part of BUG@39934 fix, the public:
 - THD::current_stmt_binlog_row_based 
variable had been removed and replaced by a private variable:
 - THD::current_stmt_binlog_format. 

THD was refactored and some modifiers and accessors were
implemented for the new variable.

However, due to a bad merge, the
THD::current_stmt_binlog_row_based variable is back as a public
member of THD. This in itself is already potentially
harmful. What's even worse is that while merging some more
patches and resolving conflicts, the variable started being used
again, which is obviously wrong.

To fix this we:
  1. remove the extraneous variable from sql_class.h
  2. revert a bad merge for BUG#49132
  3. merge BUG#49132 properly again (actually, making use of the
     cset used to merge the original patch to mysql-pe).
2010-02-09 17:22:31 +00:00
Bjorn Munch
1f97527aaa Bug #50618 Please allow 'sleep $variable' in mtr
Made mtr's sleep function understand $variables
A few fixes since previous patch, added tests
2010-02-09 18:13:57 +01:00
Guilhem Bichot
76fa370ff2 merge with latest next-mr-bugfixing 2010-02-09 15:06:04 +01:00
Luis Soares
d5db64574a Automerge from mysql-next-mr. 2010-02-09 12:30:05 +00:00
Luis Soares
f7ebf26881 auto merge from mysql-5.1-rep+3. 2010-02-09 12:10:47 +00:00
Alexander Nozdrin
33722b56ea Auto-merge (empty) from mysql-trunk-bugfixing. 2010-02-09 15:05:30 +03:00
Alexander Nozdrin
b4523de4b2 Auto-merge from mysql-next-mr. 2010-02-09 15:01:20 +03:00
Luis Soares
6ef3875bbd Manual merge from mysql-5.1-rep+2. 2010-02-09 11:58:36 +00:00
vvaintroub
b21273ba83 remove /MAP option for good.Noone needs it 2010-02-09 12:38:12 +01:00
Alexander Nozdrin
b4c213c80e Auto-merge from mysql-trunk. 2010-02-09 14:04:56 +03:00
Luis Soares
38c89b89ef Automerge from mysql-next-mr. 2010-02-09 10:46:18 +00:00
Alexander Nozdrin
73ef80f47c Auto-merge from mysql-next-mr. 2010-02-09 13:40:08 +03:00
Alexander Nozdrin
68ac1c9c28 1. Disable ndb_condition_pushdown.test due to Bug 49746.
2. Update test result files.
2010-02-09 13:16:01 +03:00
Alexander Nozdrin
a88cb29392 Manual merge from mysql-trunk.
Conflicts:
  - mysql-test/suite/ndb/r/ndb_dd_ddl.result
2010-02-09 13:14:29 +03:00
Alexander Nozdrin
0d9f6bccd3 Fix ndb_dd_ddl.test: drop created database after use. 2010-02-09 13:10:36 +03:00
Alexander Nozdrin
9ef12dceec Auto-merge from mysql-trunk. 2010-02-09 13:09:20 +03:00
Joerg Bruehe
fc5e9a4a54 Upmerge "configure.in" text change from 5.1 to 5.5 ("trunk"),
fixing bug#50950.
2010-02-08 22:16:07 +01:00
Joerg Bruehe
f6df1770fc Upmerge "configure.in" text change from 5.0 to 5.1,
fixing bug#50950.
2010-02-08 21:40:17 +01:00
Dmitry Lenev
c7e7a7d20c Fix for bug #50913 "Deadlock between open_and_lock_tables_derived
and MDL".

Concurrent execution of a multi-DELETE statement and ALTER
TABLE statement which affected one of the tables used in
the multi-DELETE sometimes led to deadlock.
Similar deadlocks might have occured when one performed
INSERT/UPDATE/DELETE on a view and concurrently executed
ALTER TABLE for the view's underlying table, or when one
concurrently executed TRUNCATE TABLE for InnoDB table and
ALTER TABLE for the same table.

These deadlocks were caused by a discrepancy between types of
metadata and thr_lock.cc locks acquired by those statements.

What happened was that multi-DELETE/TRUNCATE/DML-through-the-
view statement in the first connection acquired SR lock on a
table, then ALTER TABLE would come in in the second connection
and acquire SNW metadata lock and TL_WRITE_ALLOW_READ
thr_lock.c lock and then would start waiting for the first
connection during lock upgrade. After that the statement in
the first connection would try to acquire TL_WRITE lock on
table and would start waiting for the second connection,
creating a deadlock.

This patch solves this problem by ensuring that we acquire
SW metadata lock in all cases in which we acquiring write
thr_lock.c lock. This guarantees that deadlocks like the
one described above won't occur since all lock conflicts
in such situation are resolved within MDL subsystem.

This patch also adds assert which should guarantee that
such situations won't arise in future.
2010-02-08 23:19:55 +03:00
Joerg Bruehe
15728d0721 Bug#50950 Obsolete reference to www.mysql.com
in message printed at end of configure

New text for the success message of "configure".
2010-02-08 21:10:37 +01:00
Horst.Hunger
1813cacc50 Patch to fix bug#50981. Replace now the result ::1 by localhost for Windows. Both is valid. 2010-02-08 11:43:56 +01:00
Bjorn Munch
6571ac43e1 null upmerge 2010-02-07 12:41:24 +01:00