[debian-mysql] Bug#810968: Bug#810968: Bug#810968: mariadb-server-10.0: Logrotate exists 1 if a non-debian mysqld is running (e.g. containerized mysqld)
Sergey Vojtovich
svoj at mariadb.org
Tue Mar 8 12:52:46 UTC 2016
Hi Lennart,
I adjusted your patch a bit, it seem to work well for me. Could you please
verify if you're fine with the attached version and it works for you too?
On Mon, Mar 07, 2016 at 04:35:43PM +0100, Lennart Weller wrote:
> On Mon, Mar 07, 2016 at 06:37:49PM +0400, Sergey Vojtovich wrote:
> > Existence of pid-file is a sure sign that there's mysqld running, the only
> > exception is mysqld crash. What do you think about skipping this check?
> >
> > I'd also suggest to turn things around and check for pid-file first and then
> > just run "MYADMIN flush-logs" allowing it to return error in case of failure.
>
> Yep. Switched the order for this one. But mysqladmin does not return 1
> when it fails to connect. Did some additional testing. For now I put it
> back to the way it was in the original logrotate and just check if
> stdout/stderr of the command is null.
> This probably merits a second bug report.
You mean "$($MYADMIN flush-logs)" doesn't return 1? I just tested it on my side
and got exit status 1.
Thanks,
Sergey
-------------- next part --------------
diff --git a/debian/mariadb-server-10.0.mysql-server.logrotate b/debian/mariadb-server-10.0.mysql-server.logrotate
index 789ad35..a19e9ec 100644
--- a/debian/mariadb-server-10.0.mysql-server.logrotate
+++ b/debian/mariadb-server-10.0.mysql-server.logrotate
@@ -10,18 +10,11 @@
compress
sharedscripts
postrotate
- test -x /usr/bin/mysqladmin || exit 0
+ test -x /usr/bin/mysqladmin || exit 0
- # If this fails, check debian.conf!
- MYADMIN="/usr/bin/mysqladmin --defaults-file=/etc/mysql/debian.cnf"
- if [ -z "`$MYADMIN ping 2>/dev/null`" ]; then
- # Really no mysqld or rather a missing debian-sys-maint user?
- # If this occurs and is not a error please report a bug.
- if ps cax | grep -q mysqld; then
- exit 1
- fi
- else
- $MYADMIN flush-logs
- fi
+ if [ -f `my_print_defaults --mysqld | grep -oP "pid-file=\K[^$]+"` ]; then
+ # If this fails, check debian.conf!
+ mysqladmin --defaults-file=/etc/mysql/debian.cnf flush-logs
+ fi
endscript
}
More information about the pkg-mysql-maint
mailing list