3201 Jonathan Perkin 2010-12-16
bug#58955: Must -DBUILD_CONFIG=mysql_release require libaio on Linux
Allow users to build without aio if they really want to, by passing
-DIGNORE_AIO_CHECK to cmake.
3200 Davi Arnaut 2010-12-15
Bug#58136: Crash in vio_close at concurrent disconnect and KILL
The problem is a race between a session closing its vio
(i.e. after a COM_QUIT) at the same time it is being killed by
another thread. This could trigger a assertion in vio_close()
as the two threads could end up closing the same vio, at the
same time. This could happen due to the implementation of
SIGNAL_WITH_VIO_CLOSE, which closes the vio of the thread
The solution is to serialize the close of the Vio under
LOCK_thd_data, which protects THD data.
No regression test is added as this is essentially a debug
issue and the test case would be quite convoluted as we would
need to synchronize a session that is being killed -- which
is a bit difficult since debug sync points code does not
synchronize killed sessions.
Drop lock parameter from close_connection, its not necessary
any more. The newly introduced THD::disconnect method will take
care of locking.
Change prototype, add a default parameter for the error code.
In case SIGNAL_WITH_VIO_CLOSE is defined, the active vio is
closed and cleared. Subsequent calls will only close the vio
owned by the session.
=== modified file 'cmake/build_configurations/mysql_release.cmake'
--- a/cmake/build_configurations/mysql_release.cmake 2010-12-07 11:40:38 +0000
+++ b/cmake/build_configurations/mysql_release.cmake 2010-12-16 09:27:55 +0000
@@ -118,17 +118,21 @@ IF(UNIX)
OPTION(WITH_PIC "" ON) # Why?
IF(CMAKE_SYSTEM_NAME STREQUAL "Linux")
- # Ensure aio is available on Linux (required by InnoDB)
- CHECK_INCLUDE_FILES(libaio.h HAVE_LIBAIO_H)
- CHECK_LIBRARY_EXISTS(aio io_queue_init "" HAVE_LIBAIO)
- IF(NOT HAVE_LIBAIO_H OR NOT HAVE_LIBAIO)
- MESSAGE(FATAL_ERROR "
- aio is required on Linux, you need to install the required library:
- Debian/Ubuntu: apt-get install libaio-dev
- RedHat/Fedora/Oracle Linux: yum install libaio-devel
- SuSE: zypper install libaio-devel
+ IF(NOT IGNORE_AIO_CHECK)
+ # Ensure aio is available on Linux (required by InnoDB)
+ CHECK_INCLUDE_FILES(libaio.h HAVE_LIBAIO_H)
+ CHECK_LIBRARY_EXISTS(aio io_queue_init "" HAVE_LIBAIO)
+ IF(NOT HAVE_LIBAIO_H OR NOT HAVE_LIBAIO)
+ MESSAGE(FATAL_ERROR "
+ aio is required on Linux, you need to install the required library:
+ Debian/Ubuntu: apt-get install libaio-dev
+ RedHat/Fedora/Oracle Linux: yum install libaio-devel
+ SuSE: zypper install libaio-devel
+ If you really do not want it, pass -DIGNORE_AIO_CHECK to cmake.
# Enable fast mutexes on Linux
Attachment: [text/bzr-bundle] firstname.lastname@example.org
|• bzr push into mysql-5.5-bugteam branch (jonathan.perkin:3200 to 3201)Bug#58955||Jonathan Perkin||16 Dec|