Bug #448

Scenic should quit gracefully when DISPLAY is not set or invalid

Added by Simon Piette about 3 years ago. Updated about 3 years ago.

Status:Closed Start date:
Priority:Normal Due date:
Assignee:Alexandre Quessy % Done:

0%

Category:scenic.gtk Spent time: -
Target version:0.5.1
Resolution:fixed Version:0.5
Trac ticket ID:448

Description

How to reproduce:

* Start scenic
Traceback:
<pre>
2010/04/26 11:44 -0400 [-] /home/scenic/src/scenic/trunk/py/scenic/glade.py:58: gobject.Warning: invalid (NULL) pointer instance
2010/04/26 11:44 -0400 [-] /home/scenic/src/scenic/trunk/py/scenic/glade.py:58: gobject.Warning: g_signal_connect_data: assertion @G_TYPE_CHECK_INSTANCE (instance)' failed
2010/04/26 11:44 -0400 [-] /home/scenic/src/scenic/trunk/py/scenic/glade.py:58: gtk.GtkWarning: gtk_settings_get_for_screen: assertion @GDK_IS_SCREEN (screen)' failed
2010/04/26 11:44 -0400 [-] /home/scenic/src/scenic/trunk/py/scenic/glade.py:58: gobject.Warning: g_object_get: assertion @G_IS_OBJECT (object)' failed
2010/04/26 11:44 -0400 [-] /home/scenic/src/scenic/trunk/py/scenic/glade.py:58: gobject.Warning: value "TRUE" of type @gboolean' is invalid or out of range for property @visible' of type @gboolean'
2010/04/26 11:44 -0400 [-] /home/scenic/src/scenic/trunk/py/scenic/glade.py:58: gtk.GtkWarning: gdk_pango_context_get_for_screen: assertion @GDK_IS_SCREEN (screen)' failed
2010/04/26 11:44 -0400 [-] /home/scenic/src/scenic/trunk/py/scenic/glade.py:58: pango.PangoWarning: pango_context_set_font_description: assertion @context != NULL' failed
2010/04/26 11:44 -0400 [-] /home/scenic/src/scenic/trunk/py/scenic/glade.py:58: pango.PangoWarning: pango_context_set_base_dir: assertion @context != NULL' failed
2010/04/26 11:44 -0400 [-] /home/scenic/src/scenic/trunk/py/scenic/glade.py:58: pango.PangoWarning: pango_context_set_language: assertion @context != NULL' failed
2010/04/26 11:44 -0400 [-] /home/scenic/src/scenic/trunk/py/scenic/glade.py:58: pango.PangoWarning: pango_layout_new: assertion @context != NULL' failed
2010/04/26 11:44 -0400 [-] /home/scenic/src/scenic/trunk/py/scenic/glade.py:58: pango.PangoWarning: pango_layout_set_single_paragraph_mode: assertion @PANGO_IS_LAYOUT (layout)' failed
2010/04/26 11:44 -0400 [-] /home/scenic/src/scenic/trunk/py/scenic/glade.py:58: pango.PangoWarning: pango_layout_set_ellipsize: assertion @PANGO_IS_LAYOUT (layout)' failed
2010/04/26 11:44 -0400 [-] /home/scenic/src/scenic/trunk/py/scenic/glade.py:58: pango.PangoWarning: pango_layout_set_width: assertion @layout != NULL' failed
2010/04/26 11:44 -0400 [-] /home/scenic/src/scenic/trunk/py/scenic/glade.py:58: pango.PangoWarning: pango_layout_set_wrap: assertion @PANGO_IS_LAYOUT (layout)' failed
2010/04/26 11:44 -0400 [-] /home/scenic/src/scenic/trunk/py/scenic/glade.py:58: pango.PangoWarning: pango_layout_set_alignment: assertion @layout != NULL' failed
2010/04/26 11:44 -0400 [-] /home/scenic/src/scenic/trunk/py/scenic/glade.py:58: pango.PangoWarning: pango_layout_set_attributes: assertion @layout != NULL' failed
2010/04/26 11:44 -0400 [-] /home/scenic/src/scenic/trunk/py/scenic/glade.py:58: pango.PangoWarning: pango_layout_get_extents: assertion @layout != NULL' failed
2010/04/26 11:44 -0400 [-] /home/scenic/src/scenic/trunk/py/scenic/glade.py:58: gobject.Warning: g_object_unref: assertion @G_IS_OBJECT (object)' failed
2010/04/26 11:44 -0400 [-] /home/scenic/src/scenic/trunk/py/scenic/glade.py:58: pango.PangoWarning: pango_layout_set_text: assertion @layout != NULL' failed
2010/04/26 11:44 -0400 [-] /home/scenic/src/scenic/trunk/py/scenic/gui.py:228: gtk.GtkWarning: gtk_window_set_screen: assertion @GDK_IS_SCREEN (screen)' failed
2010/04/26 11:44 -0400 [-] /home/scenic/src/scenic/trunk/py/scenic/gui.py:304: gtk.GtkWarning: gdk_pango_context_get_for_screen: assertion @GDK_IS_SCREEN (screen)' failed
2010/04/26 11:44 -0400 [-] /home/scenic/src/scenic/trunk/py/scenic/gui.py:304: pango.PangoWarning: pango_context_set_font_description: assertion @context != NULL' failed
2010/04/26 11:44 -0400 [-] /home/scenic/src/scenic/trunk/py/scenic/gui.py:304: pango.PangoWarning: pango_context_set_base_dir: assertion @context != NULL' failed
2010/04/26 11:44 -0400 [-] /home/scenic/src/scenic/trunk/py/scenic/gui.py:304: pango.PangoWarning: pango_context_set_language: assertion @context != NULL' failed
2010/04/26 11:44 -0400 [-] /home/scenic/src/scenic/trunk/py/scenic/gui.py:304: pango.PangoWarning: pango_layout_new: assertion @context != NULL' failed
2010/04/26 11:44 -0400 [-] /home/scenic/src/scenic/trunk/py/scenic/gui.py:304: pango.PangoWarning: pango_layout_set_text: assertion @layout != NULL' failed
2010/04/26 11:44 -0400 [-] /home/scenic/src/scenic/trunk/py/scenic/gui.py:304: pango.PangoWarning: pango_layout_set_attributes: assertion @layout != NULL' failed
2010/04/26 11:44 -0400 [-] /home/scenic/src/scenic/trunk/py/scenic/gui.py:304: pango.PangoWarning: pango_layout_set_alignment: assertion @layout != NULL' failed
2010/04/26 11:44 -0400 [-] /home/scenic/src/scenic/trunk/py/scenic/gui.py:304: pango.PangoWarning: pango_layout_set_ellipsize: assertion @PANGO_IS_LAYOUT (layout)' failed
2010/04/26 11:44 -0400 [-] /home/scenic/src/scenic/trunk/py/scenic/gui.py:304: pango.PangoWarning: pango_layout_set_single_paragraph_mode: assertion @PANGO_IS_LAYOUT (layout)' failed
2010/04/26 11:44 -0400 [-] /home/scenic/src/scenic/trunk/py/scenic/gui.py:304: pango.PangoWarning: pango_layout_set_width: assertion @layout != NULL' failed
2010/04/26 11:44 -0400 [-] /home/scenic/src/scenic/trunk/py/scenic/gui.py:304: pango.PangoWarning: pango_layout_get_extents: assertion @layout != NULL' failed
2010/04/26 11:44 -0400 [-] /home/scenic/src/scenic/trunk/py/scenic/gui.py:304: gtk.GtkWarning: gtk_settings_get_for_screen: assertion @GDK_IS_SCREEN (screen)' failed
2010/04/26 11:44 -0400 [-] /home/scenic/src/scenic/trunk/py/scenic/gui.py:304: gobject.Warning: g_object_get: assertion @G_IS_OBJECT (object)' failed
2010/04/26 11:44 -0400 [-] /home/scenic/src/scenic/trunk/py/scenic/gui.py:304: pango.PangoWarning: pango_layout_get_pixel_extents: assertion @PANGO_IS_LAYOUT (layout)' failed
2010/04/26 11:44 -0400 [-] /home/scenic/src/scenic/trunk/py/scenic/gui.py:304: gobject.Warning: g_object_unref: assertion @G_IS_OBJECT (object)' failed
2010/04/26 11:44 -0400 [-] /home/scenic/src/scenic/trunk/py/scenic/gui.py:304: gtk.GtkWarning: gtk_icon_theme_get_for_screen: assertion @GDK_IS_SCREEN (screen)' failed
2010/04/26 11:44 -0400 [-] /home/scenic/src/scenic/trunk/py/scenic/gui.py:304: gtk.GtkWarning: gtk_icon_size_lookup_for_settings: assertion @GTK_IS_SETTINGS (settings)' failed
2010/04/26 11:44 -0400 [-] /home/scenic/src/scenic/trunk/py/scenic/gui.py:304: gtk.GtkWarning: Invalid icon size 1

2010/04/26 11:44 -0400 [-] /home/scenic/src/scenic/trunk/py/scenic/gui.py:304: gtk.GtkWarning: gtk_icon_theme_load_icon: assertion @GTK_IS_ICON_THEME (icon_theme)' failed
./py/run: line 5: 22594 Segmentation fault      PATH=../src/main:./scripts:${PATH} ./scripts/scenic $@

</pre>

History

Updated by Alexandre Quessy about 3 years ago

  • Status changed from New to In Progress

I already check if the os.environ has a key called "DISPLAY". Should be use xdpyinfo to see if the display exists? Otherwise, should we just see if it matches :[0-10].[0-10] ?

Updated by Alexandre Quessy about 3 years ago

I think we should use some GTK mechanism to check that.

Something like GDK_IS_SCREEN (screen)

Updated by Alexandre Quessy about 3 years ago

  • Status changed from In Progress to Closed
  • Resolution set to fixed

Done in r5741.

GTK rocks.

Also available in: Atom PDF