[MDEV-5579] rpm postun scriptlet leaks exit code to rpm Created: 2014-01-28  Updated: 2014-02-21  Resolved: 2014-02-21

Status: Closed
Project: MariaDB Server
Component/s: None
Affects Version/s: 5.5.35
Fix Version/s: 5.5.36

Type: Bug Priority: Major
Reporter: Sergei Golubchik Assignee: Sergei Golubchik
Resolution: Fixed Votes: 1
Labels: packaging


 Description   

We use the following postun scriptlet:

if [ $1 -ge 1 ]; then
  if [ -x %{_sysconfdir}/init.d/mysql ] ; then
    # only restart the server if it was alredy running
    %{_sysconfdir}/init.d/mysql status > /dev/null 2>&1 && \
    %{_sysconfdir}/init.d/mysql restart
  fi
fi

The problem is that A && B construct, while it only runs B if A succeeds, it also sets the exit code to that of A, if A fails.

That is, if mysql status fails, the scriptlet exists with a non-zero code, and rpm treats it as a failure.

Possible fix: use if A; then B; fi instead of A && B.


Generated at Thu Feb 08 07:05:27 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.