[rabbitmq-server] Add systemd notify support patch (RHBZ#1103524)

John Eckersberg jeckersb at fedoraproject.org
Wed Jul 2 15:41:29 UTC 2014


commit eea61e0a21653cce528bffe564b20f7e50bcd098
Author: John Eckersberg <jeckersb at redhat.com>
Date:   Wed Jul 2 11:40:45 2014 -0400

    Add systemd notify support patch (RHBZ#1103524)

 ...mq-server-0001-Add-systemd-notify-support.patch |   46 ++++++++++++++++++++
 rabbitmq-server.service                            |    8 +---
 rabbitmq-server.spec                               |   10 ++++-
 3 files changed, 56 insertions(+), 8 deletions(-)
---
diff --git a/rabbitmq-server-0001-Add-systemd-notify-support.patch b/rabbitmq-server-0001-Add-systemd-notify-support.patch
new file mode 100644
index 0000000..e16e492
--- /dev/null
+++ b/rabbitmq-server-0001-Add-systemd-notify-support.patch
@@ -0,0 +1,46 @@
+From 7c4364a25d6b42df1624cb223b83f053f1a1b70a Mon Sep 17 00:00:00 2001
+From: John Eckersberg <jeckersb at redhat.com>
+Date: Mon, 16 Jun 2014 14:57:27 -0400
+Subject: [PATCH 1/1] Add systemd notify support
+
+Conflicts:
+	src/rabbit.erl
+---
+ src/rabbit.erl | 17 +++++++++++++++++
+ 1 file changed, 17 insertions(+)
+
+diff --git a/src/rabbit.erl b/src/rabbit.erl
+index 2baec88..8f52d16 100644
+--- a/src/rabbit.erl
++++ b/src/rabbit.erl
+@@ -336,6 +336,7 @@ boot() ->
+                                                                   false),
+                      ok = app_utils:start_applications(
+                             StartupApps, fun handle_app_error/2),
++		     ok = notify_startup(),
+                      ok = log_broker_started(Plugins)
+              end).
+ 
+@@ -774,3 +775,19 @@ start_fhc() ->
+     rabbit_sup:start_restartable_child(
+       file_handle_cache,
+       [fun rabbit_alarm:set_alarm/1, fun rabbit_alarm:clear_alarm/1]).
++
++have_systemd_notify() ->
++    try sd_notify:module_info() of
++        _InfoList ->
++            true
++    catch
++        _:_ ->
++            false
++    end.
++
++notify_startup() ->
++    case have_systemd_notify() of
++        true ->
++            sd_notify:sd_notify(0, "READY=1");
++        _ -> ok
++    end.
+-- 
+1.9.0
+
diff --git a/rabbitmq-server.service b/rabbitmq-server.service
index 193661d..90f1553 100644
--- a/rabbitmq-server.service
+++ b/rabbitmq-server.service
@@ -3,18 +3,12 @@ Description=RabbitMQ broker
 After=syslog.target network.target
 
 [Service]
-Type=simple
+Type=notify
 User=rabbitmq
 Group=rabbitmq
-Environment=RABBITMQ_PID_FILE=/var/run/rabbitmq/pid
 WorkingDirectory=/var/lib/rabbitmq
-# Ensure cookie is created to avoid race
-# See https://bugzilla.redhat.com/show_bug.cgi?id=1059913
-ExecStartPre=-/bin/sh -c "/usr/lib/rabbitmq/bin/rabbitmqctl status > /dev/null 2>&1"
 ExecStart=/usr/lib/rabbitmq/bin/rabbitmq-server
-ExecStartPost=/usr/lib/rabbitmq/bin/rabbitmqctl wait /var/run/rabbitmq/pid
 ExecStop=/usr/lib/rabbitmq/bin/rabbitmqctl stop
-ExecStopPost=/usr/bin/rm /var/run/rabbitmq/pid
 
 [Install]
 WantedBy=multi-user.target
diff --git a/rabbitmq-server.spec b/rabbitmq-server.spec
index ac4f70e..b60196f 100644
--- a/rabbitmq-server.spec
+++ b/rabbitmq-server.spec
@@ -3,7 +3,7 @@
 
 Name: rabbitmq-server
 Version: 3.1.5
-Release: 8%{?dist}
+Release: 9%{?dist}
 License: MPLv1.1
 Group: Development/Libraries
 Source: http://www.rabbitmq.com/releases/rabbitmq-server/v%{version}/%{name}-%{version}.tar.gz
@@ -26,6 +26,7 @@ Requires: erlang-mnesia%{?_isa} >= %{erlang_minver}
 Requires: erlang-os_mon%{?_isa} >= %{erlang_minver}
 Requires: erlang-public_key%{?_isa} >= %{erlang_minver}
 Requires: erlang-sasl%{?_isa} >= %{erlang_minver}
+Requires: erlang-sd_notify%{?_isa}
 Requires: erlang-ssl%{?_isa} >= %{erlang_minver}
 Requires: erlang-stdlib%{?_isa} >= %{erlang_minver}
 Requires: erlang-tools%{?_isa} >= %{erlang_minver}
@@ -52,6 +53,9 @@ Requires(preun):initscripts
 # https://bugzilla.redhat.com/show_bug.cgi?id=1032595#c8
 Patch0: rabbitmq-probe-ephemeral-port.patch
 
+# https://bugzilla.redhat.com/show_bug.cgi?id=1103524
+Patch1: rabbitmq-server-0001-Add-systemd-notify-support.patch
+
 %description
 RabbitMQ is an implementation of AMQP, the emerging standard for high
 performance enterprise messaging. The RabbitMQ server is a robust and
@@ -70,6 +74,7 @@ scalable implementation of an AMQP broker.
 %prep
 %setup -q
 %patch0 -p1
+%patch1 -p1
 
 %build
 cp %{S:2} %{_rabbit_wrapper}
@@ -200,6 +205,9 @@ done
 rm -rf %{buildroot}
 
 %changelog
+* Wed Jul 02 2014 John Eckersberg <jeckersb at redhat.com> - 3.1.5-9
+- Add systemd notify support (RHBZ#1103524)
+
 * Sun Jun 08 2014 Fedora Release Engineering <rel-eng at lists.fedoraproject.org> - 3.1.5-8
 - Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
 


More information about the scm-commits mailing list