Ctrl-c abort of dhclient during rc.d start aborts all network
configuration
Brooks Davis
brooks at one-eyed-alien.net
Wed Aug 31 21:05:08 GMT 2005
On Wed, Aug 31, 2005 at 09:42:58PM +0100, Robert Watson wrote:
>
> On Wed, 31 Aug 2005, Brooks Davis wrote:
>
> >The wait should be 10 seconds plus some startup time.
>
> It seemed a bit longer, but maybe I was counting fast. I'll time it next
> time and see if there's more going on there.
It seems longer, but here's what I got with a quick trial:
# time dhclient em0
em0: no link .............. giving up
11.05 real 0.00 user 0.01 sys
> >>(1) It would be good to configure lo0 first.
> >
> >Interfaces are configured in order of index by default. If lo0 were
> >attached sooner, it would be configured sooner. I'm somewhat tempted to
> >change it from it's current (apparently bogus) position in the startup
> >process at SI_SUB_PROTO_IFATTACHDOMAIN to SI_SUB_INIT_IF/SI_ORDER_ANY
> >and push the l2com attachments from SI_ORDER_ANY to SI_ORDER_MIDDLE.
> >Strictly speaking I think lo(4) should be SI_SUB_PSEUDO, but moving it
> >up so it attached first makes some sense given how critical it is.
> >
> >Alternativly, one could add code to sort the result of "ifconfig -l" to
> >configure lo0 first.
>
> I wonder if we could sed out lo0 from the automatic list and just
> configure it first by fiat? While if_loop is in theory optional, it turns
> out not to be very practical using our default boot scripts (since many
> tools assume you can bind 0.0.0.0).
That's probably a good idea though we don't have sed yet at this point
in the process. I believe in practice, if you have either INET or INET6
compiled in and don't load lo you'll panic in the routing code.
> >>(2) If a dhclient is ctrl-c'd, it would be nice if the rest of the network
> >> configuration continued.
> >
> >I don't see any code in the startup scripts that would cause them to
> >exit on failure so the issue is probalby that the signal is being
> >delivered to the /etc/rc.d/netif instance. I don't really know what the
> >solution to that is.
>
> Me neither. All I know is that I don't remember seeing this before.
I think I'll add a "trap : 3" like fsck has.
> >>The printing of '.'s in dhclient is also a bit excessive.
> >
> >Hanging with no output seems even less unhelpful. :( Longer term I want
> >to get rid of syncronous calls to dhclient in the startup process, but I
> >haven't had time to work on it and IMO, it's a bit late in the game for
> >6.0.
>
> I thought a bit about this, but concluded that we probably still have
> components that assume a one IP (no more, no less) world, and slide by now
> due to luck. A gradual conversion towards the assumptions of changing IPs
> has been happening over time (vis natd -dynamic), but perhaps we need to
> accelerate it some by forcing the issue in 7.x after 6.0 gets out the
> door?
I definitely think this is something we need to work on for 7.x.
Fortunately, I think Apple has probably shaken out the bugs in the big
applications like bind and apache since they have a nice, dynamic
interface configuration process.
-- Brooks
More information about the freebsd-current
mailing list