Unplugged or deactivated ethernet interfaces may not be handled properly

Bug #1017166 reported by Clint Byrum
16
This bug affects 2 people
Affects Status Importance Assigned to Milestone
ifupdown (Ubuntu)
Triaged
Wishlist
Unassigned

Bug Description

If i have a server which has a management-only interface which is usually down, in versions of Ubuntu before 11.10, I could configure that ethernet interface in /etc/network/interfaces, and dhclient would try forever to get an address.

I believe this is a regression that was introduced in the fix for bug #838968 , where the '-1' parameter was introduced to dhclient3's invocation in ifupdown.

While I do think we should report errors, we should also retry this *forever* since it may be the only way a system can be reached *to see that error*.

Related bugs:
 * bug 838968: static-network-up event does not wait for interfaces to have an address
 * bug 974284: invoking dhclient3 with -1 causes issue if no dhcp server available

tags: added: regression-release
Changed in ifupdown (Ubuntu):
importance: Undecided → High
Revision history for this message
Stéphane Graber (stgraber) wrote :

I vaguely remember discussing that on IRC already, but there it's again anyway ;)

I don't agree that we should start dhclient in the background on failure to get an IP, that sounds wrong and will prevent any of the ifupdown scripts from running properly, not to mention confuse ifupdown regarding the state of the interface.

What I did fix last cycle with a change to isc-dhcp is the case where you boot with a working dhcp config and then your dhcp server dies for a few days. In the past, dhclient would exit and you'd never get an IP again, now that's fixed and dhclient will never exit once it successfully gets a first lease.

In your weird setup, I see two obvious options:
 - Go with static addressing
 - Go with a manual interface entry calling "dhclient $INTERFACE" as post-up

I'm going to mark it as won't fix based on that, if you don't agree, feel free to revert or poke me on IRC :)

Changed in ifupdown (Ubuntu):
status: New → Won't Fix
Revision history for this message
Clint Byrum (clint-fewbar) wrote : Re: [Bug 1017166] Re: Unplugged or deactivated ethernet interfaces may not be handled properly

Excerpts from Stéphane Graber's message of 2012-06-28 20:49:20 UTC:
> I vaguely remember discussing that on IRC already, but there it's again
> anyway ;)
>
> I don't agree that we should start dhclient in the background on failure
> to get an IP, that sounds wrong and will prevent any of the ifupdown
> scripts from running properly, not to mention confuse ifupdown regarding
> the state of the interface.
>
> What I did fix last cycle with a change to isc-dhcp is the case where
> you boot with a working dhcp config and then your dhcp server dies for a
> few days. In the past, dhclient would exit and you'd never get an IP
> again, now that's fixed and dhclient will never exit once it
> successfully gets a first lease.
>
> In your weird setup, I see two obvious options:
> - Go with static addressing
> - Go with a manual interface entry calling "dhclient $INTERFACE" as post-up
>
> I'm going to mark it as won't fix based on that, if you don't agree,
> feel free to revert or poke me on IRC :)

While we may have fixed other bugs by not running if-up.d scripts
improperly, this does not address the regression introduced. Users could
be sure that if they plugged in an unplugged interface marked as dhcp, it
would acquire an address and bring up the interface (at least partially,
without the if-up.d scripts running.

I'm suggesting that dhclient needs some kind of "callback" for when it
acquires an address, and that should kick off the rest of the if-up.d
process.

Its not easy to fix, but that doesn't mean we shouldn't at least entertain
the idea of making it work.

If we decide to let the regression stand, perhaps we should document
that change? How do we do that in releases past? Can we add it to
oneiric/precise release notes?

Revision history for this message
Stéphane Graber (stgraber) wrote :

Fine, converted to a wishlist entry (not planning on working on that though).

I believe we can update the release notes post-release, yes and we probably should for that case.
It's also worth noting that dhclient was the only dhcp client doing the whole backgrounding thing in ifupdown, all the other ones are behaving just like dhclient is since 12.04.

Changed in ifupdown (Ubuntu):
status: Won't Fix → Triaged
importance: High → Wishlist
Revision history for this message
Scott Moser (smoser) wrote :

I updated the description with 'Related Bugs', specifically for bug 974284, which is where Stéphane remembers having the conversation.

description: updated
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.