← Back to team overview

kernel-packages team mailing list archive

[Bug 1274444] Re: echo string to /dev/kmsg fails to appear on /var/log/syslog

 

Marking this as affecting trusty/precise because those series can run
3.5+ kernels.

** Description changed:

  [Impact]
  In the precise 3.2 series kernel writing strings to /dev/kmsg appears and dmesg and /var/log/syslog, in 3.5 series kernel this does not happen properly even with the equivalent userspace packages.
  
- I've already done a coarse bisect,
- works v3.4
- fails in v3.5-rc1
+ This is because the default facility number in the kernel has changed
+ from 0 to 1 for user-space generated kmsg entries. Because of this;
+ rsyslog (or any affected sysloggers) need to accept non-kernel facility
+ numbers.
+ 
+ This change was introduced by this commit:
+ 7ff9554bb578ba02166071d2d487b7fc7d860d62
  
  [Test Case]
  Run the following script as root:
  
  #!/bin/bash
  STRING=$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | head -c 32)
  > /var/log/syslog
  echo $STRING > /dev/kmsg
  sleep 5
  grep $STRING /var/log/syslog
  # This should return 0.
+ 
+ [Regression Potential]
+ Any scripts that rely on syslog output may finally see output produced by packages like init/systemd show up in syslog. This changes the default rsyslog.conf file settings but isn't a code change.

** Description changed:

  [Impact]
  In the precise 3.2 series kernel writing strings to /dev/kmsg appears and dmesg and /var/log/syslog, in 3.5 series kernel this does not happen properly even with the equivalent userspace packages.
  
  This is because the default facility number in the kernel has changed
  from 0 to 1 for user-space generated kmsg entries. Because of this;
  rsyslog (or any affected sysloggers) need to accept non-kernel facility
  numbers.
  
  This change was introduced by this commit:
  7ff9554bb578ba02166071d2d487b7fc7d860d62
  
  [Test Case]
  Run the following script as root:
  
  #!/bin/bash
  STRING=$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | head -c 32)
- > /var/log/syslog
+ # > /var/log/syslog # this isn't necessary
  echo $STRING > /dev/kmsg
  sleep 5
  grep $STRING /var/log/syslog
  # This should return 0.
  
  [Regression Potential]
  Any scripts that rely on syslog output may finally see output produced by packages like init/systemd show up in syslog. This changes the default rsyslog.conf file settings but isn't a code change.

** Description changed:

  [Impact]
  In the precise 3.2 series kernel writing strings to /dev/kmsg appears and dmesg and /var/log/syslog, in 3.5 series kernel this does not happen properly even with the equivalent userspace packages.
  
  This is because the default facility number in the kernel has changed
  from 0 to 1 for user-space generated kmsg entries. Because of this;
  rsyslog (or any affected sysloggers) need to accept non-kernel facility
  numbers.
  
- This change was introduced by this commit:
+ This change was introduced by this commit (in the linux kernel):
  7ff9554bb578ba02166071d2d487b7fc7d860d62
  
  [Test Case]
  Run the following script as root:
  
  #!/bin/bash
  STRING=$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | head -c 32)
  # > /var/log/syslog # this isn't necessary
  echo $STRING > /dev/kmsg
  sleep 5
  grep $STRING /var/log/syslog
  # This should return 0.
  
  [Regression Potential]
  Any scripts that rely on syslog output may finally see output produced by packages like init/systemd show up in syslog. This changes the default rsyslog.conf file settings but isn't a code change.

** Also affects: rsyslog (Ubuntu Precise)
   Importance: Undecided
       Status: New

** Also affects: linux (Ubuntu Precise)
   Importance: Undecided
       Status: New

** Also affects: rsyslog (Ubuntu Trusty)
   Importance: Undecided
       Status: New

** Also affects: linux (Ubuntu Trusty)
   Importance: Undecided
       Status: New

-- 
You received this bug notification because you are a member of Kernel
Packages, which is subscribed to linux in Ubuntu.
https://bugs.launchpad.net/bugs/1274444

Title:
  echo string to /dev/kmsg fails to appear on /var/log/syslog

Status in “linux” package in Ubuntu:
  Invalid
Status in “rsyslog” package in Ubuntu:
  In Progress
Status in “linux” source package in Precise:
  New
Status in “rsyslog” source package in Precise:
  New
Status in “linux” source package in Trusty:
  New
Status in “rsyslog” source package in Trusty:
  New

Bug description:
  [Impact]
  In the precise 3.2 series kernel writing strings to /dev/kmsg appears and dmesg and /var/log/syslog, in 3.5 series kernel this does not happen properly even with the equivalent userspace packages.

  This is because the default facility number in the kernel has changed
  from 0 to 1 for user-space generated kmsg entries. Because of this;
  rsyslog (or any affected sysloggers) need to accept non-kernel
  facility numbers.

  This change was introduced by this commit (in the linux kernel):
  7ff9554bb578ba02166071d2d487b7fc7d860d62

  [Test Case]
  Run the following script as root:

  #!/bin/bash
  STRING=$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | head -c 32)
  # > /var/log/syslog # this isn't necessary
  echo $STRING > /dev/kmsg
  sleep 5
  grep $STRING /var/log/syslog
  # This should return 0.

  [Regression Potential]
  Any scripts that rely on syslog output may finally see output produced by packages like init/systemd show up in syslog. This changes the default rsyslog.conf file settings but isn't a code change.

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


References