Bug 2996 - ws-gram does not handle Windows paths in RSL's
: ws-gram does not handle Windows paths in RSL's
Status: RESOLVED FIXED
: GRAM
wsrf managed execution job service
: 3.9.5
: PC Windows XP
: P3 normal
: 4.2
Assigned To:
:
:
:
:
  Show dependency treegraph
 
Reported: 2005-03-23 08:50 by
Modified: 2005-05-18 15:28 (History)


Attachments


Note

You need to log in before you can comment on or make changes to this bug.


Description From 2005-03-23 08:50:37
for a job submission on windows, gram does not like either the drive 
letter/colon or the back slashes in the stdout/stderr tags. Jarek says this 
should work.

I have included examples of both situations below.

The workaround is to use frontslashes, which works, but there is no way to 
specify other than the current drive.

*********************
Driver Letter Problem
*********************

*********
Error Log

2005-03-22 21:15:38,179 ERROR exec.StateMachine [Thread-
11,processOpenStdoutState:1058] Invalid URL
constructed from stdout path: w:\hello.out
java.net.MalformedURLException: Invalid port number: \hello.out
        at org.globus.util.GlobusURL.parseHostPort(GlobusURL.java:153)
        at org.globus.util.GlobusURL.<init>(GlobusURL.java:81)
        at org.globus.exec.service.exec.StateMachine.processOpenStdoutState
(StateMachine.java:1051)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke
(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke
(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:324)
        at org.globus.exec.service.exec.StateMachine.processState
(StateMachine.java:334)
        at org.globus.exec.service.exec.RunQueue.run(RunQueue.java:141)

***
RSL

<job>
     <executable>c:\util\UnixUtils\usr\local\wbin\echo.exe</executable>
     <directory>w:\</directory>
     <argument>Hello World!</argument>
     <stdout>w:\hello.out</stdout>
     <stderr>w:\hello.err</stderr>
</job>

*****************
Backslash Problem
*****************

*********
Error Log

2005-03-22 21:25:58,951 ERROR exec.StateMachine [Thread-
12,processOpenStderrState:1147] Unable to se
t resource property stdoutURL
org.apache.axis.types.URI$MalformedURIException: Path contains invalid 
character: \
        at org.apache.axis.types.URI.initializePath(URI.java:919)
        at org.apache.axis.types.URI.initialize(URI.java:527)
        at org.apache.axis.types.URI.<init>(URI.java:283)
        at org.apache.axis.types.URI.<init>(URI.java:267)
        at org.globus.exec.service.exec.StateMachine.processOpenStderrState
(StateMachine.java:1140)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke
(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke
(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:324)
        at org.globus.exec.service.exec.StateMachine.processState
(StateMachine.java:334)
        at org.globus.exec.service.exec.RunQueue.run(RunQueue.java:141)

***
RSL

<job>
     <executable>c:\util\UnixUtils\usr\local\wbin\echo.exe</executable>
     <directory>\tmp</directory>
     <argument>Hello World!</argument>
     <stdout>\tmp\hello.out</stdout>
     <stderr>\tmp\hello.err</stderr>
</job>
------- Comment #1 From 2005-05-17 18:08:14 -------
I can't reproduce this error since I don't have a Windows port.  Bob, I think
you'll just have to debug it yourself as a part of the porting process.  I can
help where I can, but I don't see how I'm going to be able to do much with this
directly.
------- Comment #2 From 2005-05-17 18:11:55 -------
Actually, I was doing something different.  Ignore my last comment.
------- Comment #3 From 2005-05-17 18:29:11 -------
This appears to be a limitation in the GlobusURL class.  I'm reassigning to
Jarek.
------- Comment #4 From 2005-05-18 00:36:16 -------
This is not a bug GlobusURL. URLs in general use / slashes. The executable, 
stdout, stderr, etc. values must be first translated into the right URL format 
(the value cannot just be passed to the URL/URI class). Doing (new File
(executable)).toURL() should work. 
------- Comment #5 From 2005-05-18 15:28:19 -------
Fixes in trunk and globus_4_0_branch.

The problem was the mapping code that converted the paths to gsiftp URLs.  They
should all map correctly now, with all '\' characters converted to "%5C" in the
stdoutUrl and stderrUrl resource properties to satisfy URI compliance.