Bug 153246 - [dstore] Insufficient diagnostics in REXEC server launcher
Summary: [dstore] Insufficient diagnostics in REXEC server launcher
Status: ASSIGNED
Alias: None
Product: Target Management
Classification: Tools
Component: RSE (show other bugs)
Version: unspecified   Edit
Hardware: PC Windows XP
: P4 minor (vote)
Target Milestone: ---   Edit
Assignee: dsdp.tm.rse-inbox CLA
QA Contact: Martin Oberhuber CLA
URL:
Whiteboard:
Keywords: bugday
Depends on: 235753
Blocks:
  Show dependency tree
 
Reported: 2006-08-09 04:36 EDT by Martin Oberhuber CLA
Modified: 2012-11-19 04:57 EST (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Martin Oberhuber CLA 2006-08-09 04:36:04 EDT
Set up a dstore connection to Linux (e.g. Redhat Enterprise WS4), using the REXEC server launcher. The default JVM on Redhat machines is based on gcj, and gcj is unable to run the dstore server. Therefore, when trying to start the server from an rexec commandline, the following traceback is seen:

$ rexec parser "cd /folk/mober/RSETest/latest/server ; perl ./server.pl"
Name (parser.takefive.co.at:mober):
Password (parser.takefive.co.at:mober):
Dstore Server Starting...
Exception in thread "main" java.lang.NoClassDefFoundError: while resolving class
: org.eclipse.dstore.core.server.ConnectionEstablisher
   at java.lang.VMClassLoader.resolveClass(java.lang.Class) (/usr/lib/libgcj.so.
5.0.0)
   ...

The problem is, that when the REXEC launcher is set up in RSE, no useful error message is shown.
  * Choose Connect... and enter username / password. Message:
    "Unable to connect to REXEC host service on port 512 of host PARSER"


Suggested enhancements:
In case the REXEC launcher could authenticate successfully and run "something" on the remote side, the output from the remote side should be part of the error message.

As an optional additonal enhancement, gcj could be detected and proper error reporting made for the user (since this may be a common setup problem -- REXEC uses the default PATH, which will point to gcj even if a Sun or IBM jvm is installed).
Comment 1 Martin Oberhuber CLA 2006-08-09 04:51:15 EDT
The interesting point is, that in DStoreConnectorService:line 1056,
    throw new SystemMessageException(msg);
"msg" is a correct SystemMessage which DOES contain the original server error message as LevelTwoText. 

The problem is, that in the RSE UI this LevelTwoText is nowhere visible.
- In the PDE Error Log it's invisible (could perhaps be added as "caused by" exception)
- In the popup window it's also invisible
- If, instead of choosing contextmenu > connect, a filter is expanded (in order to do an implicit connect) no error message is shown at all.

WORKAROUND for the original problem with gcj: Instead of just 
   perl ./server.pl
The Server Launch command should be set to something like
   sh -c "PATH=/opt/j2sdk1.4.2_11/bin:$PATH perl ./server.pl"
Comment 2 Martin Oberhuber CLA 2006-10-24 15:00:29 EDT
I believe this is fixed by RC2.
Comment 3 Martin Oberhuber CLA 2007-05-11 13:03:55 EDT
To be reviewed again with RC1 since this is not urgent.