Description of problem: On a fresh install: As root or regular user run subscription-manager-gui from gnome-terminal. The application starts and displays its window. Shortly after in the notification area an icon displays that says "Invalid or Missing Entitlement certificates". After clicking on the icon (not the popup message) the window of subscription-manager-gui closes: (subscription-manager-gui:4571): libglade-WARNING **: unknown property `orientation' for class `GtkVBox' (subscription-manager-gui:4571): libglade-WARNING **: unknown property `orientation' for class `GtkVPaned' (subscription-manager-gui:4571): 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) python: Objects/stringobject.c:117: PyString_FromString: Assertion `str != ((void *)0)' failed. ^^^^^ this is the error. Version-Release number of selected component (if applicable): subscription-manager-0.98.10-1.el5 How reproducible: always Steps to Reproduce (the easiest): 1. Perform fresh 5.8 install (I used Xen PV guest, default install) 2. Skip firstboot registration 3. Login as root into GNOME 4. Open gnome-terminal and run subscription-manager-gui 5. Wait for the notification icon to appear and popup its message 6. Click on the icon, not the message (or wait for the message to hide) Actual results: Error, program closes Expected results: Not sure but program should not close. Additional info:
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