Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 25 Feb 2015 18:52:35 -0800
From:      Garrett Cooper <yaneurabeya@gmail.com>
To:        Kevin Oberman <rkoberman@gmail.com>
Cc:        freebsd-current <freebsd-current@freebsd.org>, Miguel Clara <miguelmclara@gmail.com>
Subject:   Re: Shared object "libsodium.so.13" not found, required by "dnscrypt-proxy"
Message-ID:  <2A8C0814-E644-4350-85B8-17B468D79BFF@gmail.com>
In-Reply-To: <CAN6yY1tLhH1Karz2NWFJ9vU2jRcC_cFbmOnLuj2G3Mdn17hm0Q@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> <CADGo8CUo=QUV904F7PsndiB%2B6pcYBD%2B1gC7tNZkswRvRNWEB4Q@mail.gmail.com> <98CF988A-D9DB-49AD-8CFF-3B438F892730@gmail.com> <CAN6yY1tLhH1Karz2NWFJ9vU2jRcC_cFbmOnLuj2G3Mdn17hm0Q@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help

> On Feb 25, 2015, at 18:08, Kevin Oberman <rkoberman@gmail.com> wrote:
>=20
>> On Wed, Feb 25, 2015 at 2:30 PM, Garrett Cooper <yaneurabeya@gmail.com> w=
rote:
>> On Feb 25, 2015, at 14:19, Miguel Clara <miguelmclara@gmail.com> wrote:
>>=20
>> ...
>>=20
>> > 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 "NE=
TWORKING" recently?
>> >
>> > Hum:
>> > https://svnweb.freebsd.org/base/head/etc/rc.d/NETWORKING?r1=3D275299&r2=
=3D278704
>> >
>> > Interesting, as I am using the most recent version which does not REQUI=
RE local_unbound
>> >
>> > I'm even more confused now :|
>> >
>> >
>> > So it has to come after SERVERS but before local_unbound. But NETWORKIN=
G depends on local_unbound they are both dependent on NEWORKING which has to=
 be after SERVERS. Can you say fubar! Clearly broken. And this means that re=
moving SERVERS will re-shuffle the order more appropriately.
>> >
>> > It seems that the behavior of rcorder is not as documented as well as b=
eing undefined when circular dependencies occur. The man page says that rcor=
der aborts when it encounters a circular dependency, but that is not the cas=
e. 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 when a circu=
lar dependency is encountered, a dichotomy occurs.
>>=20
>> Now you know why I=81fm so curious about all of this stuff.
>>=20
>> When I was working on ^/projects/building-blocks, I was able to move most=
 of these pieces around by changing REQUIRE: to BEFORE:, but I noticed that i=
t changes the rcorder a bit, so I haven=81ft been super gung ho in implement=
ing my change.
>>=20
>> I think there are a couple bugs present on 9-STABLE/10-STABLE/11-CURRENT:=

>>=20
>> - Things go awry if named is removed/not installed.
>> - Things go awry if local_unbound is removed (which would have been the c=
ase if the rc.d script was removed from your system, which existed before my=
 changes).
>> - Other rc.d scripts not being present might break assumptions.
>>=20
>> I need to create dummy providers for certain logical stages (DNS is one o=
f them) to solve part of this problem and provide third parties with a mecha=
nism that can be depended on (I wish applications were written in a more rob=
ust manner to fail gracefully and retry instead of failing flat on their fac=
e, but as I=81fve seen at several jobs, getting developers to fail, then ret=
ry is hard :(=81c).
>>=20
>> Another short-term hack:
>>=20
>> Install dummy/no-op providers so the ordering is preserved, then remove t=
he hacks after all of the bugs have been shaken out.
>>=20
>> Thanks!
>=20
> Garret,=20
>=20
> Also undocumented (except in rcorder.c) is that the lack of a provider is n=
ot an error. This effectively makes a list of providers into an OR. So, for n=
ame service the normal list is "named local_unbound unbound" and any will wo=
rk for ordering and having none is a no-op, so if you don't run any nameserv=
er (or kerberos or whatever provider), it is not an issue. As long as rcorde=
r finds a provider, it will be used to set the order, but the lack of any or=
 all providers just means that the specified provider is ignored and if a RE=
QUIRES or BEFORE lists no existing providers, the statement is simply ignore=
d.
>=20
> The real problem is that there is no defined rule for behavior in the even=
t of a circular dependency and any change to any decision point in the order=
ing process may change the way the ordering flips. That is why these things a=
re such a royal pain to debug. A change in any rc.d script may cause the ord=
ering of seemingly unrelated scripts to change, perhaps drastically, and the=
 error messages, while not misleading, is only a starting point in tracking t=
his down. This means there may be time bombs that break working ports withou=
t their being touched or even re-installed. And the triggering change my, it=
self be correct.

Or etc/rc.d/named...

PROVIDES: DNS

I'm going to post a fix up for this on arch@/rc@ because it needs to be solv=
ed in a saner way -- especially for systems that are pedantic about rcorder,=
 like our version at $work.





Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?2A8C0814-E644-4350-85B8-17B468D79BFF>