[JIRA] Created: (SSPCPP-411) openSUSE 12.1 erases /var/run at each reboot, so shibd fails to start

mgk25@cam.ac.uk (JIRA) noreply at shibboleth.net
Tue Dec 20 18:41:26 GMT 2011


openSUSE 12.1 erases /var/run at each reboot, so shibd fails to start
---------------------------------------------------------------------

                 Key: SSPCPP-411
                 URL: https://issues.shibboleth.net/jira/browse/SSPCPP-411
             Project: Shibboleth SP - C++
          Issue Type: Bug
      Security Level: Standard (Standard bug, may impact functionality but does not represent a security vulnerability )
          Components: Installation / Packaging
    Affects Versions: 2.4.3
         Environment: openSUSE Linux 12.1
            Reporter: mgk25 at cam.ac.uk
            Assignee: Scott Cantor


Problem: shibd tries to create files and sockets in /var/run/shibboleth. This directory is created once when the RPM is installed, but in openSUSE Linux 12.1 /var/run (as well as /var/lock) is now mounted on tmpfs, and therefore emptied automatically at each reboot.

How to reproduce:

- Install shibboleth-2.4.3-3.1.i586.rpm
- "/etc/init.d/shibd start" works fine
- reboot
- "/etc/init.d/shibd start" fails with

  2011-12-19 17:58:20 ERROR Shibboleth.Listener : socket call resulted in error (2): no message
  2011-12-19 17:58:20 CRIT Shibboleth.Listener : failed to bind to socket.

in /var/log/shibboleth/shibd.log.

Suggested fix/workaround: Add the line

  [ -d /var/run/shibboleth ] || mkdir /var/run/shibboleth

to /etc/init.d/shibd, or equivalent, to recreate (as root) that directory each
time before starting shibd, if necessary.

See also: http://blog.stastnarodina.com/honza-en/spot/shibboleth-ubuntu/

Related considerations:

- According to

    http://www.pathname.com/fhs/pub/fhs-2.3.html#THEVARHIERARCHY

  the directory /var/run is only meant for information related to
  currently running processes, which by definition can be discarded
  at each reboot, such as pids and sockets. For more long-term state,
  please consider using /var/cache or /var/lib instead.

- The above error message in /var/log/shibboleth/shibd.log could be
  improved by actually stating what went wrong in terms of file path
  and errno (here: ENOTDIR), e.g. "bind() cannot create
  /var/run/shibboleth/shibd.sock: not a directory"


--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira


More information about the commits mailing list