Red Hat Bugzilla – Bug 1395794
/usr/libexec/rhsmd is failing with ImportError: No module named decorator
Last modified: 2017-03-21 06:57:26 EDT
Description of problem: On a freshly provisioned RHEL6.9 system, /usr/libexec/rhsmd is exiting early because it fails to import decorator which is provided by package python-decorator which does not appear to be installed by default anymore. Bottom line: if subscription-manager needs the decorator module, then the spec file should require python-decorator. Version-Release number of selected component (if applicable): [root@ibm-z-24 ~]# rpm -q --whatprovides /usr/libexec/rhsmd subscription-manager-1.18.4-1.el6.s390x How reproducible: Steps to Reproduce: [root@ibm-z-24 ~]# /usr/libexec/rhsmd --help [root@ibm-z-24 ~]# Actual results: no response Expected results: the Usage statement and a list of Options. Additional info: [root@ibm-z-24 ~]# python -i /usr/libexec/rhsmd Error in sys.excepthook: Traceback (most recent call last): File "/usr/libexec/rhsmd", line 33, in excepthook_base sys.exit(0) SystemExit: 0 Original exception was: Traceback (most recent call last): File "/usr/libexec/rhsmd", line 41, in <module> import decorator ImportError: No module named decorator >>> quit() [root@ibm-z-24 ~]# [root@ibm-z-24 ~]# rpm -q subscription-manager --requires | grep python /usr/bin/python dbus-python python(abi) = 2.6 python-dateutil python-ethtool python-iniparse python-rhsm >= 1.18.1 ^^^^^^^^^^^ That list should also include python-decorator
[root@ibm-z-24 ~]# /usr/libexec/rhsmd --help [root@ibm-z-24 ~]# echo $? 0 ^ a successful exitCode of 0 when rhsmd actually failed to load a python module feels wrong too.
Here is another reason why we need python-decorator installed. Without it, the following DBusException is being thrown to rhsm.log during register, unregister, and probably more modules... 2016-11-17 13:46:02,127 [DEBUG] subscription-manager:1731:MainThread @dbus_interface.py:46 - Unable to connect to dbus 2016-11-17 13:46:02,127 [ERROR] subscription-manager:1731:MainThread @dbus_interface.py:47 - org.freedesktop.DBus.Error.TimedOut: Activation of com.redhat.SubscriptionManager timed out Traceback (most recent call last): File "/usr/lib/python2.6/site-packages/subscription_manager/dbus_interface.py", line 36, in __init__ follow_name_owner_changes=self.has_main_loop) File "/usr/lib/python2.6/site-packages/subscription_manager/dbus_interface.py", line 69, in _get_validity_object return self.bus.get_object(*args, **kwargs) File "/usr/lib/python2.6/site-packages/dbus/bus.py", line 244, in get_object follow_name_owner_changes=follow_name_owner_changes) File "/usr/lib/python2.6/site-packages/dbus/proxies.py", line 241, in __init__ self._named_service = conn.activate_name_owner(bus_name) File "/usr/lib/python2.6/site-packages/dbus/bus.py", line 183, in activate_name_owner self.start_service_by_name(bus_name) File "/usr/lib/python2.6/site-packages/dbus/bus.py", line 281, in start_service_by_name 'su', (bus_name, flags))) File "/usr/lib/python2.6/site-packages/dbus/connection.py", line 630, in call_blocking message, timeout) DBusException: org.freedesktop.DBus.Error.TimedOut: Activation of com.redhat.SubscriptionManager timed out
Adding a PR for the upstream fix.
Reproducer: [root@ibm-z10-78 ~]# /usr/libexec/rhsmd --help [root@ibm-z10-78 ~]# python -i /usr/libexec/rhsmd Error in sys.excepthook: Traceback (most recent call last): File "/usr/libexec/rhsmd", line 33, in excepthook_base sys.exit(0) SystemExit: 0 Original exception was: Traceback (most recent call last): File "/usr/libexec/rhsmd", line 41, in <module> import decorator ImportError: No module named decorator >>> [root@ibm-z10-78 ~]# rpm -q subscription-manager --requires | grep python /usr/bin/python dbus-python python(abi) = 2.6 python-dateutil python-ethtool python-iniparse python-rhsm >= 1.18.1 Verification: [root@ibm-z10-78 ~]# /usr/libexec/rhsmd --helpUsage: rhsmd [OPTIONS] Options: -h, --help show this help message and exit -d, --debug Display debug messages -k, --keep-alive Stay running (don't shut down after the first dbus call) -s, --syslog Run standalone and log result to syslog -f FORCE_SIGNAL, --force-signal=FORCE_SIGNAL Force firing of a signal (valid, expired, warning, partial, classic or registration_required) -i, --immediate Fire forced signal immediately (requires --force- signal) [root@ibm-z10-78 ~]# rpm -q subscription-manager --requires | grep python/usr/bin/python dbus-python python(abi) = 2.6 python-dateutil python-decorator python-ethtool python-iniparse python-rhsm >= 1.18.1 [root@ibm-z10-78 ~]# rpm -q --whatprovides /usr/libexec/rhsmd subscription-manager-1.18.5-1.el6.s390x
Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://rhn.redhat.com/errata/RHSA-2017-0698.html