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

55402 Commits

Author SHA1 Message Date
Alexey Botchkov
3a5fe88d02 merging 2008-12-09 12:47:48 +04:00
Alexey Botchkov
9b6a09d155 Bug#35934 mysql_upgrade calls mysqlcheck with insufficient parameters
modifying the original fix.
    As it turned out --fix-db-names option of the mysqlcheck suppress
    the --check_upgrade option, so we have to call the mysqlcheck twice
    from the mysql_upgrade.

per-file comments:
  client/mysql_upgrade.c
Bug#35934      mysql_upgrade calls mysqlcheck with insufficient parameters
2008-12-09 12:30:49 +04:00
Alexey Kopytov
459c6d184f Merge from mysql-5.0-bugteam to mysql-5.1-bugteam. 2008-12-09 11:11:52 +03:00
Alexey Kopytov
695a2fd90e Fixed type_float failures in --ps-protocol mode introduced by the test case for bug #27483.
The reason for the failures was bug #21205 (fixed in 6.0 by dtoa, but still present in 5.0/5.1).

mysql-test/r/type_float.result:
  Modified the failing test case so that bug #21205 does not occur.
mysql-test/t/type_float.test:
  Modified the failing test case so that bug #21205 does not occur.
2008-12-09 11:05:36 +03:00
Andrei Elkin
ada744b6da merge 5.1-bt to a local clone. 2008-12-09 02:21:06 +02:00
Patrick Crews
3c7a87c187 merge 5.0->5.1
Nothing to do, was already in 5.1
2008-12-08 16:25:33 -05:00
Patrick Crews
2aeeec5875 merge 2008-12-08 16:22:16 -05:00
Andrei Elkin
ed7b41d60e Bug #33420 Test 'rpl_packet' fails randomly with changed "Exec_Master_Log_Pos"
binlog_row_mix_innodb_myisam resutls are corrected.
The last operations prior the dup error is
TRUNCATE table t2;
Therefore after
--error ER_DUP_ENTRY
INSERT INTO t2 select * from t1;
table t2 must be empty, and that is what the updated results confirm.


mysql-test/suite/binlog/r/binlog_row_mix_innodb_myisam.result:
  results changed due to Bug #33420 fixing.
2008-12-08 21:40:25 +02:00
Andrei Elkin
6dec2c1f6a merging 5.1-bt to a local tree. 2008-12-08 21:26:32 +02:00
Chad MILLER
482fa1f174 Replace C++ comment in a header file. Thanks, Alik! 2008-12-08 12:45:48 -05:00
Vladislav Vaintroub
ff55541a5b merge 2008-12-08 16:37:32 +01:00
Mattias Jonsson
55722c2230 merge 2008-12-08 16:07:41 +01:00
Andrei Elkin
255418d978 Bug #40221 Replication failure on RBR + UPDATE the primary key
Extending bug#40221 regression test: 1. include INSERT 2. convert prim key + autoinc to
unique.

mysql-test/suite/binlog/r/binlog_innodb_row.result:
  results changed.
mysql-test/suite/binlog/t/binlog_innodb_row.test:
  Extending bug#40221 regression test to include the INSERT  dup key errored-out case.
2008-12-08 17:07:08 +02:00
Andrei Elkin
3383003787 merge bug#33420, bug#41173 on bt 5.0 -> 5.1 2008-12-08 16:42:59 +02:00
Matthias Leich
ce942b3995 Fix for Bug#40904 20 tests in 5.1 are disabled in a bad manner
- remove totally wrong (syntax) entries from disabled.def
- remove entries belonging to deleted tests from disabled.def
- correct the comments (correct the bug mentioned) of entries in disabled.def
- remove never completed tests which were accidently pushed
2008-12-08 15:36:42 +01:00
Andrei Elkin
f3d347cfba merge 5.0->5.0-bugteam for a local tree containing bug#33420 Test 'rpl_packet' fails randomly. 2008-12-08 16:29:13 +02:00
Mattias Jonsson
5a3396a213 merge 2008-12-08 15:09:59 +01:00
Mats Kindahl
bf97e59352 Merging with 5.1-bugteam. 2008-12-08 14:40:57 +01:00
Alexey Kopytov
ebff4ea3a9 Pull from mysql-5.1-bugteam. 2008-12-08 15:19:08 +03:00
Alexey Kopytov
72ba535c37 Pull from mysql-5.0-bugteam 2008-12-08 15:14:10 +03:00
Alexey Botchkov
2d8f9ec5c6 merging 2008-12-08 15:46:19 +04:00
Alexey Botchkov
4670abb0a2 merging 2008-12-08 15:41:45 +04:00
Mats Kindahl
b831d619bb Merging patch with 5.1-bugteam. 2008-12-08 11:32:24 +01:00
Georgi Kodinov
a10c3ff2b0 merged bug 37742 to 5.1-bugteam 2008-12-08 12:23:33 +02:00
Georgi Kodinov
8ee2705677 merge 5.0-bugteam -> 5.1-bugteam 2008-12-08 11:57:44 +02:00
Georgi Kodinov
6180bc6356 merged 5.1-main 2008-12-08 11:56:40 +02:00
Georgi Kodinov
d972b96c2d merged 5.0-main -> 5.0-bugteam 2008-12-08 11:54:41 +02:00
Georgi Kodinov
ba816c14a9 merged 5.0-main -> 5.1-main 2008-12-08 11:39:34 +02:00
Alexey Kopytov
6aa4125be3 Merge from mysql-5.0-bugteam to mysql-5.1-bugteam. 2008-12-07 17:51:22 +03:00
Vladislav Vaintroub
20cec8bf8a Bug#39750 -cannot create temp file on Windows.
The problem appears often in conjuction with temp files, when temp-pool is used, so that names of temp files are not unique.

The reason is that rapid deletiion and creation of fiiles with the same name on Windows is not guaranteed to succeed. File disappears from the file system only when the last handle to it is closed. If for example  a virus scanner, a backup or indexing  application  opens the  temp file just before MySQL deletes it, the file will enter "delete pending" state. In this state,it is not possible to open the file , or create a file with the same name (CreateFile returns  ERROR_ACCESS_DENED, posix open returns EACESS)

Fix (rather a cheap workarounf) is not to use temp-pool when working with temporary files- this will make filenames unique. 
With this patch , temp- pool setting will be ignored on anything but Linux(the option only made sense for Linux since its invention anyway).
2008-12-05 19:20:05 +01:00
Horst Hunger
7586134814 Fix for Bug#36878 after review by Matthias: Only one line in the result files of 32 bit and 64 bit platforms differed and made problems on 64 bit machine with 32 bit mysqld. The removal of the separation into 32 bit and 64 bit versions of that test fixes also this problem. 2008-12-05 16:43:13 +01:00
Patrick Crews
789bbbb037 Bug#41258: mysql-test-run does not copy subdirectories of std_data on Windows (5.0 only)
Altered how we copy data from mysql-test/std_data on Windows to match what we are doing in 5.1 and 6.0
2008-12-05 08:21:03 -05:00
Georgi Kodinov
1bb6a0ba9f Disable wait_timeout_func and report bug #41255. 2008-12-05 13:24:19 +02:00
Mats Kindahl
832770842e Bug #40116:
Uncommited changes are replicated and stay on slave after
rollback on master

Making test slightly more generic and robust.

mysql-test/suite/rpl/t/rpl_trigger.test:
  Adding code to check that InnoDB is available on slave as well.
  Making code slightly more generic.
2008-12-05 10:23:27 +01:00
Vladislav Vaintroub
8f500c522b Bug#38522: 5 seconds delay when closing application using embedded server
The problem here is that embedded server starts handle_thread manager 
thread  on mysql_library_init() does not stop it on mysql_library_end().
At shutdown, my_thread_global_end() waits for thread count to become 0,
but since we did not stop the thread it will give up after 5 seconds.
             
Solution is to move shutdown for handle_manager thread from kill_server()
(mysqld specific) to clean_up() that is used by both embedded and mysqld.
            
This patch also contains some refactorings - to avoid duplicate code,
start_handle_manager() and stop_handle_manager() functions are introduced.
Unused variables are eliminated. handle_manager does not rely on global
variable abort_loop anymore to stop (abort_loop is not set for embedded).
            
Note: Specifically on Windows and when using DBUG version of libmysqld, 
the complete solution requires removing obsolete code my_thread_init() 
from my_thread_var(). This has a side effect that a DBUG statement 
after my_thread_end() can cause thread counter to be incremented, and 
embedded will hang for some seconds. Or worse, my_thread_init() will 
crash if critical sections have been deleted by the global cleanup 
routine that runs in a different thread. 

This patch also fixes and revert prior changes for Bug#38293 
"Libmysqld crash in mysql_library_init if language file missing".

Root cause of the crash observed in Bug#38293  was bug in my_thread_init() 
described above




client/mysql.cc:
  sql_protocol_typelib is not exported from libmysqld
  (does not make sense either)
  thus excluded from embedded client
dbug/dbug.c:
  revert changes for Bug#38293
include/my_dbug.h:
  revert changes for Bug#38293
libmysql/libmysql.c:
  Removed DBUG_POP call, because when called after my_end(), will access
  THR_key_mysys that is already deleted. The result of pthread_get_specific
  is not predictable in this case and hence DBUG_POP can crash.
libmysqld/examples/CMakeLists.txt:
  Revert changes for Bug#38293.
libmysqld/lib_sql.cc:
  code to start handle manager is factored out into 
  start_handle_manager() function
libmysqld/libmysqld.def:
  Revert changes for Bug #38293
  Remove excessive exports from libmysqld, export what API documents.
mysys/my_thr_init.c:
  Remove windows-DLL-specific workaround for something (old code, no documentation for
  what specifically). The problem is that even after my_thread_end() is finished, 
  DBUG statement can initiate my_thread_init(). This does not happen anywhere else and 
  should not happen on  Windows either.
sql/mysql_priv.h:
  - new functions start_handle_manager() and stop_handle_manager()
  - move manager_thread_in_use  variable to sql_manager.cc and made
  it static
  - remove manager_status, as it is unused
sql/mysqld.cc:
  Code to start/stop handle_manager thread is factored out into start_handle_manager()
2008-12-04 19:41:53 +01:00
Andrei Elkin
6d717c21e7 Bug #33420 Test 'rpl_packet' fails randomly with changed "Exec_Master_Log_Pos"
Bug #41173 rpl_packet fails sporadically on pushbuild: query 'DROP TABLE t1' failed


The both issues appeared to be a race between the SQL thread executing CREATE table t1
and the IO thread that is expected to stop at the consequent big size event.
The two events need serialization which is implemented.
The early bug required back-porting a part fixes for bug#38350 exclusively for 5.0 version.



mysql-test/r/rpl_packet.result:
  results changed due to bug#33420, bug#41173.
mysql-test/t/rpl_packet.test:
  adding synchronization for sql and io thread (bug#41173 problem).
  simplifying the output to show only a relevant info (5.0 sole problem bug#33420).
2008-12-04 18:36:45 +02:00
Luis Soares
73326c1069 BUG#38826 Race in MYSQL_LOG::purge_logs is impossible to debug in production
BUG#39325 Server crash inside MYSQL_LOG::purge_first_log halts replicaiton

The patch reverses the order of the purging and updating events for log and
relay-log.info/index files respectively.

This solves the problem of having holes caused by crashes happening between updating
info/index files and purging logs.

This patch also contains an aditional test case for testing the crashing before purge logs.
      
NOTE1: This is a combined patch for BUG#38826 and BUG#39325. This patch is based on
bugteam tree and takes into account reviewers suggestions.

NOTE2: Merge from 5.0-bugteam
2008-12-04 14:07:56 +00:00
Mattias Jonsson
8adc9d1b86 Bug#40515: Query on a partitioned table does not return
'lock wait timeout exceeded'

Problem was a bug in the implementation of scan in partitioning
which masked the error code from the partition's handler.

Fixed by returning the value from the underlying handler.

mysql-test/suite/parts/r/partition_special_innodb.result:
  Bug#40515: Query on a partitioned table does not return
  'lock wait timeout exceeded'
  
  Updated test result
mysql-test/suite/parts/t/partition_special_innodb.test:
  Bug#40515: Query on a partitioned table does not return
  'lock wait timeout exceeded'
  
  Updated test case for covering the bug.
sql/ha_partition.cc:
  Bug#40515: Query on a partitioned table does not return
  'lock wait timeout exceeded'
  
  Removing redeclaration of result variable,
  which resulted in never returning the correct return value.
2008-12-04 10:47:25 +01:00
Patrick Crews
06a9022f30 Bug#40177: Test funcs_1.storedproc failing on Pushbuild
Altered param_check to disable warnings on system-sensitive operations
and added some notes / possible TODO
Re-recorded.result file to account for change
2008-12-03 21:44:07 -05:00
Luis Soares
da1bf24852 BUG#38826 Race in MYSQL_LOG::purge_logs is impossible to debug in production
BUG#39325 Server crash inside MYSQL_LOG::purge_first_log halts replicaiton

The patch reverses the order of the purging and updating events for log and relay-log.info/index files respectively.
This solves the problem of having holes caused by crashes happening between updating info/index files and purging logs.

NOTE: This is a combined patch for BUG#38826 and BUG#39325. This patch is based on bugteam tree and takes into account reviewers suggestions.
2008-12-04 01:01:03 +00:00
Mats Kindahl
43e9d5b3d5 Bug #40116: Uncommited changes are replicated and stay on slave
after rollback on master

When starting a transaction with a statement containing changes
to both transactional tables and non-transactional tables, the
statement is considered as non-transactional and is therefore
written directly to the binary log. This behaviour was present
in 5.0, and has propagated to 5.1.

If a trigger containing a change of a non-transactional table is
added to a transactional table, any changes to the transactional
table is "tainted" as non-transactional.

This patch solves the problem by removing the existing "hack" that
allows non-transactional statements appearing first in a transaction
to be written directly to the binary log. Instead, anything inside
a transaction is treaded as part of the transaction and not written
to the binary log until the transaction is committed.

mysql-test/suite/rpl/t/rpl_row_create_table.test:
  Removing positions from SHOW BINLOG EVENTS and using
  reset_master_and_slave to start on a fresh binary log each time.
mysql-test/suite/rpl/t/rpl_slave_skip.test:
  Adding explicit commit in AUTOCOMMIT=0 to make test work correctly.
mysql-test/suite/rpl/t/rpl_trigger.test:
  Adding test case for BUG#40116.
sql/log.cc:
  Changing commit logic in binlog_commit() to only commit when
  committing a real transaction or committing a punch transaction.
2008-12-03 20:55:49 +01:00
Alexey Kopytov
91f0c94c23 Fix for bug #27483: Casting 'scientific notation type' to 'unsigned
bigint' fails on windows.

Visual Studio does not take into account some x86 hardware limitations
which leads to incorrect results when converting large DOUBLE values
to BIGINT UNSIGNED ones.

Fixed by adding a workaround for double->ulonglong conversion on
Windows.


include/config-win.h:
  Added double2ulonglong(double) function implementing a workaround for
  broken double->ulonglong conversion on Windows/x86.
include/my_global.h:
  Define double2ulonglong() as a simple typecast for anything but
  Windows.
mysql-test/r/type_float.result:
  Added a test case for bug #27483.
mysql-test/t/type_float.test:
  Added a test case for bug #27483.
2008-12-03 19:15:39 +03:00
Horst Hunger
120cfcacb8 (No) fix for Bug#36878: The test has been taken out fo main and put into "sys_vars", but the opportunity to check the test has been take to improve it. 2008-12-03 16:43:53 +01:00
V Narayanan
c75cd3d70f merging with mysql-5.0-bugteam tree. 2008-12-03 17:52:55 +05:30
Horst Hunger
4d63306d42 temporary fix for Bug#37780: A short analysis of the test shows that it needs a replacement of the sleeps and as "In most cases, it might take some time for the thread to die, because the kill flag is checked only at specific intervals" (user manual) to carfully check that and insert waiting for that event. 2008-12-03 10:39:31 +01:00
unknown
7391280c15 Raise version number after cloning 5.0.74 2008-12-03 01:09:05 +01:00
Andrei Elkin
8ebce5350e Bug #40221 Replication failure on RBR + UPDATE the primary key
A transaction could result in having an extra event after a query that
errored e.g because of a dup key. Such a query is rolled back in
innodb, as specified, but has not been in binlog.
It appeares that the binlog engine did not always register for a query
(statement) because the previous query had not reset at its statement
commit time. Because of that fact there was no roll-back to the
trx_data->before_stmt_pos position and a the pending event of the
errorred query could become flushed to the binlog file.

Fixed with deploying the reset of trx_data->before_stmt_pos at the end
of the query processing.


mysql-test/suite/binlog/r/binlog_innodb_row.result:
  a new test file to contain tests dealing with binlogging innodb with
  the row-based format.
mysql-test/suite/binlog/t/binlog_innodb_row.test:
  a new test file to contain tests dealing with binlogging innodb with
  the row-based format.
sql/log.cc:
  Flushing the pending row event at binlog_end_trans() is moved down to the commit
  branch.
  Resetting of trx_data->before_stmt_pos to the uninitialized value at the end of the
  statement is implemented in binlog_commit() and binlog_rollback().
  Asserting emptiness the transaction cache after reset() and the uninitilized value for the statement's savepoint binlog position.
2008-12-02 19:32:07 +02:00
Georgi Kodinov
71dbb4987f moved the version to 5.0-main 2008-12-02 14:50:40 +02:00
Horst Hunger
7ed2caed58 Fix for Bug#37810:
The "show status" may be received by the server in a startup state, where it only can reject the statement, so that the client then react with 2013.
So, adding 2013 to the list of errors may help, as the "show status" will be repeated then.
2008-12-02 12:34:52 +01:00
Georgi Kodinov
014143e858 Fixed a bad merge (5.0->5.1) of the fix for bug 37339.
There was a missing initialization.

sql/set_var.h:
  Added an initialization missing during the merge of 37339.
2008-12-02 13:21:05 +02:00