Commit 64094e12 authored by Christian Hammers's avatar Christian Hammers Committed by Otto Kekäläinen

Apply debian/patches/38_scripts__mysqld_safe.sh__signals.dpatch

We have carried along this patch as a patch inside our sources
since 2012 (commit cfd4fcb0).

This same patch has been used also in MySQL packaging at Oracle
and in downstream Debian.org packages for both MySQL and MariaDB.

The validity of this has thus been vetted in production for years
and the review done now did not find otherwise.

Code contributed to Oracle with
http://forge.mysql.com/wiki/Sun_Contributor_Agreement

Reported as http://bugs.mysql.com/bug.php?id=31361
parent 58721c3e
38_scripts__mysqld_safe.sh__signals.dpatch
61_replace_dash_with_bash_mbug675185.dpatch 61_replace_dash_with_bash_mbug675185.dpatch
#! /bin/sh /usr/share/dpatch/dpatch-run
## 38_scripts__mysqld_safe.sh__signals.dpatch by <ch@debian.org>
##
## All lines beginning with `## DP:' are a description of the patch.
## DP: Executes /etc/init.d/mysql on signals
## DP: Reported as http://bugs.mysql.com/bug.php?id=31361
@DPATCH@
--- a/scripts/mysqld_safe.sh 2013-01-11 16:02:41 +0000
+++ b/scripts/mysqld_safe.sh 2013-01-11 16:03:14 +0000
@@ -36,7 +36,6 @@ skip_err_log=0
syslog_tag_mysqld=mysqld
syslog_tag_mysqld_safe=mysqld_safe
-trap '' 1 2 3 15 # we shouldn't let anyone kill us
# MySQL-specific environment variable. First off, it's not really a umask,
# it's the desired mode. Second, it follows umask(2), not umask(3) in that
@@ -181,7 +180,7 @@ eval_log_error () {
# sed buffers output (only GNU sed supports a -u (unbuffered) option)
# which means that messages may not get sent to syslog until the
# mysqld process quits.
- cmd="$cmd 2>&1 | logger -t '$syslog_tag_mysqld' -p daemon.error"
+ cmd="$cmd 2>&1 | logger -t '$syslog_tag_mysqld' -p daemon.error & wait"
;;
*)
echo "Internal program error (non-fatal):" \
@@ -895,6 +894,13 @@ then
fi
#
+# From now on, we catch signals to do a proper shutdown of mysqld
+# when signalled to do so.
+#
+trap '/usr/bin/mysqladmin --defaults-extra-file=/etc/mysql/debian.cnf refresh & wait' 1 # HUP
+trap '/usr/bin/mysqladmin --defaults-extra-file=/etc/mysql/debian.cnf shutdown' 2 3 15 # INT QUIT and TERM
+
+#
# Uncomment the following lines if you want all tables to be automatically
# checked and repaired during startup. You should add sensible key_buffer
# and sort_buffer values to my.cnf to improve check performance or require
...@@ -36,7 +36,6 @@ skip_err_log=0 ...@@ -36,7 +36,6 @@ skip_err_log=0
syslog_tag_mysqld=mysqld syslog_tag_mysqld=mysqld
syslog_tag_mysqld_safe=mysqld_safe syslog_tag_mysqld_safe=mysqld_safe
trap '' 1 2 3 15 # we shouldn't let anyone kill us
# MySQL-specific environment variable. First off, it's not really a umask, # MySQL-specific environment variable. First off, it's not really a umask,
# it's the desired mode. Second, it follows umask(2), not umask(3) in that # it's the desired mode. Second, it follows umask(2), not umask(3) in that
...@@ -160,7 +159,7 @@ eval_log_error () { ...@@ -160,7 +159,7 @@ eval_log_error () {
# sed buffers output (only GNU sed supports a -u (unbuffered) option) # sed buffers output (only GNU sed supports a -u (unbuffered) option)
# which means that messages may not get sent to syslog until the # which means that messages may not get sent to syslog until the
# mysqld process quits. # mysqld process quits.
cmd="$cmd 2>&1 | logger -t '$syslog_tag_mysqld' -p daemon.error" cmd="$cmd 2>&1 | logger -t '$syslog_tag_mysqld' -p daemon.error & wait"
;; ;;
*) *)
echo "Internal program error (non-fatal):" \ echo "Internal program error (non-fatal):" \
...@@ -877,6 +876,13 @@ then ...@@ -877,6 +876,13 @@ then
exit 1 exit 1
fi fi
#
# From now on, we catch signals to do a proper shutdown of mysqld
# when signalled to do so.
#
trap '/usr/bin/mysqladmin --defaults-extra-file=/etc/mysql/debian.cnf refresh & wait' 1 # HUP
trap '/usr/bin/mysqladmin --defaults-extra-file=/etc/mysql/debian.cnf shutdown' 2 3 15 # INT QUIT and TERM
# #
# Uncomment the following lines if you want all tables to be automatically # Uncomment the following lines if you want all tables to be automatically
# checked and repaired during startup. You should add sensible key_buffer # checked and repaired during startup. You should add sensible key_buffer
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment