Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 25 Feb 2015 22:19:30 +0000
From:      Miguel Clara <miguelmclara@gmail.com>
To:        Kevin Oberman <rkoberman@gmail.com>
Cc:        freebsd-current <freebsd-current@freebsd.org>, Garrett Cooper <yaneurabeya@gmail.com>
Subject:   Re: Shared object "libsodium.so.13" not found, required by "dnscrypt-proxy"
Message-ID:  <CADGo8CUo=QUV904F7PsndiB%2B6pcYBD%2B1gC7tNZkswRvRNWEB4Q@mail.gmail.com>
In-Reply-To: <CAN6yY1tpyinY1yueHY8Tr=igQbkTpwJBdz9-aUwQ5xdMqiVf-A@mail.gmail.com>
References:  <CADGo8CURnvyLD55zs5m=hgrG9g6xct0q4ZMSNiY%2BzLA1GBi0Ug@mail.gmail.com> <CAGHfRMC1_jRQxkxu-aaJJBvqb8oPvOrCiJwOWhLsR1A81YKrEw@mail.gmail.com> <CADGo8CWyyFJXR5fD%2BYe%2BSynzH0mqfh3Fsx8ULmQzOxTwR0Bd8A@mail.gmail.com> <FF6DD5BB-7D15-4224-8EF5-DA1C89908B1B@gmail.com> <B506CD41-42F8-4DAF-B2D3-B09C70A2A28D@gmail.com> <64AF7708-217B-4AC0-A47A-AD1B0BFF7EDC@gmail.com> <CADGo8CUCCjrW-3p9F4aiwRh1fbid%2BfNjikag55%2BNheJYBUt-Rg@mail.gmail.com> <885DA4D0-9644-4F06-97C9-04EAD7B4958C@gmail.com> <CADGo8CVjVig6HT6o2MYMzXizFLG62WMEFTe278nq8qoOg3-akQ@mail.gmail.com> <CAN6yY1tKDi4da25KbpATRnOE7YZOgVyw78rBrH4wofF3iqQLXQ@mail.gmail.com> <CADGo8CV4=4V31ibc9S43e3bBC1g3YL-m-NLc2Bccz_Pk4fQ49Q@mail.gmail.com> <CADGo8CV4ziyTxJJstLm9VWFueLGVjkZ=Kt6hhV1owymSMf7=yg@mail.gmail.com> <CADGo8CUeexNbOW8VbjNQ8-UGrsVny5JO4Ckv89XNg9v-aEetSA@mail.gmail.com> <CAN6yY1tpyinY1yueHY8Tr=igQbkTpwJBdz9-aUwQ5xdMqiVf-A@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, Feb 25, 2015 at 9:58 PM, Kevin Oberman <rkoberman@gmail.com> wrote:

> On Tue, Feb 24, 2015 at 6:05 PM, Miguel Clara <miguelmclara@gmail.com>
> wrote:
>
>>
>>
>> On Wed, Feb 25, 2015 at 1:58 AM, Miguel Clara <miguelmclara@gmail.com>
>> wrote:
>>
>>>
>>> On Wed, Feb 25, 2015 at 12:26 AM, Miguel Clara <miguelmclara@gmail.com>
>>> wrote:
>>>
>>>>
>>>> On Tue, Feb 24, 2015 at 11:11 PM, Kevin Oberman <rkoberman@gmail.com>
>>>> wrote:
>>>>
>>>>> On Tue, Feb 24, 2015 at 10:53 AM, Miguel Clara <miguelmclara@gmail.co=
m
>>>>> > 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 <miguelmclara@gmail.com>
>>>>>> 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
>



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CADGo8CUo=QUV904F7PsndiB%2B6pcYBD%2B1gC7tNZkswRvRNWEB4Q>