Bug 772921
| Summary: | RHSM notification icon failure - closes subscription-manager-gui | ||||||
|---|---|---|---|---|---|---|---|
| Product: | Red Hat Enterprise Linux 5 | Reporter: | Alexander Todorov <atodorov> | ||||
| Component: | subscription-manager | Assignee: | Michael Stead <mstead> | ||||
| Status: | CLOSED ERRATA | QA Contact: | IDM QE LIST <seceng-idm-qe-list> | ||||
| Severity: | high | Docs Contact: | |||||
| Priority: | high | ||||||
| Version: | 5.8 | CC: | bgollahe, cduryee, jsefler, lmiksik, mstead | ||||
| Target Milestone: | rc | ||||||
| Target Release: | --- | ||||||
| Hardware: | Unspecified | ||||||
| OS: | Unspecified | ||||||
| Whiteboard: | |||||||
| Fixed In Version: | Doc Type: | Bug Fix | |||||
| Doc Text: | Story Points: | --- | |||||
| Clone Of: | Environment: | ||||||
| Last Closed: | 2012-02-21 06:44:25 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: | |||||||
| Bug Depends On: | |||||||
| Bug Blocks: | 715031, 726322 | ||||||
| Attachments: |
|
||||||
|
Description
Alexander Todorov
2012-01-10 10:52:17 UTC
Yes - I am able to reproduce this bug in RHEL58-snapshot-4.
In my opinion this is a sure blocker! It creates a nasty situation where the user will try to repeatedly click the rhsm-icon and a blank dialog appears. See attached screenshotscreenshot.
A DBUS exception is being thrown when trying to launch a second instance of subscription-manager-gui. Below is a simple recreate for the same problem and the offending DBUS traceback is at the end...
[root@jsefler-rhel58server-snap4 ~]# subscription-manager-gui&
[1] 31398
[root@jsefler-rhel58server-snap4 ~]#
(subscription-manager-gui:31398): libglade-WARNING **: unknown property `orientation' for class `GtkVBox'
(subscription-manager-gui:31398): libglade-WARNING **: unknown property `orientation' for class `GtkVBox'
(subscription-manager-gui:31398): libglade-WARNING **: unknown property `orientation' for class `GtkVBox'
(subscription-manager-gui:31398): libglade-WARNING **: unknown property `orientation' for class `GtkVBox'
(subscription-manager-gui:31398): libglade-WARNING **: unknown property `orientation' for class `GtkVBox'
(subscription-manager-gui:31398): libglade-WARNING **: unknown property `orientation' for class `GtkVBox'
(subscription-manager-gui:31398): libglade-WARNING **: unknown property `has_tooltip' for class `GtkToolButton'
(subscription-manager-gui:31398): libglade-WARNING **: unknown property `has_tooltip' for class `GtkToolButton'
(subscription-manager-gui:31398): libglade-WARNING **: unknown property `has_tooltip' for class `GtkToolButton'
(subscription-manager-gui:31398): libglade-WARNING **: unknown property `has_tooltip' for class `GtkToolButton'
(subscription-manager-gui:31398): libglade-WARNING **: unknown property `has_tooltip' for class `GtkToolButton'
(subscription-manager-gui:31398): libglade-WARNING **: unknown attribute `swapped' for <signal>.
(subscription-manager-gui:31398): libglade-WARNING **: unknown attribute `swapped' for <signal>.
(subscription-manager-gui:31398): libglade-WARNING **: unknown attribute `swapped' for <signal>.
(subscription-manager-gui:31398): libglade-WARNING **: unknown property `orientation' for class `GtkVBox'
(subscription-manager-gui:31398): libglade-WARNING **: unknown property `orientation' for class `GtkVBox'
(subscription-manager-gui:31398): libglade-WARNING **: unknown property `orientation' for class `GtkVBox'
(subscription-manager-gui:31398): libglade-WARNING **: unknown property `orientation' for class `GtkVBox'
(subscription-manager-gui:31398): libglade-WARNING **: unknown property `orientation' for class `GtkVBox'
(subscription-manager-gui:31398): libglade-WARNING **: unknown property `orientation' for class `GtkVBox'
(subscription-manager-gui:31398): libglade-WARNING **: unknown property `orientation' for class `GtkVPaned'
(subscription-manager-gui:31398): libglade-WARNING **: unknown property `orientation' for class `GtkVBox'
(subscription-manager-gui:31398): libglade-WARNING **: unknown property `orientation' for class `GtkVBox'
(subscription-manager-gui:31398): libglade-WARNING **: unknown property `orientation' for class `GtkVPaned'
(subscription-manager-gui:31398): libglade-WARNING **: unknown property `orientation' for class `GtkVBox'
/usr/share/rhsm/subscription_manager/gui/widgets.py:47: GtkWarning: gdk_gc_new: assertion `drawable != NULL' failed
self.glade = gtk.glade.XML(os.path.join(GLADE_DIR, glade_file))
/usr/share/rhsm/subscription_manager/gui/widgets.py:47: GtkWarning: gdk_gc_copy: assertion `GDK_IS_GC (dst_gc)' failed
self.glade = gtk.glade.XML(os.path.join(GLADE_DIR, glade_file))
/usr/share/rhsm/subscription_manager/gui/widgets.py:47: GtkWarning: gdk_gc_set_values: assertion `GDK_IS_GC (gc)' failed
self.glade = gtk.glade.XML(os.path.join(GLADE_DIR, glade_file))
/usr/share/rhsm/subscription_manager/gui/widgets.py:47: GtkWarning: gdk_gc_set_dashes: assertion `GDK_IS_GC (gc)' failed
self.glade = gtk.glade.XML(os.path.join(GLADE_DIR, glade_file))
(subscription-manager-gui:31398): libglade-WARNING **: unknown property `orientation' for class `GtkVBox'
(subscription-manager-gui:31398): libglade-WARNING **: unknown property `orientation' for class `GtkVBox'
(subscription-manager-gui:31398): libglade-WARNING **: unknown property `orientation' for class `GtkVBox'
(subscription-manager-gui:31398): libglade-WARNING **: unknown property `orientation' for class `GtkVBox'
(subscription-manager-gui:31398): libglade-WARNING **: unknown property `orientation' for class `GtkVBox'
(subscription-manager-gui:31398): libglade-WARNING **: unknown property `orientation' for class `GtkVBox'
(subscription-manager-gui:31398): libglade-WARNING **: unknown property `orientation' for class `GtkVPaned'
(subscription-manager-gui:31398): libglade-WARNING **: unknown property `orientation' for class `GtkVBox'
(subscription-manager-gui:31398): libglade-WARNING **: unknown property `orientation' for class `GtkVBox'
(subscription-manager-gui:31398): libglade-WARNING **: unknown property `orientation' for class `GtkVBox'
(subscription-manager-gui:31398): libglade-WARNING **: unknown property `orientation' for class `GtkVPaned'
(subscription-manager-gui:31398): libglade-WARNING **: unknown property `orientation' for class `GtkVBox'
(subscription-manager-gui:31398): libglade-WARNING **: unknown property `orientation' for class `GtkVBox'
(subscription-manager-gui:31398): libglade-WARNING **: unknown property `orientation' for class `GtkVBox'
(subscription-manager-gui:31398): libglade-WARNING **: unknown property `invisible_char_set' for class `GtkEntry'
(subscription-manager-gui:31398): libglade-WARNING **: unknown property `orientation' for class `GtkVBox'
(subscription-manager-gui:31398): libglade-WARNING **: unknown property `orientation' for class `GtkVBox'
(subscription-manager-gui:31398): libglade-WARNING **: unknown property `orientation' for class `GtkVPaned'
(subscription-manager-gui:31398): libglade-WARNING **: unknown property `orientation' for class `GtkVBox'
/usr/sbin/subscription-manager-gui:126: GtkWarning: gdk_draw_line: assertion `gc != NULL' failed
sys.exit(gtk.main() or 0)
[root@jsefler-rhel58server-snap4 ~]# subscription-manager-gui
(subscription-manager-gui:31500): libglade-WARNING **: unknown property `orientation' for class `GtkVBox'
(subscription-manager-gui:31500): libglade-WARNING **: unknown property `orientation' for class `GtkVBox'
(subscription-manager-gui:31500): libglade-WARNING **: unknown property `orientation' for class `GtkVBox'
(subscription-manager-gui:31500): libglade-WARNING **: unknown property `orientation' for class `GtkVBox'
(subscription-manager-gui:31500): libglade-WARNING **: unknown property `orientation' for class `GtkVBox'
subscription-manager-gui is already running
python: Objects/stringobject.c:117: PyString_FromString: Assertion `str != ((void *)0)' failed.
Traceback (most recent call last):
File "/usr/sbin/subscription-manager-gui", line 113, in ?
show = bus.get_object(BUS_NAME, BUS_PATH).get_dbus_method('show_window')
File "/usr/lib64/python2.4/site-packages/dbus/proxies.py", line 25, in __call__
ret = self._proxy_method (*args, **keywords)
File "/usr/lib64/python2.4/site-packages/dbus/proxies.py", line 102, in __call__
reply_message = self._connection.send_with_reply_and_block(message, timeout)
File "dbus_bindings.pyx", line 455, in dbus_bindings.Connection.send_with_reply_and_block
dbus_bindings.DBusException: Message did not receive a reply (timeout by message bus)
[1]+ Aborted subscription-manager-gui
[root@jsefler-rhel58server-snap4 ~]#
Created attachment 556062 [details]
nasty feedback after clicking rhsm-icon while subscription-manager-gui is already running
I should also note that the behavior of rhsm-icon has regressed such that... * In rhel57, launching subscription-manager-gui would simultaneously remove rhsm-icon from display in the toolbar. * In rhel58, launching subscription-manager-gui seems to raise the display of the rhsm-icon in your face. This gives the user to a reason to click it which in turn crashes the subscription-manager-gui. That's nasty. John, If a user attempts to start a second copy of subscription-manager-gui, the second copy will determine that the first copy is running, and send it a dbus message to raise the window to the foreground. It is this dbus message to raise the window that causes the crash. Mike and I have a fix that does the following: * if a second copy of subscription-manager-gui is started, it will not start BUT it will not raise the first copy to the foreground. Previously this would make the first copy crash, and the second copy would have quit as expected, leaving the user with no subscription-manager-gui running. * the icon is not hidden when subscription-manager-gui is started We believe the second part of the fix makes the icon behave more naturally; i.e., it only disappears when the system is green. Previously, it was disappearing when clicked and then immediately re-appearing when subscription-manager-gui started, since that also triggered a dbus call to update cert status to the icon. To a user, the impact of the second fix is that the text popup is not redisplayed on subscription-manager-gui startup, provided that the popup already appeared once. The reason why we fixed that in addition to the first fix was due to the following scenario: * user clicks icon * icon disappears * subscription-manager-gui appears, fires dbus call * icon reappers immediately with popup * user clicks icon again * icon disappears, but there is no new subscription-manager-gui invocation to make it reappear again (NB: without the first fix, this step is where a crash would happen) The second fix prevents this scenario from happening. We have a fix but we need to test it out in dev a bit more to make sure it works as intended before sending on to QE. Let us know if the proposed solution needs work and we can discuss. Fix committed to master (0c24fa9e52559328254eeffaa1e1a9cc43471af9) to be approved by QA before committing to 5.8 Added second part to the bug fix to not show the blipping message dialog. master - de97915ee6436761a26e0f17dd36610ada61c5dd Verified build against master version...
[root@jsefler-onprem-5server ~]# rpm -q subscription-manager-gnome
subscription-manager-gnome-0.99.4-1.git.9.de97915.el5
Observations...
* a second invocation of subscription-manager-gui does NOT crash the first!
* a message "subscription-manager-gui is already running" is written to stdout when attempting to start a second sm gui
* the nasty empty message window in attachment 556062 [details] is no longer rendered at all
* rhsm-icon is always rendered in the toolbar when the system is NOT compliant
* rhsm-icon remains rendered even when the subscription-manager-gui is running - this is a new and improved behavior
* the rhsm-icon unrenders once sufficient entitlements are granted using sm gui and re-renders immediately when an unsubscribe event causes incompliance
My only complaint is that a click of the rhsm-icon (or a terminal call to subscription-manager-gui) will not raise an already running subscription-manager-gui from a minimized state. This should be the subject of a new less severe bug.
I recommend merging this bug fix to the RHEL5.8 branch.
merged 3663d4da99c8df6611fbfcba37795ca24d8d8ad6 RHEL5.8 The observations in comment 9 were re-verified against the RHEL-5.8-Server-RC-1.1 compose containing package version: [root@jsefler-onprem-rhel58server-rc11 ~]# rpm -q subscription-manager-gnome subscription-manager-gnome-0.98.14-1.el5 moving to VERIFIED 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. http://rhn.redhat.com/errata/RHBA-2012-0154.html |