Jazz Forum Welcome to the Jazz Community Forum Connect and collaborate with IBM Engineering experts and users

RTC scm command-line on linux throws an error if no DISPLAY variable is set and/or Xwindows is not available

 my version of the installed command-line is 
$scm -v
Build Id: RTC-I20121113-2333
com.ibm.team.filesystem.cli.core, version 3.1.200.v20121106_0746

If I try to run scm by itself, it tries to put up a GUI dialog box.  It works ok if I have a valid DISPLAY variable set, but it throws an error and core-dumps if not.  I'm trying to run this as part of a headless server script so this is a problem.  I've tried the --non-interactive flag, no joy.  Is there a flag to make scm run in a headless mode?

I'm using jre 1.6_34, on centos 6.2 64-bit.

The error is:
(Scm.binary:7099): GLib-GObject-WARNING **: invalid (NULL) pointer instance
(Scm.binary:7099): GLib-GObject-CRITICAL **: g_signal_connect_data: assertion `G_TYPE_CHECK_INSTANCE (instance)' failed
(Scm.binary:7099): Gtk-CRITICAL **: gtk_settings_get_for_screen: assertion `GDK_IS_SCREEN (screen)' failed
(Scm.binary:7099): GLib-GObject-CRITICAL **: g_object_get: assertion `G_IS_OBJECT (object)' failed
(Scm.binary:7099): GLib-GObject-WARNING **: value "TRUE" of type `gboolean' is invalid or out of range for property `visible' of type `gboolean'
(Scm.binary:7099): Gtk-CRITICAL **: gtk_settings_get_for_screen: assertion `GDK_IS_SCREEN (screen)' failed
(Scm.binary:7099): GLib-GObject-CRITICAL **: g_object_get: assertion `G_IS_OBJECT (object)' failed
(Scm.binary:7099): Gtk-WARNING **: Screen for GtkWindow not set; you must always set
a screen for a GtkWindow before using the window
(Scm.binary:7099): Gdk-CRITICAL **: gdk_pango_context_get_for_screen: assertion `GDK_IS_SCREEN (screen)' failed
(Scm.binary:7099): Pango-CRITICAL **: pango_context_set_font_description: assertion `context != NULL' failed
(Scm.binary:7099): Pango-CRITICAL **: pango_context_set_base_dir: assertion `context != NULL' failed
(Scm.binary:7099): Pango-CRITICAL **: pango_context_set_language: assertion `context != NULL' failed
(Scm.binary:7099): Pango-CRITICAL **: pango_layout_new: assertion `context != NULL' failed
(Scm.binary:7099): Pango-CRITICAL **: pango_layout_set_text: assertion `layout != NULL' failed
(Scm.binary:7099): Pango-CRITICAL **: pango_layout_set_attributes: assertion `layout != NULL' failed
(Scm.binary:7099): Pango-CRITICAL **: pango_layout_set_alignment: assertion `layout != NULL' failed
(Scm.binary:7099): Pango-CRITICAL **: pango_layout_set_ellipsize: assertion `PANGO_IS_LAYOUT (layout)' failed
(Scm.binary:7099): Pango-CRITICAL **: pango_layout_set_single_paragraph_mode: assertion `PANGO_IS_LAYOUT (layout)' failed
(Scm.binary:7099): Pango-CRITICAL **: pango_layout_set_width: assertion `layout != NULL' failed
(Scm.binary:7099): Pango-CRITICAL **: pango_layout_get_extents: assertion `layout != NULL' failed
(Scm.binary:7099): Gtk-CRITICAL **: gtk_icon_theme_get_for_screen: assertion `GDK_IS_SCREEN (screen)' failed
(Scm.binary:7099): Gtk-CRITICAL **: gtk_settings_get_for_screen: assertion `GDK_IS_SCREEN (screen)' failed
(Scm.binary:7099): Gtk-CRITICAL **: gtk_icon_size_lookup_for_settings: assertion `GTK_IS_SETTINGS (settings)' failed
(Scm.binary:7099): Gtk-WARNING **: Invalid icon size 6

(Scm.binary:7099): Gtk-CRITICAL **: gtk_icon_theme_load_icon: assertion `GTK_IS_ICON_THEME (icon_theme)' failed
(Scm.binary:7099): Gtk-WARNING **: Error loading theme icon 'gtk-dialog-error' for stock: 
(Scm.binary:7099): Gtk-CRITICAL **: gtk_icon_size_lookup_for_settings: assertion `GTK_IS_SETTINGS (settings)' failed
(Scm.binary:7099): Gtk-WARNING **: gtkstyle.c:2318: invalid icon size '6'
(Scm.binary:7099): Gtk-CRITICAL **: gtk_style_render_icon: assertion `pixbuf != NULL' failed
(Scm.binary:7099): GLib-GObject-CRITICAL **: g_object_ref: assertion `G_IS_OBJECT (object)' failed
(Scm.binary:7099): Gdk-CRITICAL **: gdk_pango_context_get_for_screen: assertion `GDK_IS_SCREEN (screen)' failed
(Scm.binary:7099): Pango-CRITICAL **: pango_context_set_font_description: assertion `context != NULL' failed
(Scm.binary:7099): Pango-CRITICAL **: pango_context_set_base_dir: assertion `context != NULL' failed
(Scm.binary:7099): Pango-CRITICAL **: pango_context_set_language: assertion `context != NULL' failed
(Scm.binary:7099): Pango-CRITICAL **: pango_layout_new: assertion `context != NULL' failed
(Scm.binary:7099): Pango-CRITICAL **: pango_layout_set_text: assertion `layout != NULL' failed
(Scm.binary:7099): Pango-CRITICAL **: pango_layout_get_attributes: assertion `PANGO_IS_LAYOUT (layout)' failed
(Scm.binary:7099): Pango-CRITICAL **: pango_layout_set_alignment: assertion `layout != NULL' failed
(Scm.binary:7099): Pango-CRITICAL **: pango_layout_set_ellipsize: assertion `PANGO_IS_LAYOUT (layout)' failed
(Scm.binary:7099): Pango-CRITICAL **: pango_layout_set_single_paragraph_mode: assertion `PANGO_IS_LAYOUT (layout)' failed
(Scm.binary:7099): Pango-CRITICAL **: pango_layout_set_wrap: assertion `PANGO_IS_LAYOUT (layout)' failed
(Scm.binary:7099): Pango-CRITICAL **: pango_layout_set_width: assertion `layout != NULL' failed
(Scm.binary:7099): Pango-CRITICAL **: pango_layout_get_extents: assertion `layout != NULL' failed
(Scm.binary:7099): Gdk-CRITICAL **: gdk_pango_context_get_for_screen: assertion `GDK_IS_SCREEN (screen)' failed
(Scm.binary:7099): Pango-CRITICAL **: pango_context_set_font_description: assertion `context != NULL' failed
(Scm.binary:7099): Pango-CRITICAL **: pango_context_set_base_dir: assertion `context != NULL' failed
(Scm.binary:7099): Pango-CRITICAL **: pango_context_set_language: assertion `context != NULL' failed
(Scm.binary:7099): Pango-CRITICAL **: pango_layout_new: assertion `context != NULL' failed
(Scm.binary:7099): Pango-CRITICAL **: pango_layout_set_text: assertion `layout != NULL' failed
(Scm.binary:7099): Pango-CRITICAL **: pango_layout_get_extents: assertion `layout != NULL' failed
(Scm.binary:7099): GLib-GObject-CRITICAL **: g_object_unref: assertion `G_IS_OBJECT (object)' failed
(Scm.binary:7099): Gdk-CRITICAL **: gdk_screen_get_width: assertion `GDK_IS_SCREEN (screen)' failed
(Scm.binary:7099): Gdk-CRITICAL **: gdk_screen_get_width: assertion `GDK_IS_SCREEN (screen)' failed
(Scm.binary:7099): Pango-CRITICAL **: pango_layout_set_width: assertion `layout != NULL' failed
(Scm.binary:7099): Pango-CRITICAL **: pango_layout_get_extents: assertion `layout != NULL' failed
(Scm.binary:7099): Pango-CRITICAL **: pango_layout_get_line_count: assertion `layout != NULL' failed
Floating point exception (core dumped)



0 votes

Comments

What is the exact command you are running?
How did you install scm?
Do you know what version you installed? (The -ver does not seem to show the "real" version)



5 answers

Permanent link
 I resolved this by removing X Windows and GTK from the system entirely.  Since this is a build server, it wasn't really needed anyway.

The dialog was something akin to "workspace not found" or something.  I'm using the jenkins RTC plugin which first tries to run a history, and if by return code the workspace doesn't exist, jenkins goes ahead and creates it.

Thanks

1 vote

Comments

If removing X Windows from the system is not a good solution for others, an alternative to try would be to disable SWT.  A simple way of doing this is to add a "-ws" argument to the scm.ini file:

-ws
none
-vm
../../client/eclipse/jdk/jre/bin
--launcher.suppressErrors
...

By setting the window system to "none", the swt fragment (org.eclipse.swt.gtk.linux.x86) would fail to resolve. Though I'm not sure how the jenkins plugin would react to this.

 Thanks.  That was probably the switches I was looking for.


Permanent link
Since scm cli is based on Eclipse, Eclipse still requires a running X server to function. Probably there are ways to make Eclipse run in true headless mode.

0 votes

Comments

the scm command works fine on a system of mine that has no X installed at all. 


Permanent link
My understanding is that the application would need to be designed so it could run in headless mode.  If scm is not designed to run in headless mode, then not sure anything can be done.  If you find a way to get it to work please post here, otherwise I think this is a candidate for a feature enhancement.   To open an enhancement request, select the "My Stuff" link in the upper right hand corner of jazz.net, then select the work item tab and click on open a defect.  A prompt to log in will appear, use your jazz credentials, then fill out the work  item. 

0 votes


Permanent link
As mentioned, the scm command line is based on Eclipse.

However, Eclipse has supported running on linux without a display since 3.4, and it looks like you are running RTC 4.0.1 which is based on Eclipse 3.6.1. 

You can double check that your scm.ini file contains the line --launcher.suppressErrors , this causes the launcher to print errors to stderr instead of showing a dialog.  The 4.0.1 scm client I looked at has this already.

If you do set the DISPLAY, what is the content of the dialog box being shown?  It would be helpful to know where the dialog is coming from.

0 votes


Permanent link
My current version is RTC 4. I am running scm on Linux machines with X11 installed. My scm.ini contains:
-vm
../../client/eclipse/jdk/jre/bin
--launcher.suppressErrors
-data
@noDefault
-vmargs
-Xmx512m
-Xshareclasses:nonfatal
-Xquickstart
-Dosgi.requiredJavaVersion=1.6
Whether DISPLAY is defined or not, I don't see an X11 dialog and scm runs OK.

Now, when we were running RTC 3, I remember having X11-related error messages when Eclipse-based utilities were launched in a shell that had the DISPLAY and XAUTHORITY env vars. Unsetting these vars fixed the prob.


0 votes

Your answer

Register or log in to post your answer.

Dashboards and work items are no longer publicly available, so some links may be invalid. We now provide similar information through other means. Learn more here.

Search context
Follow this question

By Email: 

Once you sign in you will be able to subscribe for any updates here.

By RSS:

Answers
Answers and Comments
Question details
× 1,202
× 457
× 343
× 37

Question asked: Aug 12 '13, 9:35 p.m.

Question was seen: 8,790 times

Last updated: Aug 13 '13, 7:29 p.m.

Confirmation Cancel Confirm