Bug 16652 - Mehrere dhclient-Instanzen bei der Verwendung von ifplugd
Mehrere dhclient-Instanzen bei der Verwendung von ifplugd
Status: CLOSED FIXED
Product: UCS
Classification: Unclassified
Component: Network
UCS 2.3
All Linux
: P4 normal (vote)
: UCS 2.3-1
Assigned To: Andreas Büsching
Janek Walkenhorst
:
: 16864 (view as bug list)
Depends on: 8994
Blocks:
  Show dependency treegraph
 
Reported: 2009-12-01 15:36 CET by Sönke Schwardt-Krummrich
Modified: 2010-02-18 14:37 CET (History)
2 users (show)

See Also:
What kind of report is it?: ---
What type of bug is this?: ---
Who will be affected by this bug?: ---
How will those affected feel about the bug?: ---
User Pain:
Enterprise Customer affected?:
School Customer affected?:
ISV affected?:
Waiting Support:
Flags outvoted (downgraded) after PO Review:
Ticket number:
Bug group (optional):
Max CVSS v3 score:


Attachments
UCR-Dump (21.80 KB, text/plain)
2010-01-12 16:36 CET, Andre Fenske
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Sönke Schwardt-Krummrich univentionstaff 2009-12-01 15:36:45 CET
+++ This bug was initially created as a clone of Bug #8994 +++

(In reply to comment #52)
> > Das resolv.py Modul wird wieder mitgebracht und führt bei Verwendung des
> > ifplugd dhclient aus. ucr Paket ist gebaut.
> 
> Den Aufruf von dhclient im UCR Modul finde ich ungünstig, da dann ggf. mehrere
> dhclient-Instanzen laufen. 1x pro Commit auf /etc/resolv.conf und zusätzlich 1x
> von ifplugd.

ggf. reicht es aus, "/etc/init.d/ifplugd restart" anstelle einer neuen dhclient-Instanz in dem Modul zu starten.
Comment 1 Sönke Schwardt-Krummrich univentionstaff 2009-12-10 16:58:44 CET
*** Bug 16864 has been marked as a duplicate of this bug. ***
Comment 2 Andreas Büsching univentionstaff 2009-12-23 15:09:18 CET
Ich reinitialisiere die Interfaces jetzt mit ifdown/ifup. Dabei wird der alte dhclient sauber runtergefahren und anschließend der neue gestartet.

ChangeLog Eintrag ist hinzugefügt
Comment 3 Andre Fenske univentionstaff 2010-01-12 16:25:45 CET
Der Changelogeintrag war vorhanden und das merge in den branch waren soweit auch ok.


In der entsprechenden Datei wird folgendes ausgeführt:

if baseConfig.get( 'interfaces/handler', 'ifplugd' ) == 'networkmanager':
    return
for key in baseConfig.keys():
    if key.startswith('interfaces/') and key.endswith('/type'):
        if baseConfig[key] == 'dhcp' and os.path.exists('/sbin/dhclient'):
            iface=key.split('/')[1]
            subprocess.call( [ 'ifdown', iface ] )#neu
            subprocess.call( [ 'ifup', iface ] )#neu

Der neu hinzu gekommene Teil sieht meines Erachtens gut aus, jedoch funktioniert das setzen von interfaces/handler auf den Wert "ifplug" nicht korrekt.

In der Konsole wird die Warnmeldung "Ignoring unknown Interface handler=handler" ausgegeben.
Comment 4 Sönke Schwardt-Krummrich univentionstaff 2010-01-12 16:31:56 CET
Andre: Bitte ein UCR-Dump anhängen.
Comment 5 Andre Fenske univentionstaff 2010-01-12 16:36:48 CET
Created attachment 2212 [details]
UCR-Dump
Comment 6 Andreas Büsching univentionstaff 2010-01-14 15:15:29 CET
(In reply to comment #3)
> Der neu hinzu gekommene Teil sieht meines Erachtens gut aus, jedoch
> funktioniert das setzen von interfaces/handler auf den Wert "ifplug" nicht
> korrekt.

Das Problem hatte nichts mit diesen Änderungen zu tun. Das Modul interfaces.py hat handler aus der Variable interfaces/handler als interface behandelt. Ist jetzt korrigiert.
Comment 7 Janek Walkenhorst univentionstaff 2010-02-10 09:47:17 CET
Verified:

(In reply to comment #6)
> (In reply to comment #3)
> > Der neu hinzu gekommene Teil sieht meines Erachtens gut aus, jedoch
> > funktioniert das setzen von interfaces/handler auf den Wert "ifplug" nicht
> > korrekt.
> 
> Das Problem hatte nichts mit diesen Änderungen zu tun. Das Modul interfaces.py
> hat handler aus der Variable interfaces/handler als interface behandelt. Ist
> jetzt korrigiert.
Funktioniert

(In reply to comment #2)
> Ich reinitialisiere die Interfaces jetzt mit ifdown/ifup. Dabei wird der alte
> dhclient sauber runtergefahren und anschließend der neue gestartet.
Stimmt - Es gibt nur einen dhclient-Prozess pro DHCP-Schnittstelle
> ChangeLog Eintrag ist hinzugefügt

\item Bei der Erzeugung der Konfigurationsdatei /etc/resolv.conf wird jetzt
  bei der Verwendung des ifplugd kein neuer dhclient Prozess gestartet,
  sondern das Interface neu initialisiert (\ucsBug{16652}).

(Getestet mit folgender Konfiguration:
interfaces/eth0/address: 10.200.12.40
interfaces/eth0/broadcast: 10.200.12.255
interfaces/eth0/netmask: 255.255.255.0
interfaces/eth0/network: 10.200.12.0
interfaces/eth1/address: 10.200.12.41
interfaces/eth1/broadcast: 10.200.12.255
interfaces/eth1/fallback/address: 10.200.12.41
interfaces/eth1/fallback/broadcast: 10.200.12.255
interfaces/eth1/fallback/netmask: 255.255.255.0
interfaces/eth1/fallback/network: 10.200.12.0
interfaces/eth1/netmask: 255.255.255.0
interfaces/eth1/network: 10.200.12.0
interfaces/eth1/type: dhcp
interfaces/eth2/address: 10.200.12.42
interfaces/eth2/broadcast: 10.200.12.255
interfaces/eth2/fallback/address: 10.200.12.42
interfaces/eth2/fallback/broadcast: 10.200.12.255
interfaces/eth2/fallback/netmask: 255.255.255.0
interfaces/eth2/fallback/network: 10.200.12.0
interfaces/eth2/netmask: 255.255.255.0
interfaces/eth2/network: 10.200.12.0
interfaces/eth2/type: dhcp
interfaces/handler: ifplugd
)
Comment 8 Arvid Requate univentionstaff 2010-02-18 14:33:15 CET
UCS 2.3-1 wurde veröffentlicht. Sollte der hier beschriebene Bug mit einer
neueren Version von UCS erneut auftreten, so sollte der Bug dupliziert werden:
"Clone This Bug".