Bug 169937

Summary: dhcdbd/dbus startup problem ?
Product: [Fedora] Fedora Reporter: Tom London <selinux>
Component: dhcdbdAssignee: Jason Vas Dias <jvdias>
Status: CLOSED CURRENTRELEASE QA Contact:
Severity: medium Docs Contact:
Priority: medium    
Version: rawhideCC: dcbw
Target Milestone: ---   
Target Release: ---   
Hardware: i686   
OS: Linux   
Whiteboard:
Fixed In Version: dhcdbd-1.9-1 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2005-10-06 20:54:19 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Tom London 2005-10-05 14:11:33 UTC
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:

Comment 1 Jason Vas Dias 2005-10-05 16:34:53 UTC
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 ?


Comment 2 Tom London 2005-10-05 16:59:13 UTC
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.

Comment 3 Jason Vas Dias 2005-10-05 17:09:12 UTC
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.

Comment 4 Tom London 2005-10-05 17:21:42 UTC
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!

Comment 5 Tom London 2005-10-06 13:36:31 UTC
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?)

Comment 6 Dan Williams 2005-10-06 15:30:17 UTC
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.

Comment 7 Jason Vas Dias 2005-10-06 18:55:28 UTC
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 .


Comment 8 Jason Vas Dias 2005-10-06 20:54:19 UTC
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.