From Bugzilla Helper: User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8b4) Gecko/20050915 Fedora/1.5-0.5.0.beta1 Firefox/1.4 Description of problem: Running latest Rawhide, targeted/enforcing. I notice that dhcdbd seems to intermittantly (and infrequently) fail to connect to dbus at boot time, causing NetworkManager to fail to initialize my network connection. I find the following in /var/log/messages Oct 5 06:38:59 localhost dhcdbd: dbus_svc_init failed: org.freedesktop.DBus.Error.NoServer Failed to connect to socket /var/run/dbus/system_bus_socket: Connection refused Oct 5 06:38:59 localhost dhcdbd: Failed to initialise D-Bus service. On a successful boot, I get this (sometimes messages about eth0, sometimes about eth1, sometimes both): Sep 29 07:05:17 localhost dhcdbd: Started up. Sep 29 07:05:18 localhost dhcdbd: message_handler: message handler not found under /com/redhat/dhcp/eth0 for sub-path eth0.dbus.get.reason Sep 29 08:47:54 localhost dhcdbd: Shut down. I work around this by either 'ifdown eth0; ifup eth0' or by rebooting. Searching the archived messages files show 29 Sept as the first occurrence. Version-Release number of selected component (if applicable): dhcdbd-1.8-1 How reproducible: Sometimes Steps to Reproduce: 1. Boot 2. See if Network Manager starts/configures eth0 3. Additional info:
There seem to be two issues here: 1. Problems starting dhcdbd at boot with the initscript: > Oct 5 06:38:59 localhost dhcdbd: dbus_svc_init failed: org.freedesktop.DBus.Error.NoServer Failed to connect to socket /var/run/dbus/system_bus_socket: Connection refused > Oct 5 06:38:59 localhost dhcdbd: Failed to initialise D-Bus service. These messages indicate that the dbus-daemon ( the "messagebus" service ) is not running when dhcdbd is run. You would have needed to do a 'chkconfig --add dhcdbd' or a 'chkconfig --levels=XYZ dhcdbd on', and a 'chkconfig --levels=XYZ NetworkManager on' in order to enable NetworkManager and dhcdbd - what levels did you enable them for? You need to ensure that the messagebus, dhcdbd, and NetworkManager services are started in that order. Presumably, you start dhcdbd and NetworkManager in runlevel 3, not runlevel 2 ? (This would be a good idea, since messagebus is only started in runlevel 3, while the "network" service is started in runlevel 2). Please do this : # echo /etc/rc.d/rc3.d/S* The order in which the messagebus, dhcdbd, and NetworkManager services are listed in by the above command is the order in which they are started. You should ensure that in the output of the above command the services are in the order: '...rc3.d/S97messagebus...rc3.d/S98dhcdbd...rc3.d/S98NetworkManager...' If this is not the case, issue chkconfig commands to make it so. 2. Messages after boot: > On a successful boot, I get this (sometimes messages about eth0, sometimes about > eth1, sometimes both): > Sep 29 07:05:17 localhost dhcdbd: Started up. > Sep 29 07:05:18 localhost dhcdbd: message_handler: message handler not found under /com/redhat/dhcp/eth0 for sub-path eth0.dbus.get.reason > Sep 29 08:47:54 localhost dhcdbd: Shut down. These messages indicate no problems - the dhcdbd shut down message is a long time after the 'message handler not found' message. This shows that after start up, NetworkManager queries dhcdbd for the parameters of the eth0 interface, which, on boot, was not configured using dhcdbd, so dhcdbd has no information for it. NetworkManager should then be doing an 'ifup' with dhcdbd, and get the eth0 parameters OK - are you saying this is not the case - ie. is eth0 not brought up OK ?
Hmmmm.... (and thanks for the quick help). 1. 'ls /etc/rc.d/rc3.d/S*' shows an entry for S97messagebus, no entries for dhcdbd nor for NetworkManager. 'ls /etc/rc.d/rc5.d/S*' shows an entry for S97messagebus, S98NetworkManager and S98NetworkManagerDispatcher. So, there are no entries in either rc[35].d for dhcdbd. Not sure how this happened. I did a 'chkconfig --add dhcdbd', and it got turned on for levels 3 and 5. I'll reboot and test. 2. In this case, where dhcdbd successfully connects to dbus, NetworkManager successfully brings up the interface. It only fails when it can't connect to dbus.
Yes, doing the 'chkconfig --add dhcdbd' should fix the boot-up problems . We have a policy of not enabling network services in RPM scriplets - you need to enable them manually with 'chkconfig', as you must have done for NetworkManager. These messages can be ignored and signify no problem: > Sep 29 07:05:18 localhost dhcdbd: message_handler: message handler not found under /com/redhat/dhcp/eth0 for sub-path eth0.dbus.get.reason since NetworkManager reacts to them by doing a dhcdbd 'up' for the interface in question. I'll look into removing these 'message handler not found' syslog messages in the next dhcdbd release.
After 'chkconfig --add dhcdbd', now seems to work, that is I get a 'dhcdbd start' message in messages before dhclient, etc. I used the gui to turn on NetworkManager. dhcdbd was not listed there until I did the 'chkconfig --add', so I didn't notice to turn it on. Thanks!
Before I close this: should installing the dhcdbd package 'insert' dhcdbd in the list of services 'managed' by system-config-services? (I had to do 'chkconfig --add' before it became visible. Or is this something I messed up?)
Jason: Most likely dhcdbd should run a chkconfig --add dhcdbd, but not enable itself. This requires a bit of a dance (like NetworkManager does) because chkconfig will usually auto-enable the daemon if you have levels specified in the init.d script.
OK, the next version of dhcdbd will have an initscript like NetworkManager's that has only: ' # chkconfig: - 98 02 ' and will do 'chkconfig --add dhcdbd' in the dhcdbd.spec file's %post scriptlet .
This is now fixed with dhcdbd-1.9 - it now does 'chkconfig --add dhcdbd' in its .spec file %post scriptlet so that dhcdbd will appear in the list of services configured by system-config-services.