From owner-freebsd-bugs@freebsd.org Sun Aug 30 15:59:46 2015 Return-Path: Delivered-To: freebsd-bugs@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C96589C6168 for ; Sun, 30 Aug 2015 15:59:46 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: from kenobi.freebsd.org (kenobi.freebsd.org [IPv6:2001:1900:2254:206a::16:76]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 9B874885 for ; Sun, 30 Aug 2015 15:59:46 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: from bugs.freebsd.org ([127.0.1.118]) by kenobi.freebsd.org (8.15.2/8.15.2) with ESMTP id t7UFxkCA089808 for ; Sun, 30 Aug 2015 15:59:46 GMT (envelope-from bugzilla-noreply@freebsd.org) 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'. Date: Sun, 30 Aug 2015 15:59:46 +0000 X-Bugzilla-Reason: AssignedTo X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: Base System X-Bugzilla-Component: conf X-Bugzilla-Version: 11.0-CURRENT X-Bugzilla-Keywords: regression X-Bugzilla-Severity: Affects Only Me X-Bugzilla-Who: jilles@FreeBSD.org X-Bugzilla-Status: New X-Bugzilla-Priority: --- X-Bugzilla-Assigned-To: freebsd-bugs@FreeBSD.org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: cc Message-ID: In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit X-Bugzilla-URL: https://bugs.freebsd.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-BeenThere: freebsd-bugs@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: Bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 30 Aug 2015 15:59:46 -0000 https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=202726 Jilles Tjoelker changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |jilles@FreeBSD.org --- Comment #1 from Jilles Tjoelker --- 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.