Commit graph

57253 commits

Author SHA1 Message Date
Horst Hunger
2775f86773 due to merge. 2009-01-23 19:21:08 +01:00
Gleb Shchepa
93991b6be9 Bug#42188: crash and/or memory corruption with user variables
in trigger

Interchangeable calls to the mysql_change_user client function
and invocations of a trigger changing some user variable caused
a memory corruption and a crash.

The mysql_change_user API call forces TDH::cleanup() on a server
that frees user variable entries.
However it didn't reset Item_func_set_user_var::entry to NULL
because Item_func_set_user_var::cleanup() was not overloaded.
So, Item_func_set_user_var::entry held a pointer to freed memory,
that caused a crash.

The Item_func_set_user_var::cleanup method has been overloaded
to cleanup the Item_func_set_user_var::entry field.


mysql-test/r/user_var.result:
  Added test case for bug #42188.
mysql-test/t/user_var.test:
  Added test case for bug #42188.
sql/item_func.cc:
  Bug#42188: crash and/or memory corruption with user variables
             in trigger
  
  The Item_func_set_user_var::cleanup method has been overloaded
  to cleanup the Item_func_set_user_var::entry field.
sql/item_func.h:
  Bug#42188: crash and/or memory corruption with user variables
             in trigger
  
  The Item_func_set_user_var::cleanup method has been overloaded
  to cleanup the Item_func_set_user_var::entry field.
2009-01-23 22:18:02 +04:00
Horst Hunger
d574142888 Fix for bug#39108: Set global wait timeout within the test, not more via opt file.
Deleted the opt file. Replaced the sleeps by wait condition. Made some beautyfications.
Inserted review results.
2009-01-23 18:19:09 +01:00
Andrei Elkin
db337eb8d8 Bug #31240 load data infile replication between (4.0 or 4.1) and 5.1 fails
an additional changeset to remove printing a path name.

mysql-test/suite/rpl/r/rpl_cross_version.result:
  removing a local exec env dependency
mysql-test/suite/rpl/t/rpl_cross_version.test:
  refining a test to not have local exec env dependency.
2009-01-23 19:15:27 +02:00
Andrei Elkin
00ca9099e6 merge from 5.1-bt to a local tree. 2009-01-23 19:10:13 +02:00
Luis Soares
df8543868d merge: 5.1 -> 5.1-rpl
conflicts:
  Text conflict in client/mysqltest.cc
  Text conflict in mysql-test/include/wait_until_connected_again.inc
  Text conflict in mysql-test/lib/mtr_report.pm
  Text conflict in mysql-test/mysql-test-run.pl
  Text conflict in mysql-test/r/events_bugs.result
  Text conflict in mysql-test/r/log_state.result
  Text conflict in mysql-test/r/myisam_data_pointer_size_func.result
  Text conflict in mysql-test/r/mysqlcheck.result
  Text conflict in mysql-test/r/query_cache.result
  Text conflict in mysql-test/r/status.result
  Text conflict in mysql-test/suite/binlog/r/binlog_index.result
  Text conflict in mysql-test/suite/binlog/r/binlog_innodb.result
  Text conflict in mysql-test/suite/rpl/r/rpl_packet.result
  Text conflict in mysql-test/suite/rpl/t/rpl_packet.test
  Text conflict in mysql-test/t/disabled.def
  Text conflict in mysql-test/t/events_bugs.test
  Text conflict in mysql-test/t/log_state.test
  Text conflict in mysql-test/t/myisam_data_pointer_size_func.test
  Text conflict in mysql-test/t/mysqlcheck.test
  Text conflict in mysql-test/t/query_cache.test
  Text conflict in mysql-test/t/rpl_init_slave_func.test
  Text conflict in mysql-test/t/status.test
2009-01-23 13:22:05 +01:00
Kent Boortz
e610f61d0e From 5.0.48 the NDB client libraries has been missing in the cluster
packages, this is now corrected (Bug#42278)
2009-01-23 02:59:03 +01:00
Andrei Elkin
8c3389f386 Bug #31240 load data infile replication between (4.0 or 4.1) and 5.1 fails
It's a regression issue.
The reason of the bug appeared to be an error introduced into 5.1 source code.
A piece of code in Create_file_log_event::do_apply_event() did not have test
coverage which made make test and pb unaware.
      
Fixed with inverting the old value of the return value from 
Create_file_log_event::do_apply_event().
The rpl test suite is extended with `rpl_cross_version' the file to hold 
regression cases similar to the current.


mysql-test/suite/rpl/r/rpl_cross_version.result:
  new results file
mysql-test/suite/rpl/t/rpl_cross_version-master.opt:
  options to the server to be able to start replication to itself
mysql-test/suite/rpl/t/rpl_cross_version.test:
  regression test for bug#31240.
sql/log_event.cc:
  Correcting the return value from  Create_file_log_event::do_apply_event()
2009-01-22 16:55:14 +02:00
Luis Soares
727707ac52 BUG#40143 federated.federated_server fails sporadically in pushbuild
The original goal of the test, as reported on BUG #25721, is to check whether 
a deadlock happens or not when concurrently CREATING/ALTERING/DROPPING the 
same server. For that a procedure (p1) is created that runs the exact same 
CREATE/ALTER/DROP statements for 10K iterations and two different connections 
(threads - t1 and t2) call p1 concurrently. At the end of the 10K iterations, 
the test checks if there was errors while running the loop (SELECT e >0).
      
The problem is that In some cases it may happen that one thread, t1, gets 
scheduled to execute with just enough time to complete the iteration and 
never bumps into the other thread t2. Meaning that t1 will never run into an 
SQL exception. On the other hand, the other thread, t2, may run into t1 and 
never issue any/part of its own statements because it will throw an SQLEXCEPTION. 
This is probably the case for failures where only one value differs.
      
Furthermore, there is a third scenario: both threads are scheduled to run 
interleaved for each iteration (or even one thread completes all iterations 
before the other starts). In this case, both will succeed without any error. 
This is probably the case for the failure that reports two different values.
      
This patch addresses the failure in pushbuild by removing the error counting 
and the printout (SELECT > 0) at the end of the test. A timeout should occur 
if the error that the test is checking surfaces.
2009-01-22 14:07:58 +01:00
Satya B
2e3422fa71 updating to the latest bugteam-5.1 branch 2009-01-22 18:29:13 +05:30
Davi Arnaut
6157433b2a Merge test case of Bug#40264 to mysql-5.1-bugteam
sql/sql_cache.cc:
  Assert that results are always complete.
2009-01-22 09:22:26 -02:00
Davi Arnaut
ecfdc3560c Bug#40264: Aborted cached query causes query to hang indefinitely on next cache hit
The problem is that the query cache was storing partial results
if the statement failed when sending the results to the client.
This could cause clients to hang when trying to read the results
from the cache as they would, for example, wait indefinitely for
a eof packet that wasn't saved.

The solution is to always discard the caching of a query that
failed to send its results to the associated client.

mysql-test/r/query_cache_notembedded.result:
  Add test case result for Bug#40264
mysql-test/t/query_cache_notembedded.test:
  Add test case for Bug#40264
sql/sql_cache.cc:
  Abort if a unreported error was raised.
2009-01-22 08:28:01 -02:00
Horst Hunger
88a36a2157 Changes to WL#4681 to merge to 5.1-main tree. 2009-01-22 11:14:16 +01:00
Satya B
4a3e9851cf TestCase for BUG#41574 - REPAIR TABLE: crashes for compressed tables
Extending the existing testcase written for BUG#40949 to verify
repair table operation for compressed tables



mysql-test/r/myisampack.result:
  Modified result file for myisampack.test
mysql-test/t/myisampack.test:
  Modified Testcase to test repair operation for compressed tables
2009-01-22 11:25:26 +05:30
Magnus Svensson
c2a4f3901b Bug#35735 mysql-test-run.pl creates tmpdir for socket path longer than 70
- Additional patch with improved protection by putting it all inside an "eval"
 - Calling 'hostpath' on a truncated socket may also croak.
 - Remove the need to create any directory parts of "path" inside the function.
2009-01-21 18:18:03 +01:00
Serge Kozlov
4562b69fed Bug#30128: The reason that sometimes events were executed because without STARTS
clause server fires immediately after creating event and time between create and delete
event sometimes is enough for firing. So adding STARTS clause moves first execution in
future after drop of event
1. Added STARTS clause for CREATE EVENT.
2. Updated result file.
2009-01-21 18:48:12 +03:00
Magnus Svensson
bf33a3fa89 Merge 2009-01-21 14:41:50 +01:00
He Zhenxing
46d1e28679 Auto merge 2009-01-21 18:39:11 +08:00
He Zhenxing
d7529bf160 Auto merge 2009-01-21 18:28:51 +08:00
Magnus Svensson
9c76ec9323 Bug#39972 mysql-test-run.pl: Confusing error message under special conditions
- Fix problem with for example ./mtr --timer, caused by new version of "Getopt::Long"
 - Evaluating the "$opt" variable as a string, returns the name of the parameter
   to be modified instead of "Getopt::Long::Callback" which is the class name
2009-01-21 11:17:16 +01:00
He Zhenxing
b7a66485ca BUG#41653 rpl_innodb_bug30888 fails sporadically on pushbuild: warning in log
In mtr.check_warnings, `text` was declares as type text, which is
64K, and when the server log grows larger than this, it would be
truncated, and then check_warnings was actually checking the 
error messages of a previous test and complain warnings.

This patch fixed the problem by change the type of `text` to
mediumtext, which is 16M.

mysql-test/include/mtr_warnings.sql:
  change the type of `text` to mediumtext
2009-01-21 17:59:31 +08:00
Bjorn Munch
985d7bb81e merge 2009-01-21 10:57:31 +01:00
Bjorn Munch
089663f9a7 Bug #40399 Please make mtr print stack trace after every failure
SIGABRT is sent to relevant processes after a timeout


client/mysqltest.cc:
  Fixed signal handlers to mysqltest actually dumps core
mysql-test/lib/My/CoreDump.pm:
  Added support for dbx
mysql-test/lib/My/SafeProcess.pm:
  Added dump_core to force process to dump core
mysql-test/lib/My/SafeProcess/safe_process.cc:
  Traps SIGABRT and sends this on to child
mysql-test/mysql-test-run.pl:
  When test times out, force core dumps on mysqltest and servers
2009-01-21 10:34:01 +01:00
He Zhenxing
b93fb0ab5f BUG#41177 mtr gives no debug info after failing to execute check-testcase/check-warnings
Log output of mysqltest when running check-testcase together
with errput. Remove --silent option for mysqltest when running
check-testcase/check-warnings


mysql-test/mysql-test-run.pl:
  Log output of mysqltest when runinng check-testcase together with errput.
  Remove --silent option for mysqltest when running check-testcase/check-warnings
2009-01-21 17:32:05 +08:00
Staale Smedseng
237ef78e1c Adding a test to verify that Bug#27208 "If no current database,
character_set_database !=character_set_server" is fixed.
2009-01-20 16:59:20 +01:00
Sergei Golubchik
9aa2ada9d0 compilation fixes 2009-01-19 16:27:49 +01:00
Sergei Golubchik
e3da48ba69 merged 2009-01-16 23:14:31 +01:00
Sergei Golubchik
141a75fa5d bug#41963 Maria: error_simulation and subselect_debug fail
added a missing DBUG_VOID_RETURN
2009-01-16 23:12:25 +01:00
Guilhem Bichot
92c4218224 merge 2009-01-16 22:10:31 +01:00
Guilhem Bichot
3907cb1d70 Fix for BUG#42112 "Maria: recovery failure (pushbuild2) Assertion `rownr == 0 && new_page' failed"
mysql-test/suite/maria/r/maria-recovery3.result:
  result update
mysql-test/suite/maria/t/maria-recovery3.test:
  Test for BUG#42112; before the bugfix, recovery would assert like this:
  ma_blockrec.c:6051: _ma_apply_redo_insert_row_head_or_tail: Assertion `rownr == 0 && new_page' failed.
storage/maria/ma_create.c:
  Fix for BUG#42112; plus some intentional crashes to test the fix. The bug was that if crash happened during
  TRUNCATE TABLE, in maria_create(), after the index file's state has been written but before its LSNs
  have been updated (so, if crash happened between _ma_state_info_write_sub() and _ma_update_state__lsns_sub()),
  then that would leave a table with create_rename_lsn==0. Recovery would then try old pre-TRUNCATE REDOs
  on this table, and fail as this table is already partly shortened. Fix is to write create_rename_lsn==LSN_MAX
  as soon as TRUNCATE touches the index file, so that Recovery ignores this table. This allows Maria to start;
  the table is still corrupted but the user can successfully repeat TRUNCATE TABLE (which required Maria to start).
storage/maria/ma_delete_all.c:
  A comment.
2009-01-16 22:00:39 +01:00
Sergei Golubchik
5a6a6c2ef3 mysql-test-run --list-options 2009-01-16 20:27:45 +01:00
Timothy Smith
75e1ed9618 Add another cast to ignore int/ulong difference in error types, silence warning on Win64 2009-01-16 17:49:07 +01:00
Timothy Smith
06adec7ad9 Auto merge 2009-01-16 17:47:09 +01:00
Timothy Smith
33ff35305d Auto-merge from upstream 5.1-bugteam 2009-01-16 17:33:24 +01:00
Sergei Golubchik
60f3a340ab merged
trnman_get_state/trnman_set_state renamed to trnman_get/set_flags
TRN::state - to TRN::flags accordingly
2009-01-16 17:18:17 +01:00
Georgi Kodinov
4d8e73c818 merged 5.0-bugteam -> 5.1-bugteam 2009-01-16 17:38:38 +02:00
Georgi Kodinov
bdec5458ae auto merge 2009-01-16 16:48:41 +02:00
Georgi Kodinov
47bd8d19fd merged 5.0-bugteam -> 5.1-bugteam 2009-01-16 13:42:01 +02:00
Georgi Kodinov
64ecdbe3f5 merged 5.1-main -> 5.1-bugteam 2009-01-16 13:41:12 +02:00
Georgi Kodinov
b6468e4a1a merged 5.0-main -> 5.0-bugteam 2009-01-16 13:19:42 +02:00
Georgi Kodinov
7ba31022e7 merged 5.1-main -> 5.1-bugteam 2009-01-16 12:47:48 +02:00
Georgi Kodinov
b385a2d8a5 merged 5.0-bugteam -> 5.1-bugtteam 2009-01-16 12:45:17 +02:00
Michael Widenius
364f8611b0 Fixed issues in last push found by pushbuild
sql/sql_insert.cc:
  Removed DBUG_ASSERT() that is triggered by deadlock-innodb test
storage/maria/ma_loghandler.c:
  Removed compiler warnings
storage/maria/trnman_public.h:
  Fixed wrong code from last push
2009-01-16 11:38:02 +02:00
Michael Widenius
3fca23902c Log queries to maria_log if compiled with EXTRA_DEBUG
Added DBUG_ASSERT() to unlikely error senario
Don't use errno == 0 in maria_create() / myisam_create()

sql/sql_insert.cc:
  Added DBUG_ASSERT() for case that should never happen in real life
  Added my_error() to avoid assert if mysql_lock() or postlock() doesn't call my_error()
storage/maria/ha_maria.cc:
  Log queries to maria_log if compiled with EXTRA_DEBUG
storage/maria/ma_create.c:
  Don't use errno == 0
storage/maria/ma_loghandler.c:
  Added logging of debug info to maria_log
storage/maria/ma_loghandler.h:
  Added logging of debug info to maria_log
storage/maria/ma_recovery.c:
  Added printing of debug info from maria_log
storage/maria/trnman.c:
  Added functions to read/store state in TRN
storage/maria/trnman.h:
  Added functions to read/store state in TRN
storage/maria/trnman_public.h:
  Added state in TRN to remmeber if we have already logged the query
storage/myisam/mi_create.c:
  Don't use errno == 0
2009-01-16 00:25:53 +02:00
Sergei Golubchik
9c96fde120 post-review fixes
include/atomic/generic-msvc.h:
  prevent possible compiler warnings
include/lf.h:
  comments, better definition for LF_HASH_OVERHEAD
include/maria.h:
  define MARIA_CANNOT_ROLLBACK here
include/my_pthread.h:
  avoid possible name clash
include/waiting_threads.h:
  comments, const, move WT_RESOURCE to waiting_threads.c
mysql-test/suite/maria/r/maria_notembedded.result:
  new test
mysql-test/suite/maria/t/maria_notembedded.test:
  new test - 5-way deadlock
mysys/lf_hash.c:
  better definition for LF_HASH_OVERHEAD
mysys/my_static.c:
  comment
mysys/my_thr_init.c:
  casts
mysys/waiting_threads.c:
  comments, asserts, etc
server-tools/instance-manager/parse.cc:
  fix my_init_dynamic_array() to follow new calling conventions
sql/mysqld.cc:
  call wt_init after set_proper_floating_point_mode
sql/sql_class.h:
  comment
storage/maria/ha_maria.cc:
  move MARIA_CANNOT_ROLLBACK to a common header
storage/maria/ma_commit.c:
  comment
storage/maria/ma_write.c:
  comments, check for HA_ERR_FOUND_DUPP_KEY
storage/maria/trnman.c:
  comments, assert
storage/maria/trnman.h:
  comments
storage/maria/unittest/trnman-t.c:
  be paranoid
unittest/mysys/lf-t.c:
  comments
unittest/mysys/waiting_threads-t.c:
  comments, safety, memory leak
2009-01-15 22:27:36 +01:00
Joerg Bruehe
aec81abb3b Upmerge changesets from 5.0-build to 5.1-build.
This does not bring any contents changes, it is purely
metadata which are affected.

Details:

Even within 5.0, most of these changesets did not cause
file contents changes, because they were backports done
for the "service pack" builds of 5.0.66sp1 and 5.0.72sp1.

The "real" changesets are also already present in 5.1,
so this upmerge doesn't change any contents.

The only "real" changeset in 5.0 was a fix of the shell
scripts used to configure bdb (BerkeleyDB).
As we completele removed bdb from the 5.1 sources already,
the affected files are not present in the 5.1 source tree,
so this changeset also does not cause any contents changes.
2009-01-15 19:11:25 +01:00
Joerg Bruehe
d5e10aec08 Again, the branch designation "-bugteam" made it to the main tree,
this should not happen.
2009-01-15 18:35:21 +01:00
Joerg Bruehe
65474bb120 Merge the version number increase. 2009-01-15 17:51:40 +01:00
Joerg Bruehe
f6d2d02237 Merge main tree to 5.1-build 2009-01-15 17:21:42 +01:00
unknown
f6c8f94d11 Raise version number after cloning 5.1.31 2009-01-15 16:48:10 +01:00