Merge lp:~sergei.glushchenko/percona-server/5.6-ps-bug1194097 into lp:percona-server/5.6
Status: | Merged |
---|---|
Approved by: | Laurynas Biveinis |
Approved revision: | no longer in the source branch. |
Merged at revision: | 443 |
Proposed branch: | lp:~sergei.glushchenko/percona-server/5.6-ps-bug1194097 |
Merge into: | lp:percona-server/5.6 |
Diff against target: |
340 lines (+115/-42) 13 files modified
Percona-Server/include/violite.h (+7/-0) Percona-Server/mysql-test/r/percona_bug1201681.result (+6/-0) Percona-Server/mysql-test/t/percona_bug1201681-master.opt (+1/-0) Percona-Server/mysql-test/t/percona_bug1201681.test (+27/-0) Percona-Server/sql/mysqld.cc (+1/-1) Percona-Server/sql/sql_class.cc (+2/-27) Percona-Server/sql/threadpool_common.cc (+8/-2) Percona-Server/sql/threadpool_unix.cc (+1/-1) Percona-Server/vio/vio.c (+4/-0) Percona-Server/vio/vio_priv.h (+2/-0) Percona-Server/vio/viopipe.c (+14/-0) Percona-Server/vio/vioshm.c (+16/-0) Percona-Server/vio/viosocket.c (+26/-11) |
To merge this branch: | bzr merge lp:~sergei.glushchenko/percona-server/5.6-ps-bug1194097 |
Related bugs: |
|
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Laurynas Biveinis (community) | Approve | ||
Alexey Kopytov (community) | Needs Fixing | ||
Vlad Lesin (community) | g2 | Needs Fixing | |
Review via email: mp+174525@code.launchpad.net |
Description of the change
This patch fixes multiple issues.
- assertion failure (pfs->m_idle || (state == PSI_SOCKET_
PFS updates of current state of socket in threadpool has been improved.
* as comment in threadpool_
more than one iteration of loop in threadpool_
which is handled now. Cases when loop wasn't executed at all are also
handled.
* change in mysqld.cc is aimed to prevent race condition (concurrent changes
in THD and it's PFS structures) which caused SIGSEGV's on server shutdown.
* adding vio_cancel for socket and other VIO implementations allows to
handle kill idle transaction correctly. Similar change present in 5.5
branch Percona Server rev. 442.1.4.
http://
Build is run with parameters using threadpool and maximum pool size of 50
threads. Why default value of 500 threads cannot be used in our Jenkins
farm will be explained below.
Results are pretty good. Except for several sporadic failures of slow log
related tests there are two constantly failing tests which expect maximum
pool size isn't set explicitly:
- pool_of_threads
- thread_
Tests ssl_crl_crlpath and ssl_crl are also failing. I relate these failures
to the fact that I built with -DWITH_SSL=system.
We can see that slave (http://
ran out resources and was unable to create new threads and processes.
I can explain this by the fact that this is a VPS instance which means it
not fully virtualized and resources like processes and threads are shared
between all virtual environments. When 8 mysql tests run in parallel, each
testing replication (2 mysqld processes), each allocated pool of 50 threads,
we'll have about 800 only threadpool worker threads, we should also take
into account IO threads and many others. This also likely a reason of weird
failures seen by Alexey B.
I added test case for bug #1201681, which is also fixed by this branch