Details for Bug#43015 main.lock_multi: Weak code (sleeps etc.)
-------------------------------------------------------------
- The fix for bug 42003 already removed a lot of the weaknesses mentioned.
- Tests showed that there are unfortunately no improvements of this tests
in MySQL 5.1 which could be ported back to 5.0.
- Remove a superfluous "--sleep 1" around line 195
Details for Bug#43065 main.lock_multi: This test is too big if the disk is slow
-------------------------------------------------------------------------------
- move the subtests for the bugs 38499 and 36691 into separate scripts
- runtime under excessive parallel I/O load after applying the fix
lock_multi [ pass ] 22887
lock_multi_bug38499 [ pass ] 536926
lock_multi_bug38691 [ pass ] 258498
When asking what database is selected, client expected
to *always* get an answer from the server.
We now handle failure more gracefully.
See comments in ticket for a discussion of what happens,
and how things interlock.
client/mysql.cc:
Handle empty result-sets gracefully, as opposed
to just result sets with n>0 items that may themselves
be empty.
are written.
When we have a myisam table with DELAY_KEY_WRITE option, index updates
are not applied until the flush tables command is issued or until the
server is shutdown. If server gets killed before the index updates are
written to disk, the index file is corrupted as expected but the table
is not marked as crashed. So when we start server with myisam-recover,
table is not repaired leaving the table unusable.
The problem is when we try to write the index updates to index file,
we decrement the open_count even before the flushing the keys to index
file.
Fixed by moving the decrement operation after flushing the keys to the
index file. So we always have non zero open count if the flush table
operation is killed and when the server is started with mysiam-recover
option, it marks the table as crashed and repairs it.
Note: No testcase for added as we need to kill the server and start the
server with different set of options and other non trivial
operations involved.
myisam/mi_close.c:
Decrement open count after flushing the key blocks to the
key file. If the server(with DELAY_KEY_WRITE option) is
killed before flush_key_blocks operation, we will have non
zero open count and the table can be repaired when server is
started with --myisam-recover option.
for Sun or HP (no <sys/ttydefaults.h> there),
and include AIX in that exception list.
Originally done by Kent Boortz for 5.1.32 on 2009-02-11 + 12
and now backported into 5.1.31sp1
mysql-client used static buffer to concatenate server-
version and version_comment. Sufficiently long comments
could get cut off. This was harmless, but looked daft.
Now using a dynamic buffer instead.
client/mysql.cc:
Use dynamic rather than static buffer for server
information. If we can get both version and comment,
concat them and use that. Otherwise, try to use just
version. If that fails too, return empty string so
overly trusting callers do not crash. Release memory
as needed.
The original fix was done by Davi Arnaut on 2009-02-03
All comments are copied from the original fix:
Bug#42524: Function pthread_setschedprio() is defined but seems broken on i5/OS PASE
The problem is that MySQL use of pthread_setschedprio is not
supported i5/OS and the default system behavior for unsupported
calls is to emit a SIGILL signal which causes the server to
abort.
The solution is to treat the pthread_setschedprio as inexistent
when compiling binaries to i5/OS. This also does not invalidate
the fix for bug 38477 as the only supported dispatch class is
SCHED_OTHER (which is passed to pthread_setschedparam).
configure.in:
Skip pthread_setschedprio check on i5/OS.
The original fix was done by Ramil Kalimullin on 2009-02-05
All comments are copied from the original fix:
Fix for bug#42014: Crash, name_const with collate
Problem: some queries using NAME_CONST(.. COLLATE ...)
lead to server crash due to failed type cast.
Fix: return the underlying item's type in case of
NAME_CONST(.. COLLATE ...) to avoid wrong casting.
mysql-test/r/func_misc.result:
Fix for bug#42014: Crash, name_const with coll
- test result.
mysql-test/t/func_misc.test:
Fix for bug#42014: Crash, name_const with coll
- test case.
sql/item.cc:
Fix for bug#42014: Crash, name_const with coll
- in case of NAME_CONST('name', 'value' COLLATE collation)
Item_name_const::type() returns type of 'value' argument
to avoid wrong type casting of the Item_name_const items.
- Header <sys/ttydefaults.h> missing or not usable on QNX and OpenServer 6
include/my_global.h
- Moved down definition of function rint(), as for some platforms (in
this case Netware) 'longlong' is not defined until later in
"my_global.h"
The original fix was done by Jonathan Perkin and committed by Georgi Kodinov
on 2009-02-10.
The same day, Georgi added a compilation fix which is already included here.
Original comment:
Merge libedit 2.11 and related files,
based on NetBSD CVS as of 2009/02/06 20:09:00.
functions
Unknown timezone specifications are properly rejected
by the server, but are copied into tz_storage before
rejection, and hence is retained until end of server
life. With sufficiently large bogus timezone specs,
it is easy to exhaust system memory.
Allocation of memory for a copy of the timezone
name is delayed until after verification of validity,
at the cost of a memcpy of the timezone info. This
only happens once, future lookups will hit the cached
structure.