Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 30 Aug 2015 15:59:46 +0000
From:      bugzilla-noreply@freebsd.org
To:        freebsd-bugs@FreeBSD.org
Subject:   [Bug 202726] rcorder: Circular dependency on provision `mountcritremote' in file `/etc/rc.d/ldconfig'.
Message-ID:  <bug-202726-8-Tpliax5rHS@https.bugs.freebsd.org/bugzilla/>
In-Reply-To: <bug-202726-8@https.bugs.freebsd.org/bugzilla/>
References:  <bug-202726-8@https.bugs.freebsd.org/bugzilla/>

next in thread | previous in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=202726

Jilles Tjoelker <jilles@FreeBSD.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |jilles@FreeBSD.org

--- Comment #1 from Jilles Tjoelker <jilles@FreeBSD.org> ---
Having a cyclic dependency in rc.d is bad because it makes it hard to predict
in what order things are started.

The cycle here is:

* ldconfig depends on mountcritremote via REQUIRE: line in ldconfig. This is
needed to allow /usr/local etc to be NFS-mounted on systems that aren't
"diskless". Perhaps that can be dropped. The actual access happens to allow for
libdata/ldconfig files and aout libraries; if those didn't exist, it would be
possible to change ldconfig to write pathnames into /var/run/ld-elf.so.hints
without checking for existence.

* mountcritremote depends on devd via BEFORE: line in devd. This is clearly
correct, to allow mounting filesystems via devices that need devd to load their
driver or do other setup.

* devd depends on ldconfig via REQUIRE: line in devd. This is new, to allow
calling /usr/local binaries from devd actions.

There seem valid use cases for all three dependencies, but not all at the same
time. The static dependency system is too crude to handle it.

Doing it dynamically seems hard as well -- how should devd know that it needs
to wait for ldconfig before running a particular action?

Alternatively, we could run ldconfig twice and satisfy all three dependencies
to some degree (obviously, an action to bring up a device needed for some
filesystem cannot use libraries on that filesystem).

-- 
You are receiving this mail because:
You are the assignee for the bug.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-202726-8-Tpliax5rHS>