lp:~laurynas-biveinis/percona-server/bug805805-1060136-1061118-5.1

Created by Laurynas Biveinis and last modified
Get this branch:
bzr branch lp:~laurynas-biveinis/percona-server/bug805805-1060136-1061118-5.1
Only Laurynas Biveinis can upload to this branch. If you are Laurynas Biveinis please log in for upload directions.

Branch merges

Related bugs

Related blueprints

Branch information

Recent revisions

484. By Laurynas Biveinis

Fix:
- bug 1060136 (safe_process.cc/safe_process.pl should not kill
  mysqld on SIGSTOP/SIGCONT);
- bug 1061118 (Patch to remove excessive fcntl() calls was never
  ported correctly to 5.1);
- bug 805805 (attaching to percona-server with gdb disconnects
  clients).

These bugs are fixed together because fixing bug 1061118 exposes bug
805805
, and the testcase for the latter requires bug 1060136 to be
fixed.

For bug 1060136, the issue is that safe_process.cc is setup to kill
the child on SIGCHLD signal. But this signal may be raised when child
receives non-killing signals too, such as SIGSTOP/SIGCONT, resulting
in safe_process killing the child on such signals too. Fixed by
limiting SIGCHLD only to killing signals, by specifying the
SA_NOCLDSTOP option.

For bug 1061118, the issue is that the fcntl()-removing patch is
dependant on NO_ALARM C preprocessor define being defined. But
nothing in the build defined it. Fixed by adding it to configure.in.
If Percona Server suppported more platforms, a better fix would be to
backport SO_SNDTIMEO/SO_RCVTIMEO checks from 5.5, but at this point in
5.1 lifecycle an unconditional define is enough. In addition to
NO_DEBUG, we also define SIGNAL_WITH_VIO_CLOSE to follow 5.5. If the
latter is not defined, percona_innodb_kill_idle_trx* tests regress by
server returning query execution interrupted error instead of closing
the socket. To avoid regressing on upstream bug
http://bugs.mysql.com/bug.php?id=52633 (When building with -DNO_ALARM
on Linux, wait_timeout is effective 10x longer), backport its
vio_should_retry() too. This same backport is used by the Facebook
5.1 branch.

For bug 805805, the issue is that mysqld (with fcntl()s removed,
i.e. the above fixed) will close the the connections upon receiving
SIGSTOP/SIGCONT. This is caused by network read from socket being
cancelled with errno = EINTR on these signals. Normally this is
handled by my_real_read() retrying the read on EINTR, but the
fcntl()-removal patch has disabled this inadvertently in
my_real_read() and my_real_write(). Added a testcase
percona_signal_handling.

483. By Stewart Smith

merge fix for: Bug #1046389: UNIV_DEBUG build broken

481. By Stewart Smith

merge 5.1.65-14.0 release branch

480. By Stewart Smith

merge Bug #747032: Flashcache throws an error on startup when flashcache is not used

479. By Stewart Smith

merge fix for Bug #902471: Lots of ssl tests failures on oneiric hosts

478. By Stewart Smith

merge fix for Bug #1039931: 64-bit atomic operation Autoconf tests duplicated in regular atomic operation tests

476. By Stewart Smith

merge fix for Bug #902472: main.subselect_notembedded fails on Ubuntu Oneiric in Jenkins

475. By Stewart Smith

merge fix for Bug #1023883: libmysqlclient16-dev 'Replaces' libmysqlclient16-dev but doesn't 'Provides' it

Branch metadata

Branch format:
Branch format 7
Repository format:
Bazaar repository format 2a (needs bzr 1.16 or later)
Stacked on:
lp:percona-server/5.5
This branch contains Public information 
Everyone can see this information.