Merge lp:~sergei.glushchenko/percona-server/5.5-ps-bug1249193 into lp:percona-server/5.5

Proposed by Sergei Glushchenko
Status: Merged
Approved by: Laurynas Biveinis
Approved revision: no longer in the source branch.
Merged at revision: 627
Proposed branch: lp:~sergei.glushchenko/percona-server/5.5-ps-bug1249193
Merge into: lp:percona-server/5.5
Diff against target: 28 lines (+14/-3)
1 file modified
sql/mysqld.cc (+14/-3)
To merge this branch: bzr merge lp:~sergei.glushchenko/percona-server/5.5-ps-bug1249193
Reviewer Review Type Date Requested Status
Laurynas Biveinis (community) Approve
Review via email: mp+206640@code.launchpad.net

This proposal supersedes a proposal from 2014-02-16.

Description of the change

Port Oracle's fix.
Manual testing before fix showed constant crash with provided test case. After the fix I was unable to crash the server. No MTR test case because of MTR limitations.

http://jenkins.percona.com/view/PS%205.5/job/percona-server-5.5-param/953/

To post a comment you must log in.
Revision history for this message
Laurynas Biveinis (laurynas-biveinis) :
review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'sql/mysqld.cc'
2--- sql/mysqld.cc 2014-02-03 04:39:37 +0000
3+++ sql/mysqld.cc 2014-02-16 23:47:26 +0000
4@@ -2713,10 +2713,21 @@
5 should not be any other mysql_cond_signal() calls.
6 */
7 mysql_mutex_lock(&LOCK_thread_count);
8+ mysql_cond_broadcast(&COND_thread_count);
9 mysql_mutex_unlock(&LOCK_thread_count);
10- mysql_cond_broadcast(&COND_thread_count);
11-
12- (void) pthread_sigmask(SIG_BLOCK,&set,NULL);
13+
14+ /*
15+ Waiting for until mysqld_server_started != 0
16+ to ensure that all server components has been successfully
17+ initialized. This step is mandatory since signal processing
18+ could be done safely only when all server components
19+ has been initialized.
20+ */
21+ mysql_mutex_lock(&LOCK_server_started);
22+ while (!mysqld_server_started)
23+ mysql_cond_wait(&COND_server_started, &LOCK_server_started);
24+ mysql_mutex_unlock(&LOCK_server_started);
25+
26 for (;;)
27 {
28 int error; // Used when debugging

Subscribers

People subscribed via source and target branches