Bug 500884 - yum-updatesd fails when messagebus is stopped
yum-updatesd fails when messagebus is stopped
Product: Red Hat Enterprise Linux 5
Classification: Red Hat
Component: yum-updatesd (Show other bugs)
All Linux
low Severity medium
: rc
: ---
Assigned To: James Antill
Red Hat Satellite QA List
Depends On:
  Show dependency treegraph
Reported: 2009-05-14 13:03 EDT by Wart
Modified: 2010-10-23 05:34 EDT (History)
3 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
: 676287 (view as bug list)
Last Closed: 2009-09-17 13:00:03 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---

Attachments (Terms of Use)

  None (edit)
Description Wart 2009-05-14 13:03:32 EDT
Description of problem:
yum-updatesd requires the messagebus service to be running, even if it's configured to not use dbus.

Version-Release number of selected component (if applicable):

How reproducible:

Steps to Reproduce:
1. Modify /etc/yum/yum-updatesd.conf and set 'emit_via = syslog' and 'dbus_listener = no'
2. service messagebus stop
3. yum-updatesd -f -d -o
Actual results:
The number of available updates is published via syslog

Expected results:
yum-updatesd crashes with the error:
# yum-updatesd -f -d -o
Traceback (most recent call last):
  File "/usr/sbin/yum-updatesd", line 322, in ?
  File "/usr/sbin/yum-updatesd", line 282, in main
    checkUpdates(opts, wait = True)
  File "/usr/sbin/yum-updatesd", line 166, in checkUpdates
    bus = dbus.SystemBus()
  File "/usr/lib64/python2.4/site-packages/dbus/_dbus.py", line 260, in __new__
    return Bus.__new__(cls, Bus.TYPE_SYSTEM, use_default_mainloop, private)
  File "/usr/lib64/python2.4/site-packages/dbus/_dbus.py", line 99, in __new__
    bus._connection = dbus_bindings.bus_get(bus_type, private)
  File "dbus_bindings.pyx", line 1692, in dbus_bindings.bus_get
dbus_bindings.DBusException: Failed to connect to socket /var/run/dbus/system_bus_socket: Connection refused

Additional info:
This is a serious problem when using a central syslog collector to determine which systems have updates available.  If messagebus crashes for any reason (as happened recently to me), then you no longer get syslog alerts that the (potentially many) remote systems need updating.
Comment 1 James Antill 2009-05-14 13:22:39 EDT
 This should just be a simple copy of the same line from further down:

        bus = dbus.SystemBus()
    except dbus.DBusException, e:
        bus = None

...or even just move the "bus = dbus.SystemBus()" line 1 down, into the existing try/except.

 If you open a support ticket we can probably get this fixed for 5.4.x
Comment 2 Wart 2009-05-20 01:30:02 EDT
Filed as case # 1920624
Comment 5 RHEL Product and Program Management 2009-09-17 13:00:03 EDT
Development Management has reviewed and declined this request.  You may appeal
this decision by reopening this request.

Note You need to log in before you can comment on or make changes to this bug.