1
0
mirror of https://github.com/MariaDB/server.git synced 2025-12-13 20:03:16 +03:00
Commit Graph

29385 Commits

Author SHA1 Message Date
Rohit Kalhans
4c4a2599c1 BUG#11758262 BUG#13043055:
Fix for commit_1innodb failure on pb2.

Background: as status increment differs for an unsafe statement 
when logged in stmt and row format,  mtr throws a content mismatch
error.

Fix:  call p_verify_status_increment with different arguments
for loging format as stmt and row/mixed and disable query log.
2011-10-03 16:05:52 +05:30
Andrei Elkin
2788e98ad3 bug#bug11747416 post-push fixes to correct file name print out. 2011-09-30 15:58:02 +03:00
Rohit Kalhans
132c41604a BUG#11758262 BUG#13043055
Problem: commit_1innodb fails on pb2 after the patch for BUG#11758262
Background: Certain statements threw warnings only in statement mode causing
the result cintent mismatch.

Fix: disabled warnings from the statements.
2011-09-30 15:16:35 +05:30
Marko Mäkelä
4db6d87789 Update the German error message translations (by Stefan Hinz)
and fix some Swedish too.
2011-09-29 15:31:46 +03:00
Andrei Elkin
b426043b7c Bug#11747416 : 32228 A disk full makes binary log corrupt
Binary log of master can get a partially logged event if the server
runs out of disk space and, while waiting for some space to be freed,
is shut down (or crashes). If the server is not stopped, it will just
wait endlessly for space to be freed, thus no partial event anomaly
occurs.  The restarted master server has had a dubious policy to send
the incomplete event to slave which it apparently can't handle.
Although an error was printed out the fact of sending with unclear
error message is a source of confusion.
Actually the problem of presence an incomplete event in the binary log
was already fixed by WL 5493 (which was merged to our current trunk
branch, major version 5.6). The fix makes the server truncate the
binary log on server restart and recovery.

However 5.5 master can't do that. So the current issue is a problem of
sending incomplete events to the slave by 5.5 master.

It is fixed in this patch by changing the policy so that only complete
events are pushed by the dump thread to the IO thread. In addition,
the error text that master sends to the slave when an incomplete event
is found, now states that incomplete event may have been caused by an
out-of-disk space situation and provides coordinates of
the first and the last event bytes read.
2011-09-29 14:14:43 +03:00
Bjorn Munch
f808e8f34f mtr --help: add --boot-xxx and sort some debug options 2011-09-29 12:34:44 +02:00
Tatjana Azundris Nuernberg
22532c2c90 manual merge 2011-09-29 10:56:21 +01:00
Tatjana Azundris Nuernberg
546084eba2 Bug#11765687 (MySQL58677): No privilege on table / view, but can know #rows / underlying table's name
1 - If a user had SHOW VIEW and SELECT privileges on a view and
this view was referencing another view, EXPLAIN SELECT on the outer
view (that the user had privileges on) could reveal the structure
of the underlying "inner" view as well as the number of rows in
the underlying tables, even if the user had privileges on none of
these referenced objects.

This happened because we used DEFINER's UID ("SUID") not just for
the view given in EXPLAIN, but also when checking privileges on
the underlying views (where we should use the UID of the EXPLAIN's
INVOKER instead).

We no longer run the EXPLAIN SUID (with DEFINER's privileges).
This prevents a possible exploit and makes permissions more
orthogonal.

2 - EXPLAIN SELECT would reveal a view's structure even if the user
did not have SHOW VIEW privileges for that view, as long as they
had SELECT privilege on the underlying tables.

Instead of requiring both SHOW VIEW privilege on a view and SELECT
privilege on all underlying tables, we were checking for presence
of either of them.

We now explicitly require SHOW VIEW and SELECT privileges on
the view we run EXPLAIN SELECT on, as well as all its
underlying views. We also require SELECT on all relevant
tables.
2011-09-29 10:47:11 +01:00
Rohit Kalhans
b140784fbc BUG#11758262 - 50439: MARK INSERT...SEL...ON DUP KEY UPD,REPLACE...SEL,CREATE...[IGN|REPL] SEL
Problem: The following statements can cause the slave to go out of sync 
if logged in statement format: 
INSERT IGNORE...SELECT 
INSERT ... SELECT ... ON DUPLICATE KEY UPDATE 
REPLACE ... SELECT 
UPDATE IGNORE :
CREATE ... IGNORE SELECT 
CREATE ... REPLACE SELECT  
           
Background: Since the order of the rows returned by the SELECT 
statement or otherwise may differ on master and slave, therefore
the above statements may cuase the salve to go out of sync with
the master. 
      
Fix:
Issue a warning when statements like the above are exectued and 
the bin-logging format is statement. If the logging format is mixed,
use row based logging. Marking a statement as unsafe has been 
done in the sql/sql_parse.cc instead of sql/sql_yacc.cc, because while
parsing for a token has been done we cannot be sure if the parsing
of the other tokens has been done as well.
      
Six new warning  messages has been added for each unsafe statement. 
      
binlog.binlog_unsafe.test has been updated to incoporate these additional unsafe statments.


******
BUG#11758262 - 50439: MARK INSERT...SEL...ON DUP KEY UPD,REPLACE...SEL,CREATE...[IGN|REPL] SEL 
Problem: The following statements can cause the slave to go out of sync 
if logged in statement format: 
INSERT IGNORE...SELECT 
INSERT ... SELECT ... ON DUPLICATE KEY UPDATE 
REPLACE ... SELECT 
UPDATE IGNORE :
CREATE ... IGNORE SELECT 
CREATE ... REPLACE SELECT  
           
Background: Since the order of the rows returned by the SELECT 
statement or otherwise may differ on master and slave, therefore
the above statements may cuase the salve to go out of sync with
the master. 
      
Fix:
Issue a warning when statements like the above are exectued and 
the bin-logging format is statement. If the logging format is mixed,
use row based logging. Marking a statement as unsafe has been 
done in the sql/sql_parse.cc instead of sql/sql_yacc.cc, because while
parsing for a token has been done we cannot be sure if the parsing
of the other tokens has been done as well.
      
Six new warning  messages has been added for each unsafe statement. 
      
binlog.binlog_unsafe.test has been updated to incoporate these additional unsafe statments.
2011-09-29 14:47:27 +05:30
Bjorn Munch
a7f0fae6ab Bug #12373393 PB2 SHOULD ALLOW TO CREATE COLLECTIONS AS SUPER SET OF EXISTING COLLECTIONS
Let CMake parse files with a ".in" suffix containing includes
    Added default.release.in to replace default.release
    Explained in README
    New patch: replace 'include' with '#include' to avoid accidental matches
2011-09-29 10:42:23 +02:00
Raghav Kapoor
3cf0b4cc17 Merge of fix for bug#11758062 from mysql-5.1. 2011-09-28 16:54:15 +05:30
Raghav Kapoor
92d96d1437 BUG#11758062 - 50206: ER_TOO_BIG_SELECT REFERS TO OUTMODED
SYSTEM VARIABLE NAME SQL_MAX_JOIN_SI 

BACKGROUND:

ER_TOO_BIG_SELECT refers to SQL_MAX_JOIN_SIZE, which is the
old name for MAX_JOIN_SIZE.

FIX:

Support for old name SQL_MAX_JOIN_SIZE is removed in MySQL 5.6
and is renamed as MAX_JOIN_SIZE.So the errmsg.txt 
and mysql.cc files have been updated and the corresponding result
files have also been updated.
2011-09-28 15:39:21 +05:30
Ashish Agarwal
e5c43f5835 Bug#11759349 -- Merge of patch from mysql-5.1. 2011-09-27 17:44:31 +05:30
Ashish Agarwal
d8c68db1f1 BUG#11759349 - 51655: CREATE TABLE IN MEMORY ENGINE DOESN'T STORE
CREATE_TIME IN INFORMATION_SC

It was impossible to determine MEMORY table creation time,
since it wasn't stored/exposed.

With this patch creation time is saved and it is available via
I_S.TABLES.CREATE_TIME.

Note: it was decided that additional analysis is required before
implementing UPDATE_TIME. Thus this patch doesn't store UPDATE_TIME.
2011-09-27 17:38:51 +05:30
Bjorn Munch
d2e2260d4b Bug #12844282 62075: MTR TESTS SHOULD NOT HAVE TO SAVE & RESET INNODB_FILE_FORMAT_CHECK
Added 'innodb_file_format_check' as variable to ignore change to.
  Tests that had to restore this amended
  Two tests assumed it to be Antelope, make sure these run on a freshly
    started server
  For 5.5, apparently innodb_file_format_max is the one to ignore
2011-09-27 12:56:05 +02:00
Tor Didriksen
6dbd633bd3 local merge 2011-09-26 14:29:27 +02:00
Tor Didriksen
a151d14453 Bug#12985030 SIMPLE QUERY WITH DECIMAL NUMBERS LEAKS MEMORY
Re-write the test, to make pushbuild green.
Workaraound for broken pow() function on:
SunOS tyr40 5.10 Generic_127112-05 i86pc i386 i86pc

(dbx) where
current thread: t@1
=>[1] Item_func_pow::val_real(this = 0x238af20) (optimized), at 0xaa8d13 (line ~1980) in "item_func.cc"

(dbx) print pow(1.01, 1.0)
pow(1.01, 1) = 1.01
(dbx) print pow(1.01, 10.0)
pow(1.01, 10) = 1.1046221254112
(dbx) print pow(1.01, 100.0)
pow(1.01, 100) = 2.7048138294215
(dbx) print pow(1.01, 1000.0)
pow(1.01, 1000) = 20959.155637814
(dbx) print pow(1.01, 10000.0)
pow(1.01, 10000) = 1.635828711189e+43
(dbx) print pow(1.01, 100000.0)
pow(1.01, 100000) = Infinity
(dbx) print pow(1.01, 1000000.0)
pow(1.01, 1000000) = Infinity
(dbx) print pow(1.01, 10000000.0)
pow(1.01, 10000000) = Infinity
(dbx) print pow(1.01, 100000000.0)
pow(1.01, 100000000) = Infinity
(dbx) print pow(1.01, 1000000000.0)
pow(1.01, 1000000000) = 0.0
(dbx) print pow(1.01, 10000000000.0)
pow(1.01, 10000000000) = 0.0

(dbx) print value
value = 1.0111111111111
(dbx) print val2
val2 = 8796093022207.0

(dbx) print pow(value, val2)
pow(value, val2) = 0.0

so it seems pow(1.01, y)
returns Infinity for large y, but then starts to return 0.0 for even larger values of y.
2011-09-26 14:21:28 +02:00
Bjorn Munch
ae41b0073b Fixed test sys_vars.all_vars: innodb_large_prefix no longer missing 2011-09-26 10:47:08 +02:00
Bjorn Munch
d1eb81f6ab merge from 5.5 main 2011-09-26 10:27:54 +02:00
Bjorn Munch
1a937b184d merge from 5.1 main 2011-09-26 10:06:25 +02:00
Daniel Fischer
fe1b205d02 merge from 5.5.16 2011-09-21 12:40:41 +02:00
kevin.lewis@oracle.com
0f359571c5 Bug 12963823 - Crash in Purge thread under unusual circumstances.
The problem occurred when indexes are added between the time that an
UNDO record is created and the time that the purge thread comes around
and deletes the old secondary index entries.  The purge thread would
hit an assert when trying to build a secondary index entry for
searching.  The problem was that the old value of those fields were not
in the UNDO record since they were not part of an index when the UPDATE
occured. 
A test case was added to innodb-index.test.
2011-09-20 18:17:36 -06:00
kevin.lewis@oracle.com
8d036bcd61 Bug 12963823 - Crash in Purge thread under unusual circumstances.
The problem occurred when indexes are added between the time that an
UNDO record is created and the time that the purge thread comes around
and deletes the old secondary index entries.  The purge thread would
hit an assert when trying to build a secondary index entry for
searching.  The problem was that the old value of those fields were not
in the UNDO record since they were not part of an index when the UPDATE
occured. 
A test case was added to innodb-index.test.
2011-09-20 18:12:36 -06:00
Bjorn Munch
8589a3e251 merge from 5.5 main 2011-09-20 12:14:35 +02:00
Tor Didriksen
929c97db61 Bug#12985030 SIMPLE QUERY WITH DECIMAL NUMBERS LEAKS MEMORY 2011-09-20 10:59:48 +02:00
Bjorn Munch
7658a8eb49 upmerge 12916194 2011-09-19 16:11:15 +02:00
Bjorn Munch
69d5338669 Bug #12934729 MTR: ADD OPTION TO RUN BOOTSTRAP THROUGH DEBUGGER
Added options --boot-gdb etc.
  Extended gdb_arguments() with optional input argument
  Cannot use set args in gdb init file, as run < <input> kills them (?)
2011-09-19 16:08:52 +02:00
Bjorn Munch
6f8928cf46 Bug #12916194 MTR SHOULD CUT OFF ANALYSIS OF SERVER LOG IF THERE IS TOO MUCH
Added simple cut-off w/warning if > one million lines
2011-09-19 16:06:35 +02:00
Rafal Somla
76f3c250d4 Update of auth_rpl test.
For some reason the test authentication plugin accepted connection with arbitrary password. But the intention of the plugin is that password should equal to the authentication string and in the later versions of the server connection fails if password is wrong. So I have updated auth_rpl test to specify the correct password.
2011-09-16 14:35:25 +02:00
Sergey Vojtovich
d495f58024 Merge. 2011-09-16 16:21:05 +04:00
Sergey Vojtovich
9c454fa5cd Merge. 2011-09-16 16:03:08 +04:00
Sergey Vojtovich
1ebc1e0703 BUG#11761180 - 53646: MYISAMPACK CORRUPTS TABLES WITH
FULLTEXT INDEXES

myisamchk may create incorrect fulltext index for compressed
tables. Incorrect data pointer size was used while creating
fulltext index.
2011-09-16 15:30:31 +04:00
Mattias Jonsson
b6bcb8146c merge 2011-09-15 21:32:25 +02:00
Mattias Jonsson
7d1cccae44 Bug#12696518: MEMORY LEAKS IN HA_PARTITION (VALGRIND TESTS ON TRUNK)
(also 5.5+ solution for bug#11766879/bug#60106)

The valgrind warning was due to an unused 'new handler_add_index(...)'
which was never freed.

The error handling did not work (fails as in bug#11766879) and
the implementation was not as transparant as it could, therefore I
made it a bit simpler and more transparant to the underlying handlers.

This way it follows the api better and the error handling works and
is also now tested.

Also added a debug test to verify the error handling.

Improved according to Jon Olavs review:
Added class ha_partition_add_index.
Also added base class Sql_alloc to handler_add_index.
Update 3.
2011-09-15 20:49:39 +02:00
Mattias Jonsson
a2cd617a4b merge into 5.1-sec of bug#11766879. 2011-09-15 19:26:38 +02:00
karen.langford@oracle.com
571a2eaf43 Merge from mysql-5.1.59-release 2011-09-15 18:48:54 +02:00
Bjorn Munch
a969632903 Some tests simplified after 12912120 2011-09-15 13:18:12 +02:00
Bjorn Munch
e08fa4affc upmerge 12793118,12912120 2011-09-15 13:09:24 +02:00
Bjorn Munch
b06ebbbf36 Bug #11751927 42960: MTR2: NO MORE --STRESS PARAMETERS
Quick fix: run mysql-stress-test.pl via a wrapper test
  Amend mtr to run just that test when using --stress
  Updated mysql-stress-test.pl to exit(1) if wrong options
2011-09-15 12:34:32 +02:00
Bjorn Munch
4cdf513179 Test federated_plugin must have ps-protocol off 2011-09-15 12:20:43 +02:00
Kristofer Pettersson
6db30ab856 Bug#11764310 - 57132: CONV FUNCTION CRASHES, NEGATIVE ARGUMENT TO MEMCPY
Amendment to previous patch:
Failure in CONV() should return NULL instead of
empty set.
When compiled on Windows or Solaris the function
Item_func_conv::val_str() doesn't fail on 
longlong2str() but finds an earlier exit path
based on the attributes of the arguments.
This exit path returns NULL on failure and as a
consequence the original patch caused different
test results depending on the OS used.
2011-09-15 10:01:15 +02:00
Rafal Somla
3b17a24eff Bug#12897501 REPLICATION DOES NOT SUPPORT WINDOWS AUTH PLUG-IN
Connection of slave to master using a replication account which authenticates
with an external plugin was not possible.

Fixed by making sure that the CLIENT_PLUGIN_AUTH capability is set when client connects using mysql_real_connect(). Also, a plugin-dir path used by client library to locate authentication plugins is set based on the analogous server setting. This is done in connect_to_master() function before a call to mysql_real_connect().
2011-09-14 16:10:18 +02:00
Bjorn Munch
f83dd3b313 Bug #12939555 MTR FINDS ALREADY COMPRESSED CORE WHEN LOOKING FOR CORE FILES AFTER RETRIED TEST
Just check that core file name does not end in .gz
  Not a problem for Windows, as we check for files *ending* in .dmp
2011-09-14 15:32:19 +02:00
Bjorn Munch
ca697d3d40 Bug #12912120 MTR SHOULD EXPORT MYSQLD'S PATH TO TEST CASES
Export $MYSQLD as full path to executable
  $MYSQLD_CMD is executable with minimum required args
2011-09-14 15:26:53 +02:00
Bjorn Munch
d75f2a4a6b Bug #12793118 MYSQLTEST: --ERROR AND --DISABLE_ABORT_ON_ERROR DO NOT WORK FOR SQL IN COMMANDS
Call handle_error() instead of die() when evaluating these
  Must remember "current command" with link to errors to ignore
  Added test cases to mysqltest.test
2011-09-14 15:19:24 +02:00
Bjorn Munch
79b7d05c4c Bug #12956584 MYSQLTEST: --ENABLE_X OR --DISABLE_X APPLYING ONLY TO NEXT COMMAND/STMT
Added a keyword ONCE to add to those commands
  Some internal tables to keep track of which properties are
    temporarily overriden
  Added tests in mysqltest.test
  Updates to other tests will be done later
2011-09-14 15:15:36 +02:00
Chuck Bell
d10bddf0ed BUG#12929631 : Execute crashes with --verbose output (Windows)
This patch corrects an error encountered in PB where Windows machines
are built in release mode have an extraneous parameter added in place
of the --console option. This is caused by the insert of '(null' 
instead of an empty string. In non-debug mode, the string is explicitly
set to an empty string.

Patch also fixes a result mismatch on Windows machines.
2011-09-09 10:39:44 -04:00
Kristofer Pettersson
1a2b1ba6aa Bug11764310 - 57132: CONV FUNCTION CRASHES, NEGATIVE ARGUMENT TO MEMCPY
Failure to check the return state of a longlong2str() call
caused a crash. This could happen if a user executed the sql
function CONV() with certain parameters.

The patch fixes the issue by checking that the returned pointer
isn't NULL.
2011-09-06 09:42:14 +02:00
Tor Didriksen
cd347313c0 Bug#12856915 VALGRIND FAILURE IN FILESORT/CREATE_SORT_INDEX
Post-push fix:
Replace fun:inline_mysql_file_write with '...' since it may be optimized away.
2011-09-05 16:04:33 +02:00
Bjorn Munch
0aef577ab7 upmerge test fix part of 11750417 2011-09-05 14:57:48 +02:00