From owner-freebsd-current@FreeBSD.ORG Wed Feb 25 22:19:52 2015 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 02FEF249 for ; Wed, 25 Feb 2015 22:19:52 +0000 (UTC) Received: from mail-ig0-x22c.google.com (mail-ig0-x22c.google.com [IPv6:2607:f8b0:4001:c05::22c]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id AB50B218 for ; Wed, 25 Feb 2015 22:19:51 +0000 (UTC) Received: by mail-ig0-f172.google.com with SMTP id l13so39499842iga.5 for ; Wed, 25 Feb 2015 14:19:51 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc:content-type; bh=ukSPhy/IUfHQzI3oMK9BE50Zk4z/JrEG4/qZjZH9B18=; b=C7ja/bTPW9+riCU2LD6L6dyYNVTocsTXuVR/RwiKhxClccwNOevOHRr1GnbjvmYtUn QsQ4uDq/sVwOcizvCDvhQH3LcToVAIp/5vGTj+Wb+KE0tl9X9pELjHvKNd9Gby4uo4bS KTAAc/J8NDRiPgMDDmRu1MRDdb1JWIh4mJHBJBwVXipn/YBhd1ZJimmSL3sNxG5IbnE4 +KKSK2GdU+2G5VK0wXUc+UnALaBK/7gyvBPohI/ovAzucChXzq5i42ULQveUebEdYdPE vsWzYZRvec04J0I9TrlyCJ9OcMep2mQK99hFBkDIF+m6X11xumDXcuZp33KjWaT5+6WF qTGw== X-Received: by 10.42.229.10 with SMTP id jg10mr6432909icb.62.1424902791137; Wed, 25 Feb 2015 14:19:51 -0800 (PST) MIME-Version: 1.0 Received: by 10.64.120.35 with HTTP; Wed, 25 Feb 2015 14:19:30 -0800 (PST) In-Reply-To: References: <64AF7708-217B-4AC0-A47A-AD1B0BFF7EDC@gmail.com> <885DA4D0-9644-4F06-97C9-04EAD7B4958C@gmail.com> From: Miguel Clara Date: Wed, 25 Feb 2015 22:19:30 +0000 Message-ID: Subject: Re: Shared object "libsodium.so.13" not found, required by "dnscrypt-proxy" To: Kevin Oberman Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-Content-Filtered-By: Mailman/MimeDel 2.1.18-1 Cc: freebsd-current , Garrett Cooper X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 25 Feb 2015 22:19:52 -0000 On Wed, Feb 25, 2015 at 9:58 PM, Kevin Oberman wrote: > On Tue, Feb 24, 2015 at 6:05 PM, Miguel Clara > wrote: > >> >> >> On Wed, Feb 25, 2015 at 1:58 AM, Miguel Clara >> wrote: >> >>> >>> On Wed, Feb 25, 2015 at 12:26 AM, Miguel Clara >>> wrote: >>> >>>> >>>> On Tue, Feb 24, 2015 at 11:11 PM, Kevin Oberman >>>> wrote: >>>> >>>>> On Tue, Feb 24, 2015 at 10:53 AM, Miguel Clara >>>> > wrote: >>>>> >>>>>> On Tue, Feb 24, 2015 at 6:13 PM, Garrett Cooper < >>>>>> yaneurabeya@gmail.com> >>>>>> wrote: >>>>>> >>>>>> > On Feb 24, 2015, at 6:35, Miguel Clara >>>>>> wrote: >>>>>> > >>>>>> > > ]# rcorder /etc/rc.d/* /usr/local/etc/rc.d/* >/dev/null >>>>>> > > rcorder: file `/usr/local/etc/rc.d/tcsd' is before unknown >>>>>> provision >>>>>> > `kerberos' >>>>>> > > rcorder: file `/usr/local/etc/rc.d/tcsd' is before unknown >>>>>> provision >>>>>> > `named' >>>>>> > > rcorder: file `/usr/local/etc/rc.d/dnscrypt-proxy' is before >>>>>> unknown >>>>>> > provision `unbound' >>>>>> > > rcorder: Circular dependency on file >>>>>> `/usr/local/etc/rc.d/webcamd'. >>>>>> > > rcorder: Circular dependency on provision `dbus' in file >>>>>> > `/usr/local/etc/rc.d/webcamd'. >>>>>> > > rcorder: Circular dependency on provision `ldconfig' in file >>>>>> > `/usr/local/etc/rc.d/dnscrypt-proxy'. >>>>>> > > rcorder: Circular dependency on provision `mountcritremote' in >>>>>> file >>>>>> > `/etc/rc.d/devfs'. >>>>>> > > rcorder: Circular dependency on provision `mountcritremote' in >>>>>> file >>>>>> > `/etc/rc.d/mdconfig2'. >>>>>> > > rcorder: Circular dependency on provision `mountcritremote' in >>>>>> file >>>>>> > `/etc/rc.d/newsyslog'. >>>>>> > > rcorder: Circular dependency on provision `mountcritremote' in >>>>>> file >>>>>> > `/etc/rc.d/syslogd'. >>>>>> > > rcorder: Circular dependency on provision `NETWORKING' in file >>>>>> > `/etc/rc.d/kdc'. >>>>>> > > rcorder: Circular dependency on provision `ldconfig' in file >>>>>> > `/etc/rc.d/SERVERS'. >>>>>> > > rcorder: Circular dependency on provision `mountcritremote' in >>>>>> file >>>>>> > `/etc/rc.d/archdep'. >>>>>> > > rcorder: Circular dependency on provision `mountcritremote' in >>>>>> file >>>>>> > `/etc/rc.d/SERVERS'. >>>>>> > > rcorder: requirement `tpmd' in file `/usr/local/etc/rc.d/tcsd' >>>>>> has no >>>>>> > providers. >>>>>> > > rcorder: Circular dependency on file `/usr/local/etc/rc.d/uuidd'= . >>>>>> > > rcorder: requirement `usbd' in file `/usr/local/etc/rc.d/hald' >>>>>> has no >>>>>> > providers. >>>>>> > > >>>>>> > > # rcorder /etc/rc.d/* /usr/local/etc/rc.d/* | awk >>>>>> > =E2=80=98/SERVERS|cleanvar|ldconfig|dbus/ { print NR, $0 }=E2=80= =99 >>>>>> > > rcorder: file `/usr/local/etc/rc.d/tcsd' is before unknown >>>>>> provision >>>>>> > `kerberos' >>>>>> > > rcorder: file `/usr/local/etc/rc.d/tcsd' is before unknown >>>>>> provision >>>>>> > `named' >>>>>> > > rcorder: file `/usr/local/etc/rc.d/dnscrypt-proxy' is before >>>>>> unknown >>>>>> > provision `unbound' >>>>>> > > rcorder: Circular dependency on file >>>>>> `/usr/local/etc/rc.d/webcamd'. >>>>>> > > rcorder: Circular dependency on provision `dbus' in file >>>>>> > `/usr/local/etc/rc.d/webcamd'. >>>>>> > > rcorder: Circular dependency on provision `ldconfig' in file >>>>>> > `/usr/local/etc/rc.d/dnscrypt-proxy'. >>>>>> > > rcorder: Circular dependency on provision `mountcritremote' in >>>>>> file >>>>>> > `/etc/rc.d/devfs'. >>>>>> > > rcorder: Circular dependency on provision `mountcritremote' in >>>>>> file >>>>>> > `/etc/rc.d/mdconfig2'. >>>>>> > > rcorder: Circular dependency on provision `mountcritremote' in >>>>>> file >>>>>> > `/etc/rc.d/newsyslog'. >>>>>> > > rcorder: Circular dependency on provision `mountcritremote' in >>>>>> file >>>>>> > `/etc/rc.d/syslogd'. >>>>>> > > rcorder: Circular dependency on provision `NETWORKING' in file >>>>>> > `/etc/rc.d/kdc'. >>>>>> > > rcorder: Circular dependency on provision `ldconfig' in file >>>>>> > `/etc/rc.d/SERVERS'. >>>>>> > > rcorder: Circular dependency on provision `mountcritremote' in >>>>>> file >>>>>> > `/etc/rc.d/archdep'. >>>>>> > > rcorder: Circular dependency on provision `mountcritremote' in >>>>>> file >>>>>> > `/etc/rc.d/SERVERS'. >>>>>> > > rcorder: requirement `tpmd' in file `/usr/local/etc/rc.d/tcsd' >>>>>> has no >>>>>> > providers. >>>>>> > > rcorder: Circular dependency on file `/usr/local/etc/rc.d/uuidd'= . >>>>>> > > rcorder: requirement `usbd' in file `/usr/local/etc/rc.d/hald' >>>>>> has no >>>>>> > providers. >>>>>> > > cleanvar: Command not found. >>>>>> > > dbus/: Command not found. >>>>>> > > >>>>>> > > Note that this is still with the change to dnscrypt-ptoxy REQUIR= E >>>>>> > (adding ldconfig) >>>>>> > >>>>>> > Your rcorder is 50 shades of broken :(. Please remove all local >>>>>> > modifications to scripts, then repost the output of the rcorder >>>>>> commands >>>>>> > again. I suspect what=E2=80=99s going wrong is the result of some = of my >>>>>> changes to >>>>>> > remove etc/rc.d based on build knobs=E2=80=A6 >>>>>> > Cheers, >>>>>> > >>>>>> >>>>>> So much like the movies them... damn.... :X >>>>>> >>>>>> I don't recall any changes to the rc.d scripts except the one to >>>>>> dnscrypt-proxy (adding the ldconfig REQUIRE) >>>>>> >>>>>> I also don't really know what to make of the output... expect this >>>>>> part: >>>>>> >>>>>> "Circular dependency on provision", but the man says: >>>>>> A set of files has a circular dependency which was detected while >>>>>> processing the stated condition. >>>>>> >>>>>> So it should mean that 'A' requires 'B' but 'B' requires 'A'... but >>>>>> this >>>>>> does not seem to be the case... >>>>>> >>>>>> I guess I'll have to go one by one and see if I can identify issue. >>>>>> But >>>>>> first I'll make sure the ports that use those rc.d scripts are up to >>>>>> date. >>>>>> >>>>> >>>>> Just to save a bit of time, many RC scripts are messed up at install >>>>> time. >>>>> >>>>> One of the worst I have is for security/trousers-tddl. It is a mess. >>>>> It wants kerberos and named, but most FreeBSD systems no longer run n= amed >>>>> or kerberos. As far as I can tell, no FreeBSD port provides a tpmd, s= o I >>>>> have no idea where the heck that comes from. >>>>> >>>>> hald wants usbd which has been obsolete for some years. Certainly no >>>>> providers any longer. I don't think that any supported version of Fre= eBSD >>>>> still has usbd, so any port requiring it should be fixed. >>>>> >>>>> Also, webcamd and dbus have a circular dependency. It really needs to >>>>> be fixed some time, but does not break anything. >>>>> >>>>> I suspect that whatever is causing the multiple circular dependencies >>>>> on mountcritremote might be tied to the issue. I don't see the obviou= s >>>>> problem here and I don't have it. Circular dependencies are a real pa= in to >>>>> track down as they are often not direct. A required E and G and B req= uires >>>>> A. But the rcorder only knows that. It does not report that E does re= quire >>>>> B and just reports that A is a circular dependency. (I hope that make= s some >>>>> sense.) >>>>> >>>>> Normally mountcritremote should be very soon after >>>>> NETWORKING...usually after NETWORKING and netwait. This means it shou= ld run >>>>> right after the network starts and before anything that depends on th= e >>>>> network. >>>>> rcorder /etc/rc.d/* /usr/local/etc/rc.d/* | less should show this wit= h >>>>> ldconfig right after mountcritremote. There is no reason that devfs, >>>>> syslogd or any of the others listed should precede mountcritremote! T= he >>>>> errors indicate that SOMETHING before NETWORKING and netwait is causi= ng all >>>>> of these other things to run and, BOOM, your script is firing off bef= ore >>>>> ldconfig is run. >>>>> >>>>> Good luck! It will likely be tedious, but looking at the output of >>>>> rcorder should point the finger in at least the right direction. Hete= is an >>>>> exerpt from mine in the area where these things belong: >>>>> /etc/rc.d/NETWORKING >>>>> /etc/rc.d/netwait >>>>> /etc/rc.d/mountcritremote >>>>> /etc/rc.d/ldconfig >>>>> /etc/rc.d/accounting >>>>> /etc/rc.d/newsyslog >>>>> /etc/rc.d/syslogd >>>>> /etc/rc.d/ntpdate >>>>> /etc/rc.d/rpcbind >>>>> /etc/rc.d/nfsclient >>>>> /etc/rc.d/devfs >>>>> /etc/rc.d/ipmon >>>>> /etc/rc.d/mdconfig2 >>>>> /etc/rc.d/kdc >>>>> >>>> >>>> Kevin... many thanks, for this I was really thinking the same... "I >>>> just installed the ports and the system was upgrade properly WTH did I= do >>>> wrong". >>>> >>>> I've reinstalled the the ports of the affected scripts to be sure I'm >>>> running the most updated version, I still see the issues so now I'lll = have >>>> to go one by one and see if I can fix them, or maybe start by moving t= hem >>>> elsewhere and run rcorder until its happy and then move back one by on= e and >>>> rcorder should start complaining... >>>> >>>> But just so I try to understand this better.... dbus and webcamd have = a >>>> circular dependency... is this beacause: >>>> webcamd requires "FILESYSTEMS netif dbus" >>>> dbus requires "DAEMON ldconfig" >>>> >>>> And then ldconfig also requires FILESYSTEMS? >>>> >>>> >>>> >>> Acctaully dnscrypt-proxy is running just after SERVERS and this require= s >>> ldconfig but does not run it before... Example: >>> >>> etc/rc.d/netif >>> /etc/rc.d/devd >>> /etc/rc.d/ipsec >>> rcorder: Circular dependency on provision `mountcritremote' in file >>> `/etc/rc.d/devfs'. >>> /etc/rc.d/devfs >>> /etc/rc.d/ipmon >>> rcorder: Circular dependency on provision `mountcritremote' in file >>> `/etc/rc.d/mdconfig2'. >>> /etc/rc.d/mdconfig2 >>> rcorder: Circular dependency on provision `mountcritremote' in file >>> `/etc/rc.d/newsyslog'. >>> /etc/rc.d/newsyslog >>> rcorder: Circular dependency on provision `mountcritremote' in file >>> `/etc/rc.d/syslogd'. >>> /etc/rc.d/syslogd >>> rcorder: Circular dependency on provision `NETWORKING' in file >>> `/etc/rc.d/kdc'. >>> /etc/rc.d/kdc >>> /etc/rc.d/watchdogd >>> /etc/rc.d/savecore >>> rcorder: Circular dependency on provision `ldconfig' in file >>> `/etc/rc.d/SERVERS'. >>> rcorder: Circular dependency on provision `mountcritremote' in file >>> `/etc/rc.d/archdep'. >>> /etc/rc.d/archdep >>> /etc/rc.d/abi >>> rcorder: Circular dependency on provision `mountcritremote' in file >>> `/etc/rc.d/SERVERS'. >>> /etc/rc.d/SERVERS >>> /usr/local/etc/rc.d/dnscrypt-proxy >>> /etc/rc.d/resolv >>> /etc/rc.d/local_unbound >>> /etc/rc.d/atm2 >>> /etc/rc.d/pfsync >>> /etc/rc.d/pflog >>> /etc/rc.d/pf >>> /etc/rc.d/stf >>> /etc/rc.d/ppp >>> /etc/rc.d/routing >>> /etc/rc.d/mroute6d >>> /etc/rc.d/nsswitch >>> /etc/rc.d/rtsold >>> /etc/rc.d/static_ndp >>> /etc/rc.d/static_arp >>> /etc/rc.d/bridge >>> /etc/rc.d/route6d >>> /etc/rc.d/routed >>> /etc/rc.d/defaultroute >>> /etc/rc.d/ipfw >>> /etc/rc.d/NETWORKING >>> >>> >>> If I just leave SERVERS out of dnscrypt-proxy the order seems ok (not >>> sure if perfect). >>> SERVERS now runs after NETWORKING, and still runs because DEAMON >>> requires SERVERS and a bunch of the rc.d's require DEAMON ofc... >>> >>> Now its more like this (just shoing some to proof dnscrypt-proxy is >>> better placed now: >>> % rcorder /etc/rc.d/* /usr/local/etc/rc.d/* | egrep >>> "SERVERS|ldconfig|dnscrypt|DAEMON|NETWORKING|FILESYSTEMS|sshd" >>> rcorder: file `/usr/local/etc/rc.d/tcsd' is before unknown provision >>> `kerberos' >>> rcorder: file `/usr/local/etc/rc.d/tcsd' is before unknown provision >>> `named' >>> rcorder: Circular dependency on file `/usr/local/etc/rc.d/webcamd'. >>> rcorder: Circular dependency on provision `dbus' in file >>> `/usr/local/etc/rc.d/webcamd'. >>> rcorder: Circular dependency on file `/usr/local/etc/rc.d/uuidd'. >>> rcorder: requirement `usbd' in file `/usr/local/etc/rc.d/hald' has no >>> providers. >>> /etc/rc.d/FILESYSTEMS >>> /etc/rc.d/NETWORKING >>> /etc/rc.d/ldconfig >>> /etc/rc.d/SERVERS >>> /etc/rc.d/DAEMON >>> /etc/rc.d/sshd >>> /usr/local/etc/rc.d/dnscrypt-proxy >>> >>> >>> So basically if SERVERS is required by dnscrypt-proxy ldconfig (and >>> others) complain about "Circular dependency" issues and don't run, I ha= ve >>> no idea why, but could somebody try to replicate the issue in freebsd >>> current (by installing dnscrypt-proxy I mean)? >>> >>> thanks >>> >>> >> Actually I have another box with Current: >> >> I can not reproduce the issue, dnscrypt and SERVERS have the same in >> "REQUIRE" >> >> The order machine as a older kernel/world version: >> >> FreeBSD hpbsd 11.0-CURRENT FreeBSD 11.0-CURRENT #7 b6a4dfa(master)-dirty= : >> Tue Feb 10 22:21:46 WET 2015 root@hpbsd:/usr/obj/usr/src/sys/GENERIC= -NODEBUG >> amd >> >> >> FreeBSD r2d2 11.0-CURRENT FreeBSD 11.0-CURRENT #9 >> r279098+c2ec8fb(master)-dirty <--- this is the one where I see the issue= ! >> > > Sorry for being slow to respond. I've been a bit busy. Oddly, being > retired does not seem to give me much more free time.) > > I see a clear issue in the devfs startup. It comes innediately after ipse= c > which has: > # BEFORE: DAEMON mountcritremote > while devfs has: > # REQUIRE: mountcritremote > I can't figure out why devfs is being started here, but it is wrong! > Clearly, mountcritremote is not provided at this point. Still, thi is a > side issue. > > I can say that dns/dnscrypt-proxy is broken as it has: > # REQUIRE: SERVERS cleanvar > # BEFORE: named local_unbound unbound > > dnscrypt-proxy -->SERVERS -->mountcritremote -->NETWORKING > -->local_unbound (but dnscrypt-proxy must be before local_unbound! ("-->" > means requires) > I noticed this too, but in that case why doesn't it affect all users? (or all the ones using dnscrypt+local_unbound) maybe something changed in "NETWORKING" recently? Hum: https://svnweb.freebsd.org/base/head/etc/rc.d/NETWORKING?r1=3D275299&r2=3D2= 78704 Interesting, as I am using the most recent version which does not REQUIRE local_unbound I'm even more confused now :| > So it has to come after SERVERS but before local_unbound. But NETWORKING > depends on local_unbound they are both dependent on NEWORKING which has t= o > be after SERVERS. Can you say fubar! Clearly broken. And this means that > removing SERVERS will re-shuffle the order more appropriately. > > It seems that the behavior of rcorder is not as documented as well as > being undefined when circular dependencies occur. The man page says that > rcorder aborts when it encounters a circular dependency, but that is not > the case. It probably is best that it not die, but that leaves things in = an > unknown and inconsistant state, which is also a very bad idea. I guess wh= en > a circular dependency is encountered, a dichotomy occurs. > -- > Kevin Oberman, Network Engineer, Retired > E-mail: rkoberman@gmail.com >