GNU bug report logs - #77634
[shepherd] Test failures on GNU/Hurd

Previous Next

Package: guix;

Reported by: yelninei <at> tutamail.com

Date: Tue, 8 Apr 2025 08:44:02 UTC

Severity: normal

Done: Ludovic Courtès <ludo <at> gnu.org>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: yelninei <at> tutamail.com
To: Ludovic Courtès <ludo <at> gnu.org>
Cc: 77634 <77634 <at> debbugs.gnu.org>
Subject: bug#77634: [shepherd] Test failures on GNU/Hurd
Date: Sun, 20 Apr 2025 13:34:28 +0200 (CEST)
Hello,

Apr 19, 2025, 20:42 by ludo <at> gnu.org:

> Hi again,
>
> yelninei <at> tutamail.com writes:
>
>> Some minor other things:
>> -  Currently the NULL byte from the sender is added into the log
>> message, might be worth filtering out
>> - "herd status syslogd" does not show the endpoints and
>> kernel-log-file the syslog is reading from
>> - the shepherd package from the shepherd channel in
>> 'set-fibers-directory sets fibers ccache dir also to the fibers source
>> dir
>> - I am unable to cross compile shepehrd from git with guix because of help2man
>> - the guix shepherd-syslog service currently does not expose setting
>> the endpoints and kernel-log-file (currently on my childhurd this
>> would be /dev/klog instead of /dev/kmsg)
>>
>
> All good points!  Most of these are now fixed on the Shepherd side:
>
> 48e53a4 guix: Record the right Fibers .go file directory.
> 98878a7 system-log: Serialize information about sockets and the kernel log file.
> be57f65 system-log: Close input file on end-of-file.
> 21bd4ec system-log: Print “localhost” for messages received over AF_UNIX sockets.
> 1ad90aa system-log: Read kernel messages from /dev/klog on the Hurd.
>

Great, thanks.

The last thing that still needs fixing is the message-destination procedure in the system-log.sh test. Currently It sends all messages to the $syslog_remote_file if the message has a sender, but arguably the (null) AF_UNIX sockets are not remote.

After I changed that I was able to finally build shepherd with all non skipped tests passing.

I then tried the shepherd syslogd on the childhurd but some things were not quite right:
- the /dev/klog messages are being logged but were missing the %kernel-prefix, i dont think this is a  problem with shepherd.
- I saw no syslog messages in /var/log/messages, i.e. from sshd or a user shepherd logging to syslog. It just seems to stop logging to the main log file entirely after finishing with /dev/klog.
Any ideas?

> Regarding cross-compilation, here’s a protip:
>
> guix build -L $PWD/.guix/modules shepherd <at> 1.0.99-tarball \
> --target=i586-pc-gnu
>
> It works because it first builds the tarball, which includes
> pre-generated man pages, and then uses it as the source of the Shepherd
> being cross-compiled.
>
This even works in the childhurd operating system record and I can just use that package instead of the manual "make dist" and  source override I did before.

> Thanks a lot for the detailed bug reports and suggestions; it’s much
> appreciated!
>

Thank you for making shepherd very approachable. I had no issues understanding how the syslog service is supposed to work and hunt down the bug.


> Ludo’.
>





This bug report was last modified 23 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.