← Back to team overview

touch-packages team mailing list archive

[Bug 1382510] Re: systemd-logind upstart script breaks if libpam-systemd is installed for more than one arch

 

** Description changed:

  /etc/init/systemd-logind.conf contains the following:
  
-     # only start if PAM module is actually available, not if libpam-systemd is
-     # removed but not purged
-     [ -e /lib/*/security/pam_systemd.so ] || { stop; exit 0; }
+     # only start if PAM module is actually available, not if libpam-systemd is
+     # removed but not purged
+     [ -e /lib/*/security/pam_systemd.so ] || { stop; exit 0; }
  
  Which is a wrongly written script. It assumes that there is at most one file matching the wildcard. It is not true in my system.
  If your system have both libpam-systemd:amd64 and libpam-systemd:i386 then:
  
  # ls /lib/*/security/pam_systemd.so
  /lib/i386-linux-gnu/security/pam_systemd.so  /lib/x86_64-linux-gnu/security/pam_systemd.so
  
  and you get the following:
  
- # cat /var/log/upstart/systemd-logind.log 
+ # cat /var/log/upstart/systemd-logind.log
  /proc/self/fd/9: 4: [: /lib/i386-linux-gnu/security/pam_systemd.so: unexpected operator
  systemd-logind stop/pre-start, process 2462
  
  systemd-logind does not start at all. This causes many bad things to
  happen later.
  
  There are many ways to fix this. For my purposes I removed the faulty
  line from the file. I don't know what is the expected behaviour. Maybe
  this one:
  
  ls /lib/*/security/pam_systemd.so &> /dev/null || { stop; exit 0; }
  
+ This bug might be the root cause of other bugs. Like this one: #1372187
+ (and #1377727)
  
- This bug might be the root cause of other bugs. Like this one: #1372187 (and #1377727)
+ 
+ SRU TEST CASE
+ =============
+ - On an amd64 system, run "sudo apt-get install libpam-systemd:i386"
+ - Then run "sudo restart systemd-logind"
+ - On current trusty this will result in stop/waiting, with the error in /var/log/upstart/systemd-logind.log as above.
+ - With this fix this will result in start/running and no  error.
  
  
  My system info:
  
  # lsb_release -rd
  Description:	Ubuntu 14.04.1 LTS
  Release:	14.04
  # apt-cache policy libpam-systemd
  libpam-systemd:
-   Installed: 204-5ubuntu20.7
-   Candidate: 204-5ubuntu20.7
+   Installed: 204-5ubuntu20.7
+   Candidate: 204-5ubuntu20.7

-- 
You received this bug notification because you are a member of Ubuntu
Touch seeded packages, which is subscribed to systemd in Ubuntu.
https://bugs.launchpad.net/bugs/1382510

Title:
  systemd-logind upstart script breaks if libpam-systemd is installed
  for more than one arch

Status in “systemd” package in Ubuntu:
  Fix Released
Status in “systemd” source package in Trusty:
  In Progress

Bug description:
  /etc/init/systemd-logind.conf contains the following:

      # only start if PAM module is actually available, not if libpam-systemd is
      # removed but not purged
      [ -e /lib/*/security/pam_systemd.so ] || { stop; exit 0; }

  Which is a wrongly written script. It assumes that there is at most one file matching the wildcard. It is not true in my system.
  If your system have both libpam-systemd:amd64 and libpam-systemd:i386 then:

  # ls /lib/*/security/pam_systemd.so
  /lib/i386-linux-gnu/security/pam_systemd.so  /lib/x86_64-linux-gnu/security/pam_systemd.so

  and you get the following:

  # cat /var/log/upstart/systemd-logind.log
  /proc/self/fd/9: 4: [: /lib/i386-linux-gnu/security/pam_systemd.so: unexpected operator
  systemd-logind stop/pre-start, process 2462

  systemd-logind does not start at all. This causes many bad things to
  happen later.

  There are many ways to fix this. For my purposes I removed the faulty
  line from the file. I don't know what is the expected behaviour. Maybe
  this one:

  ls /lib/*/security/pam_systemd.so &> /dev/null || { stop; exit 0; }

  This bug might be the root cause of other bugs. Like this one:
  #1372187 (and #1377727)

  
  SRU TEST CASE
  =============
  - On an amd64 system, run "sudo apt-get install libpam-systemd:i386"
  - Then run "sudo restart systemd-logind"
  - On current trusty this will result in stop/waiting, with the error in /var/log/upstart/systemd-logind.log as above.
  - With this fix this will result in start/running and no  error.


  My system info:

  # lsb_release -rd
  Description:	Ubuntu 14.04.1 LTS
  Release:	14.04
  # apt-cache policy libpam-systemd
  libpam-systemd:
    Installed: 204-5ubuntu20.7
    Candidate: 204-5ubuntu20.7

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/systemd/+bug/1382510/+subscriptions


References