[Bug 2064096] Re: rsyslog service timeout on noble numbat

Sergio Durigan Junior 2064096 at bugs.launchpad.net
Wed May 1 01:30:11 UTC 2024


Andreas and I spent some time this afternoon investigating this issue.
Here are our findings.

First, we noticed that the paths being reported by apparmor on dmesg
appear to be relative to /run.  This is just an impression, though: I
believe that, for some reason, apparmor/systemd/something-else is
actually seeing the paths as "/systemd/notify" instead of
"/run/systemd/notify".  Therefore, we decided to try to list those paths
inside the apparmor profile, like:

  /systemd/journal/dev-log     rwkl,
  /systemd/notify      rwkl,

Note that we're using "rwkl" just because we don't want to deal with
limiting the scope of each access.

After adding these paths to /etc/apparmor.d/usr.sbin.rsyslogd and
reloading the profile, the service can finally be (re)started.  This
indicates that there's a discrepancy between the paths seeing by
apparmor/systemd/Linux and those seeing by the userspace application.

With that in mind, our next idea was to try to use "systemd-run" to
mimic what's happening with rsyslogd.  This could help us determine
which component is problematic, but unfortunately we were unable to make
the failure happen.  We tried many combinations of commands; some of
them are listed below:

# Try to "ls" the notify socket using different paths
systemd-run -p AppArmorProfile=rsyslogd ls /run/systemd/notify
systemd-run -p AppArmorProfile=rsyslogd ls /systemd/notify

# Likewise, but running the command using the syslog user
systemd-run --uid 102 -p AppArmorProfile=rsyslogd ls /run/systemd/notify
systemd-run --uid 102 -p AppArmorProfile=rsyslogd ls /systemd/notify

Strangely, "ls" was able to properly list the contents of
/run/systemd/notify on both cases (which it shouldn't, because the
apparmor profile doesn't allow it).  It also reported that
"/systemd/notify", which is correct but unexpected (because we thought
that systemd might be the problematic component which doesn't use "/run"
in the paths).  We also double checked and confirmed that the processes
started by "systemd-run" have "systemd" as their parent, so in theory we
should have seen the same problem here.

There is also the fact that these file accesses are being denied even
when the apparmor profile is running in complain mode.  AFAIU, this
shouldn't happen.  Unless apparmor is affecting the path resolution that
happens when the service tries to connect to the socket, effectively
mangling the final path...  but that would be very weird, I believe.

Either way, it is unclear:

1) Why we're seeing these "partial" paths in the logs.

2) Why these accesses are being denied even when the apparmor profile is
in complain mode.

3) Why "systemd-run" can't seem to reproduce the problem.

-- 
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to rsyslog in Ubuntu.
https://bugs.launchpad.net/bugs/2064096

Title:
  rsyslog service timeout on noble numbat

Status in rsyslog package in Ubuntu:
  Confirmed

Bug description:
  This might be related to #2064088

  The rsyslog service is continually timing out and restarting. If I use
  a service drop-in file and change the 'Type' from 'notify' to
  'simple', the service starts and appears to work normally.

  In the journal, I can see the attached apparmor errors. I can't make
  sense of them, but if it's a similar issue to #2064088, then I suspect
  apparmor is preventing the systemd notify function from alerting
  systemd that the service is up and running.

  ProblemType: Bug
  DistroRelease: Ubuntu 24.04
  Package: rsyslog 8.2312.0-3ubuntu9
  ProcVersionSignature: Ubuntu 6.8.0-31.31-generic 6.8.1
  Uname: Linux 6.8.0-31-generic x86_64
  ApportVersion: 2.28.1-0ubuntu2
  Architecture: amd64
  CasperMD5CheckMismatches: ./boot/grub/grub.cfg
  CasperMD5CheckResult: fail
  CurrentDesktop: ubuntu:GNOME
  Date: Mon Apr 29 10:37:46 2024
  ProcEnviron:
   LANG=en_GB.UTF-8
   PATH=(custom, no user)
   SHELL=/bin/bash
   TERM=xterm-256color
   XDG_RUNTIME_DIR=<set>
  SourcePackage: rsyslog
  UpgradeStatus: No upgrade log present (probably fresh install)

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




More information about the foundations-bugs mailing list