NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

bin/60622: syslogd rc.d script is slow, does too much work in the common case



>Number:         60622
>Category:       bin
>Synopsis:       syslogd rc.d script is slow, does too much work in the common case
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    bin-bug-people
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Thu Aug 20 15:05:01 +0000 2026
>Originator:     Jason Thorpe
>Release:        NetBSD 11.99.7
>Organization:
Retrogrouches'R'Us
>Environment:
NetBSD icarus 11.99.7 NetBSD 11.99.7 (PHAETHON1) #154: Fri Aug  7 14:45:49 PDT 2026  thorpej@dhcp-105.ktnet:/Users/thorpej/NetBSD/current/src/sys/arch/hb68k/compile/PHAETHON1 hb68k

icarus# sysctl hw.machine_arch
hw.machine_arch = m68000
icarus# 

Issue also observed on NetBSD/shark and NetBSD/alpha.
>Description:
The syslogd rc.d script performs a bunch of work that not needed in the common (i.e. default) case.

The syslogd script provides a precmd that does:

- Installation of transitional symlink to accommodate old syslogd binaries.
- Creation and population of a socket list file that specifies the sockets syslogd should listen to.  This file is to accommodate services that run in a chroot environment.

The former step seems unnecessary (you're installing a new rc.d script for syslogd without installing a new syslogd binary?)

The latter step is where the expense is.  The script runs rcorder to obtain a list of services that specify the "chrootdir" keyword, and then does an is-enabled check.  Each one of these is-enabled checks is done within a subshell.  If is-enabled is true, then the service's chroot environment is added to the list of syslogd sockets.

In addition to being unnessary work in the common case where you're not running a bunch of chroot'd services, those is-enabled checks are actually not strictly correct, making assumptions about the conventions those scripts use.  It also misses scripts if additional rc_directories are configured.
>How-To-Repeat:
Boot a slow system.  Wonder why "syslogd" takes so long.
>Fix:
Not provided here.  Ultimately, I think a discussion should be had about where a new mechanism should be provided for communication with syslogd that doesn't require a plethora of file system objects to be created just to accommodate services running in a chroot environment.




Home | Main Index | Thread Index | Old Index