- 3953. By Tor Didriksen <email address hidden> on 2012-08-28
Bug#14549809 LINKING PROBLEM IN 5.5.28 BUILDS WITH THREADPOOL PLUGIN
The use of Thread_iterator did not work on windows (linking problems).
Solution: Change the interface between the thread_pool and the server
to only use simple free functions.
This patch is for 5.5 only (mimicks similar solution in 5.6)
- 3951. By Ashish Agarwal<email address hidden> on 2012-08-24
Bug#14363985: MYSQLD CRASHED WHEN DISABL AND
ENABLE AUDI PLUGIN WHEN DDL
PROBLEM: While unloading the plugin, state is
not checked before it is to be reaped.
This can lead to simultaneous free of
plugin memory by more than one thread.
Multiple deallocation leads to server
crash. In the present bug two threads
deallocate the alog_log plugin.
SOLUTION: A check is added to ensure that only
one thread is unloading the plugin.
NOTE: No mtr test is added as it requires
multiple threads to access critical
section. debug_sync cannot be used in
the current senario because we dont
have access to thread pointer in
some of the plugin functions. IMHO no
test case in the current time frame.
- 3950. By Marc Alff on 2012-08-24
Bug#13417440 : 63340: ARCHIVE FILE IO NOT INSTRUMENTED
This patch is for mysql-5.5 only,
to be null-merged to mysql-5.6 and mysql-trunk.
This is a partial rollback of the file io instrumentation,
removing the instrumentation for mysql_file_stat in the archive engine.
See the bug comments for details.
- 3949. By Gopal Shankar <email address hidden> on 2012-08-24
Bug#14364558 ASSERT `TABLE_
LIST->PRELOCKIN G_PLACEHOLDER= =FALSE'
FAILED IN CHECK_LOCK_AND_ST
lock_tables() is supposed to invoke check_lock_
for TABLE_LIST which are directly used by top level statement.
>prelocking_ placeholder is set only for TABLE_LIST
which are used indirectly by stored programs invoked by top
level statement. Hence check_lock_
and_start_ stmt() should have
>prelocking_ placeholder= =false always, but it is
observed that this assert fails.
The failure is found during RQG test rqg_signal_
open_tables() invokes open_and_
process_ routines( ) where it
finds all the TABLE_LIST that belong to the routine and
adds it to thd->lex-
>query_ tables. During this process if
process_ routines( ) fail for some reason,
we are supposed to chop-off all the TABLE_LIST found during
calls to open_and_
process_ routines( ). But, in practice this
is not happening.
>query_ tables_ own_last is supposed to point to a
node in thd->lex-
>query_ tables, which would be a first
TABLE_LIST used indirectly by stored programs invoked by
top level statement. This is found to be not-set correctly
when we plan to chop-off TABLE_LIST's, when
process_ routines( ) failed.
for_reopen( ) does chop-off all the TABLE_LIST
added after thd->lex-
>query_ table_own_ last. This is invoked
upon error in open_and_
process_ routines( ). This call would
not work as expected as thd->lex-
>query_ tables_ own_last
is not set, or is not set to correctly.
Further, when open_tables() restarts the process of finding
TABLE_LIST belonging to stored programs, and as the
>query_ tables_ own_last points to in-correct node,
there is possibility of new iteration setting the
>query_ tables_ own_last past some old nodes that
belong to stored programs, added earlier and not removed.
Later when open_tables() completes, lock_tables() ends up
and_start_ stmt() for TABLE_LIST which
belong to stored programs, which is not expected behavior
and hence we hit the assert
>prelocking_ placeholder= =false.
Due to above behavior, if a user application tries to
execute a SQL statement which invokes some stored function
and if the lock grant on stored function fails due to a
deadlock, then mysqld crashes.
open_tables() remembers save_query_
tables_ last which points
>query_ tables_ last before calls to
process_ routines( ). If there is no known
>query_ tables_ own_last set, we are now setting
>query_ tables_ own_last to save_query_ tables_ last.
This will make sure that the call to close_tables_
will chop-off the list correctly, in other words we now
remove all the nodes added to thd->lex-
>query_ tables, by
previous calls to open_and_
process_ routines( ).
Further, it is found that the problem exists starting
from 5.5, due to a code refactoring effort related to
open_tables(). Hence, the fix will be pushed in 5.5, 5.6
- 3948. By Tor Didriksen <email address hidden> on 2012-08-23
Bug#14463247 ORDER BY SUBQUERY REFERENCING OUTER ALIAS FAILS
Documentation for class Item_outer_ref was wrong:
(*ref) may point to Item_field as well
(see e.g. Item_outer_
So this casting in get_store_key() was wrong:
ref**)( (Item_ref* )keyuse- >val)-> ref)->ref_ type()
- 3947. By Georgi Kodinov on 2012-08-17
Bug #14399795 : ISSUES RELATED TO SETTING AUDIT_LOG_STRATEGY
DURING SERVER STARTUP
The options parser now correctly checks for ambiguous prefixes in
enumerated variables and emits an error when the value supplied is
No test added since mysql-test-run.pl can't handle server startup
failures as an expected state.
- 3946. By Marko Mäkelä <email address hidden> on 2012-08-21
Merge mysql-5.1 to mysql-5.5.
- Branch format:
- Branch format 7
- Repository format:
- Bazaar repository format 2a (needs bzr 1.16 or later)
- Stacked on: