Mailinglist Archive: opensuse-bugs (4202 mails)

< Previous Next >
[Bug 740724] New: High availability with pacemaker does not work, because systemd is not lsb compliant
  • From: bugzilla_noreply@xxxxxxxxxx
  • Date: Wed, 11 Jan 2012 09:46:39 +0000
  • Message-id: <bug-740724-21960@http.bugzilla.novell.com/>

https://bugzilla.novell.com/show_bug.cgi?id=740724

https://bugzilla.novell.com/show_bug.cgi?id=740724#c0


Summary: High availability with pacemaker does not work,
because systemd is not lsb compliant
Classification: openSUSE
Product: openSUSE 12.1
Version: Final
Platform: i586
OS/Version: Other
Status: NEW
Severity: Major
Priority: P5 - None
Component: Basesystem
AssignedTo: bnc-team-screening@xxxxxxxxxxxxxxxxxxxxxx
ReportedBy: another0003@xxxxxx
QAContact: qa@xxxxxxx
Found By: ---
Blocker: ---


User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101
Firefox/9.0.1

The startup of services is done through systemd in openSUSE 12.1. systemd
supports old lsb scripts, but is not fully lsb compliant in handling the
startup of those. The lsb standard for init scripts forces, that a status call
to a service that is not fully running does not return a status of 0, but
systemd does so.

For this reason the resource manager pacemaker for high availability systems
does not work, because it manages the services through the lsb scripts and they
must conform to the lsb standard for the resource monitoring to work. If
pacemaker makes a request to check the status of a resource and wants to know
if it has to be restarted because it crashed, it will not detect the crash
because systemd does continue to report a service status of 0, even if the
service has crashed.

In consequence that means that the two provided packages systemd and pacemaker
do not work together under openSUSE 12.1

Reproducible: Always

Steps to Reproduce:
The following steps require mysql

opensuse121:~ # rcmysql status
redirecting to systemctl
mysql.service - LSB: Start the MySQL database server
Loaded: loaded (/etc/init.d/mysql)
Active: inactive (dead) since Wed, 11 Jan 2012 10:33:27 +0100; 21s
ago
Process: 3770 ExecStop=/etc/init.d/mysql stop (code=exited,
status=0/SUCCESS)
Process: 2315 ExecStart=/etc/init.d/mysql start (code=exited,
status=0/SUCCESS)
CGroup: name=systemd:/system/mysql.service
opensuse121:~ # echo $?
3
opensuse121:~ # rcmysql start
redirecting to systemctl
opensuse121:~ # rcmysql status
redirecting to systemctl
mysql.service - LSB: Start the MySQL database server
Loaded: loaded (/etc/init.d/mysql)
Active: active (running) since Wed, 11 Jan 2012 10:34:02 +0100; 3s
ago
Process: 3770 ExecStop=/etc/init.d/mysql stop (code=exited,
status=0/SUCCESS)
Process: 3819 ExecStart=/etc/init.d/mysql start (code=exited,
status=0/SUCCESS)
CGroup: name=systemd:/system/mysql.service
+ 3867 /bin/sh /usr/bin/mysqld_safe --mysqld=mysqld
--user=mysql --pid-file=/var/run/mysql/mysqld.pid
--socket=/var/run/mysql/mysql.so...
+ 4194 /usr/sbin/mysqld --basedir=/usr
--datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --user=mysql
--log-error=/var/log...
opensuse121:~ # echo $?
0
opensuse121:~ # kill 3867 4194
opensuse121:~ # rcmysql status
redirecting to systemctl
mysql.service - LSB: Start the MySQL database server
Loaded: loaded (/etc/init.d/mysql)
Active: active (exited) since Wed, 11 Jan 2012 10:34:02 +0100; 20s
ago
Process: 3770 ExecStop=/etc/init.d/mysql stop (code=exited,
status=0/SUCCESS)
Process: 3819 ExecStart=/etc/init.d/mysql start (code=exited,
status=0/SUCCESS)
CGroup: name=systemd:/system/mysql.service
opensuse121:~ # echo $?
0
vcs-suse121x64-cl1:~ # mysql
ERROR 2002 (HY000): Can't connect to local MySQL server through socket
'/var/run/mysql/mysql.sock' (2)
opensuse121:~ # rcmysql stop
redirecting to systemctl
opensuse121:~ # rcmysql status
redirecting to systemctl
mysql.service - LSB: Start the MySQL database server
Loaded: loaded (/etc/init.d/mysql)
Active: inactive (dead) since Wed, 11 Jan 2012 10:34:29 +0100; 3s ago
Process: 4236 ExecStop=/etc/init.d/mysql stop (code=exited,
status=0/SUCCESS)
Process: 3819 ExecStart=/etc/init.d/mysql start (code=exited,
status=0/SUCCESS)
CGroup: name=systemd:/system/mysql.service
opensuse121:~ # echo $?
3

Actual Results:
opensuse121:~ # rcmysql status
redirecting to systemctl
mysql.service - LSB: Start the MySQL database server
Loaded: loaded (/etc/init.d/mysql)
Active: active (exited) since Wed, 11 Jan 2012 10:34:02 +0100; 20s
ago
Process: 3770 ExecStop=/etc/init.d/mysql stop (code=exited,
status=0/SUCCESS)
Process: 3819 ExecStart=/etc/init.d/mysql start (code=exited,
status=0/SUCCESS)
CGroup: name=systemd:/system/mysql.service
opensuse121:~ # echo $?
0

After a crash, still return a status of 0.

Expected Results:
opensuse121:~ # rcmysql status
redirecting to systemctl
mysql.service - LSB: Start the MySQL database server
Loaded: loaded (/etc/init.d/mysql)
Active: active (exited) since Wed, 11 Jan 2012 10:34:02 +0100; 20s
ago
Process: 3770 ExecStop=/etc/init.d/mysql stop (code=exited,
status=0/SUCCESS)
Process: 3819 ExecStart=/etc/init.d/mysql start (code=exited,
status=0/SUCCESS)
CGroup: name=systemd:/system/mysql.service
opensuse121:~ # echo $?
3 or 4

Should return a status code that shows up that the service is not running

For Fedora, a related problem has been reported here

https://bugzilla.redhat.com/show_bug.cgi?id=702621

In the following article it is mentioned, that pacemaker wont work with systemd
because it is not lsb compliant

http://fedoraproject.org/wiki/Features/pacemaker-cloud

--
Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.

< Previous Next >