[Bug 1991436] Re: "invalid argument" error from logger command when passing messages via STDIN
xhienne
1991436 at bugs.launchpad.net
Sat Jun 24 17:10:58 UTC 2023
I'm pretty sure this bug is caused by this issue:
https://github.com/util-linux/util-linux/issues/2336
TLDR: when using the --id=NNN parameter, logger sends random UID and GID
along with the PID you specify on the command line.
Those UID/GID probably don't exist on your machine/container and you are
probably using some LSM module (like AppArmor, SELinux, etc) that checks
the validity of the credentials sent through the sendmsg() syscall and
thus denies the call with EINVAL.
You might want to test the patch I posted on github.
** Bug watch added: github.com/util-linux/util-linux/issues #2336
https://github.com/util-linux/util-linux/issues/2336
--
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to the bug report.
https://bugs.launchpad.net/bugs/1991436
Title:
"invalid argument" error from logger command when passing messages via
STDIN
Status in util-linux package in Ubuntu:
Triaged
Bug description:
Steps to reproduce:
apt-get install lxd-installer
lxd init
lxc launch ubuntu:jammy ct0
lxc exec ct0 -- bash
Then within the container run
echo foo | logger --id="$$"
Note: the command may work the first time, but subsequent invocations
then produced the error described in my bug report.
(original report follows)
-----
When invoking the `logger` command on Ubuntu Jammy (bsdutils 2.37.2)
with explicit PID and passing messages via STDIN
```
echo "some message" | logger -p local0.info --id="$$"
```
the command produces the following error instead of sending the
message to syslog:
> logger: send message failed: Invalid argument
The error does not appear when the message is passed as an argument:
```
logger -p local0.info --id="$$" "some message" # this works!
```
When using process substitution the error only appears for the first
log message:
```
exec > >(logger -p local0.info --id="$$")
echo "first message" # throws error, message not logged
echo "second message" # no error, message logged correctly
```
The issue does not exist in older versions (e.g. Ubuntu Xenial,
bsdutils 2.27.1).
Workaround: Omit `--id` and include the PID in a tag.
```
echo "some message" | logger -p local0.info -t "foo[$$]"
```
Expected Behavior
-----------------
All messages passed via STDIN should be sent to syslog without
throwing an error.
OS Release
----------
Description: Ubuntu 22.04 LTS
Release: 22.04
Package Version
---------------
bsdutils:
Installed: 2.37.2-4ubuntu3
Candidate: 2.37.2-4ubuntu3
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/util-linux/+bug/1991436/+subscriptions
More information about the foundations-bugs
mailing list