Commit graph

65869 commits

Author SHA1 Message Date
Alexander Nozdrin
ad92ee1204 Auto-merge from mysql-trunk-bugfixing. 2010-06-10 14:38:32 +04:00
Davi Arnaut
d348f1219f Merge of mysql-5.1-bugteam into mysql-trunk-merge. 2010-06-09 21:41:40 -03:00
Davi Arnaut
2c8fd5fae8 Merge of mysql-5.0-bugteam into mysql-5.1-bugteam. 2010-06-09 21:36:20 -03:00
Davi Arnaut
b564aa92ab Bug#34236: Various possibly related SSL crashes
Addendum: Work around a compilation failure on Windows due to
          windows.h not being added to the global namespace.
2010-06-09 21:30:41 -03:00
Ramil Kalimullin
3058f4a136 Fix for bug #54007: assert in ha_myisam::index_next, HANDLER
Problem: the server missed the fact that one can read from 
2 indexes alternately using HANDLER interface.

Fix: check if the same (initialized) index is involved
reading next/prev values from the index.
2010-06-09 14:45:04 +04:00
Magne Mahre
fdd7c28bd8 Post-commit fixes after the push for Bug#20837 et. al. 2010-06-09 10:46:24 +02:00
Georgi Kodinov
fdbef84347 merge 2010-06-09 11:41:24 +03:00
Konstantin Osipov
b976fb1444 A review comment for WL#4441 " LOCK_open: Remove requirement of
mutex protecting thd->open_tables".

We should not manipulate with table->s->version outside the 
table definition cache code, but use the TDC API
to achieve the desired result.

Fix one violation: close_all_tables_for_name().
2010-06-09 12:39:09 +04:00
Georgi Kodinov
5932330839 Merge 2010-06-09 11:29:27 +03:00
Davi Arnaut
43316c794a Merge of mysql-5.1-bugteam into mysql-trunk-merge. 2010-06-08 20:44:25 -03:00
Davi Arnaut
1de997d849 Merge of mysql-5.0-bugteam into mysql-5.1-bugteam. 2010-06-08 18:14:18 -03:00
Davi Arnaut
514e407c44 Bug#53906: Stray semicolon in my_sys.h corrupts macro function definition of MY_INIT 2010-06-08 16:20:54 -03:00
Magne Mahre
0cb90edfe5 Bug#20837 Apparent change of isolation level during transaction
Bug#46527 COMMIT AND CHAIN RELEASE does not make sense
Bug#53343 completion_type=1, COMMIT/ROLLBACK AND CHAIN don't 
          preserve the isolation level
Bug#53346 completion_type has strange effect in a stored 
          procedure/prepared statement

Added test cases to verify the expected behaviour of :
 SET SESSION TRANSACTION ISOLATION LEVEL, 
 SET TRANSACTION ISOLATION LEVEL,
 @@completion_type,
 COMMIT AND CHAIN,
 ROLLBACK AND CHAIN
 ..and some combinations of the above
2010-06-08 19:47:10 +02:00
Davi Arnaut
f63046319b Bug#34236: Various possibly related SSL crashes
The problem was that the bundled yaSSL library was being built
without thread safety support regardless of the thread safeness
of the compoments linked with it.

The solution is to enable yaSSL thread safety support if any
component (server or client) is to be built with thread support.

Also, generate new certificates for yaSSL's test suite.
2010-06-08 10:36:47 -03:00
Marc Alff
ddf6a66504 Bug#54334 Double initialization of mysys mutexes
Prior to this fix, mysys mutexes such as THR_LOCK_lock could be initialized
twice by a call to my_init().
The root cause was out of place initialization in my_basic_init(),
calling my_thread_global_init().

With this fix,
- my_basic_init() properly initializes the mutex implementation itself,
for SAFE or FAST mutexes, and for platform dependent initializations,
before initialiazing a mutex.
- my_init() properly initializes mysys mutexes once,
when making the first call to my_thread_global_init().
2010-06-08 06:41:48 -06:00
Marko Mäkelä
fe0037b996 Merge a change from mysql-5.1-innodb:
------------------------------------------------------------
revno: 3503
revision-id: marko.makela@oracle.com-20100608121041-l7t9r6lrpx6lh361
parent: marko.makela@oracle.com-20100608114055-7b04ytuqz0lde6v1
committer: Marko Mäkelä <marko.makela@oracle.com>
branch nick: 5.1-innodb
timestamp: Tue 2010-06-08 15:10:41 +0300
message:
  Bug#54009: Server crashes when data is selected from non backed up table
  for InnoDB plugin

  dict_load_table(): Pass the correct tablespace flags to
  fil_open_single_table_tablespace(). For ROW_FORMAT=COMPACT and REDUNDANT,
  the tablespace flags are 0. The table flags would be 0 or DICT_TF_COMPACT.
2010-06-08 15:26:45 +03:00
Konstantin Osipov
85391c90ea Merge with trunk-runtime. 2010-06-08 16:20:15 +04:00
Kristofer Pettersson
8f4a33732a automerge 2010-06-08 13:50:54 +02:00
Marko Mäkelä
570a4ae8fe Merge a change from mysql-5.1-innodb:
------------------------------------------------------------
revno: 3502
revision-id: marko.makela@oracle.com-20100608114055-7b04ytuqz0lde6v1
parent: jimmy.yang@oracle.com-20100603134448-itzduhwgbw0b8nlh
committer: Marko Mäkelä <marko.makela@oracle.com>
branch nick: 5.1-innodb
timestamp: Tue 2010-06-08 14:40:55 +0300
message:
  buf_page_get_gen(): Pass file,line to rw_lock_x_lock().
2010-06-08 14:47:34 +03:00
Kristofer Pettersson
f813fbbb28 Automerge 2010-06-08 12:19:20 +02:00
Georgi Kodinov
a54aa69d8f Addendum to merge of Bug#52315 to mysql-trunk-merge :
Fixed the failing sys_vars.timestamp_basic.test by 
not re-calculating the value of the system variable at
check time.
2010-06-08 13:17:46 +03:00
Kristofer Pettersson
59dea5e7f8 merge 5.1-bugteam => trunk-merge 2010-06-08 12:17:07 +02:00
Kristofer Pettersson
5a570b0f54 Bug#53191 Lock_time in slow log is negative when logging stored routines
Logging slow stored procedures caused the slow log to write 
very large lock times. The lock times was a result of a 
negative number being cast to an unsigned integer.
The reason the lock time appeard negative was because 
one of the measurements points was reset after execution
causing it to change order with the start time of the 
statement.
      
This bug is related to bug 47905 which in turn was 
introduced because of a joint fix for 12480,12481,12482 and 11587.

The fix is to only reset the start_time before any statement
execution in a SP while not resetting start_utime or
utime_after_lock which are used for measuring the 
performance of the SP. Start_time is used to set the
timestamp on the replication event which controlls how
the slave interprets time functions like NOW().
2010-06-08 10:58:19 +02:00
Konstantin Osipov
4b6b69d22e WL#4441 "LOCK_open: Remove requirement of mutex protecting
thd->open_tables"

thd->open_tables list is not normally accessed concurrently
except for one case: when the connection has open SQL
HANDLER tables, and we want to perform a DDL on the table,
we want to abort waits on MyISAM thr_lock of those connections
that prevent the DDL from proceeding, and iterate
over thd->open_tables list to find out the tables on which
the thread is waiting.

In 5.5 we mostly use deadlock detection and soft deadlock 
prevention, as opposed to "hard" deadlock prevention
of 5.1, which would abort any transaction that
may cause a deadlock. The only remaining case when
neither deadlock detection nor deadlock prevention
is implemented in 5.5 is HANDLER SQL, where we use
old good thr_lock_abort() technique form 5.1. 

Thus, replace use of LOCK_open to protect thd->open_tables
with thd->LOCK_ha_data (a lock protecting various session
private data).

This is a port of the work done for 5.5.4 for review
and inclusion into 5.5.5.
2010-06-08 12:08:46 +04:00
Sergey Glukhov
482a40e149 5.1-bugteam->trunk-merge merge 2010-06-08 10:47:23 +04:00
Sergey Glukhov
39065d5105 5.0-bugteam->5.1-bugteam merge 2010-06-08 10:28:30 +04:00
Sergey Glukhov
bc774bd332 Bug#53933 crash when using uncacheable subquery in the having clause of outer query
The problem is in the Item_func_isnull::update_used_tables() function,
bracket is at the wrong place. Because of that isnull item erroneously
is treated as const item. The fix is to set brackets in the right place.
2010-06-08 10:22:40 +04:00
a34ea0e4ba Postfix for bug49741 2010-06-08 10:27:34 +08:00
Jon Olav Hauglid
b5a038a590 Bug #54282 Crash in MDL_context::upgrade_shared_lock_to_exclusive
This crash happened if a table was listed twice in a DROP TABLE statement,
and the statement was executed while in LOCK TABLES mode. Since the two
elements of table list were identical, they were assigned the same TABLE object. 
During processing of the first table element, the TABLE instance was destroyed
and the second table list element was left with a dangling reference.
When this reference was later accessed, the server crashed.

Listing the same table twice in DROP TABLES should give an ER_NONUNIQ_TABLE
error. However, this did not happen as the check for unique table names was 
skipped due to the lock type for table list elements being set to TL_IGNORE.
Previously TL_UNLOCK was used and the unique check was performed.

This bug was a regression introduced by a pre-requisite patch for
Bug#51263 "Deadlock between transactional SELECT and ALTER TABLE ...
REBUILD PARTITION". The regression only existed in an internal team
tree and never in any released code.

This patch reverts DROP TABLE (and DROP VIEW) to the old behavior of
using TL_UNLOCK locks. Test case added to drop.test.
2010-06-07 17:27:40 +02:00
Konstantin Osipov
5196821127 Backport two small cleanups from trunk-iplus tree:
1) No mutex and no function call if we're not using
plugins.
2) If we're above the table definition cache limit,
delete the oldest unused share, not the share on our hands.
2010-06-07 18:53:50 +04:00
Konstantin Osipov
666f5544c2 Apply:
3413 Davi Arnaut	2010-06-03
     Don't enable safemalloc for valgrind builds, it's too slow.
to trunk-runtime.
2010-06-07 18:52:44 +04:00
Dmitry Lenev
83121c6cae Follow-up for bug#52289 "performance regression
for MyISAM in sysbench OLTP_RW test".

Fixes compilation warnings about local variable
shadowing I_P_List_fast_push_back::last member.

Renamed I_P_List_fast_push_back::last member
to m_last. Also to keep member naming consistent
renamed I_P_List::first member to m_first.
2010-06-07 17:40:52 +04:00
Konstantin Osipov
eb75276544 A fix for Bug#52432 "Crash in check_table_is_closed on an
information_schema query.
Porting a fix done for a feature tree by Ingo Struewing.
No test case since the crash only occurs under a stress
load.
2010-06-07 16:05:34 +04:00
Georgi Kodinov
4b7ec3bc59 merge and typo fix 2010-06-07 13:37:11 +03:00
Georgi Kodinov
3617e5a159 merge 2010-06-07 13:01:54 +03:00
Georgi Kodinov
80acd9573f Addendum to the fix for bug #52315: need to set a proper shutdown type
when an out-of-supported-range date is detected.
2010-06-07 12:49:52 +03:00
Alexander Nozdrin
8a247e963d Manual merge from mysql-trunk-bugfixing.
Conflicts:
  - BUILD/SETUP.sh
  - mysql-test/mysql-test-run.pl
  - mysql-test/r/partition_error.result
  - mysql-test/t/disabled.def
  - mysql-test/t/partition_error.test
  - sql/share/errmsg-utf8.txt
2010-06-07 12:47:04 +04:00
Dmitry Lenev
571acc878b Patch that changes approach to how we acquire metadata
locks for DML statements and changes the way MDL locks
are acquired/granted in contended case.

Instead of backing-off when a lock conflict is encountered
and waiting for it to go away before restarting open_tables()
process we now wait for lock to be released without releasing
any previously acquired locks. If conflicting lock goes away
we resume opening tables. If waiting leads to a deadlock we
try to resolve it by backing-off and restarting open_tables()
immediately.

As result both waiting for possibility to acquire and
acquiring of a metadata lock now always happen within the
same MDL API call. This has allowed to make release of a lock
and granting it to the most appropriate pending request an
atomic operation.
Thanks to this it became possible to wake up during release
of lock only those waiters which requests can be satisfied
at the moment as well as wake up only one waiter in case
when granting its request would prevent all other requests
from being satisfied. This solves thundering herd problem
which occured in cases when we were releasing some lock and
woke up many waiters for SNRW or X locks (this was the issue
in bug#52289 "performance regression for MyISAM in sysbench
OLTP_RW test".
This also allowed to implement more fair (FIFO) scheduling
among waiters with the same priority.
It also opens the door for introducing new types of requests
for metadata locks such as low-prio SNRW lock which is
necessary in order to support LOCK TABLES LOW_PRIORITY WRITE.

Notice that after this sometimes can report ER_LOCK_DEADLOCK
error in cases in which it has not happened before.
Particularly we will always report this error if waiting for
conflicting lock has happened in the middle of transaction
and resulted in a deadlock. Before this patch the error was
not reported if deadlock could have been resolved by backing
off all metadata locks acquired by the current statement.
2010-06-07 11:06:55 +04:00
Jon Olav Hauglid
1af11051bf manual merge from mysql-trunk-bugfixing
Conflicts:
Text conflict in mysql-test/r/archive.result
Contents conflict in mysql-test/r/innodb_bug38231.result
Text conflict in mysql-test/r/mdl_sync.result
Text conflict in mysql-test/suite/binlog/t/disabled.def
Text conflict in mysql-test/suite/rpl_ndb/r/rpl_ndb_binlog_format_errors.result
Text conflict in mysql-test/t/archive.test
Contents conflict in mysql-test/t/innodb_bug38231.test
Text conflict in mysql-test/t/mdl_sync.test
Text conflict in sql/sp_head.cc
Text conflict in sql/sql_show.cc
Text conflict in sql/table.cc
Text conflict in sql/table.h
2010-06-06 13:19:29 +02:00
Davi Arnaut
75dce25ca8 Post-merge fix: header is used by the client API. Obvious in retrospect.
Also, update a few cases missed by the initial patch.
2010-06-05 16:39:03 -03:00
Ramil Kalimullin
e4ab997642 Automerge. 2010-06-04 22:09:10 +04:00
Ramil Kalimullin
78a9c728fe Automerge. 2010-06-04 22:01:27 +04:00
Ramil Kalimullin
752db5b2e8 Fix for bug #53912: Fails to build from source
NET::skip_big_packet isn't defined for the embedded server,
hide it in such a case.
2010-06-04 21:58:41 +04:00
Vasil Dimov
30dfa67e73 Merge mysql-trunk-bugfixing -> mysql-trunk-innodb 2010-06-04 19:22:53 +03:00
Georgi Kodinov
085c4928c9 merge 2010-06-04 19:09:50 +03:00
Georgi Kodinov
1a101920f3 merge 2010-06-04 17:10:22 +03:00
Georgi Kodinov
5321e49da6 Bug #52315: utc_date() crashes when system time > year 2037
Some of the server implementations don't support dates later
than 2038 due to the internal time type being 32 bit.
Added checks so that the server will refuse dates that cannot
be handled by either throwing an error when setting date at 
runtime or by refusing to start or shutting down the server if 
the system date cannot be stored in my_time_t.
2010-06-04 16:21:19 +03:00
Horst.Hunger
dcd9abee2e Patch for bug#52913: Inserted check if mysqlhotcopy script is existing as requested by review. DIsabled the test until bug#54129 will befixed. 2010-06-04 10:53:18 +02:00
Luis Soares
444568e48c BUG 53893: Automerged from mysql-5.1-bugteam-gca into mysql-5.1-bugteam.
Post-push fix.
2010-06-04 00:49:09 +01:00
Luis Soares
2786f54993 BUG 53893: Automerged from mysql-5.1-bugteam-gca into mysql-trunk-merge.
Post-push fix.
2010-06-04 00:47:30 +01:00