Bug #4985
closedproblem with workflows using Rexpression on Windows XP
0%
Description
On Windows XP workflows using RExpression don't finish execution. This happens in RC2 and wrp trunk on XP, the console for wrp trunk endlessly spews:
WARN (org.ecoinformatics.seek.R.Rxpression$_StreamReaderThread:_read: 1615) In catch block of _read!
Updated by jianwu jianwu over 14 years ago
I found two workflows can not be executed on Windows 7 64 bit: Kepler-2.0.0-Demos\demos\R\r-2.0.0\demos\R\localFile_to_dataFrame_R and sampling_occurrenceData_ R.
First of all, many workflows still use property("KEPLER") which should be changed to property("DEMODIR").
For workflow "sampling_occurrenceData_ R", it tried to use property("KEPLER")+"/lib/testdata/garp/DataPoints.txt". I finally found the file at Kepler-2.0.0-Demos\demos\R\data\garp directory. So it probably should be property("DEMODIR")+"/data/garp/DataPoints.txt"
After I manually pointed to the correct dir, these two workflows work for me.
I also tried workflows in Kepler-2.0.0-Demos\demos\R\r-2.0.0\demos\JRI directory, the whole Kepler just quit with the following message in the console. It makes sense that the dll doesn't work for 64 bit machine. But just quitting Kepler is too unfriendly.
[null] Cannot find JRI native library!
[null] Please make sure that the JRI native library is in a directory liste
d in java.library.path.
[null]
[null] java.lang.UnsatisfiedLinkError: C:\Program Files\Kepler-2.0-RC2\r-2.
0.0\lib\jri.dll: Can't load IA 32-bit .dll on a AMD 64-bit platform
[null] at java.lang.ClassLoader$NativeLibrary.load(Native Method)
[null] at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1753)
[null] at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1678)
[null] at java.lang.Runtime.loadLibrary0(Runtime.java:822)
[null] at java.lang.System.loadLibrary(System.java:993)
[null] at org.rosuda.JRI.Rengine.<clinit>(Rengine.java:19)
[null] at org.ecoinformatics.seek.R.RExpression2._initializeRengine(REx
pression2.java:569)
[null] at org.ecoinformatics.seek.R.RExpression2._fireUsingJRI(RExpress
ion2.java:547)
[null] at org.ecoinformatics.seek.R.RExpression2.fire(RExpression2.java
:289)
[null] at ptolemy.actor.AtomicActor.iterate(AtomicActor.java:469)
[null] at ptolemy.actor.sched.StaticSchedulingDirector.fire(StaticSched
ulingDirector.java:188)
[null] at ptolemy.actor.CompositeActor.fire(CompositeActor.java:458)
[null] at ptolemy.actor.Manager.iterate(Manager.java:749)
[null] at ptolemy.actor.Manager.execute(Manager.java:351)
[null] at ptolemy.actor.Manager.run(Manager.java:1162)
[null] at ptolemy.actor.Manager$3.run(Manager.java:1215)
Exception in thread "main" Java returned: 1
at org.kepler.build.modules.ModulesTask.execute(ModulesTask.java:105)
at org.kepler.build.runner.Kepler.main(Kepler.java:78)
Caused by: Java returned: 1
at org.apache.tools.ant.taskdefs.Java.execute(Java.java:108)
at org.kepler.build.Run.runSuite(Run.java:298)
at org.kepler.build.Run.run(Run.java:202)
at org.kepler.build.modules.ModulesTask.execute(ModulesTask.java:101)
... 1 more
--- Nested Exception ---
Java returned: 1
at org.apache.tools.ant.taskdefs.Java.execute(Java.java:108)
at org.kepler.build.Run.runSuite(Run.java:298)
at org.kepler.build.Run.run(Run.java:202)
at org.kepler.build.modules.ModulesTask.execute(ModulesTask.java:101)
at org.kepler.build.runner.Kepler.main(Kepler.java:78)
P.S.: Do the workflows in Kepler-2.0.0-Demos\demos\R\r-2.0.0\demos\JRI\problems directory really have execution "problems"? This directory name is confusing.
Updated by Derik Barseghian over 14 years ago
My problem in comment 1-- workflows using RExpression on XP never finish executing -- is still an issue in RC3 and on trunk on XP.
Updated by Derik Barseghian over 14 years ago
Ben tried to replicate on his XP box, and my problem with an infinite loop in _read didn't happen to him. It's still happening to me though...
Updated by Derik Barseghian over 14 years ago
Infinite loop problem is fixed and error message about R not being on path should properly show now on trunk at r24573 and 2.0 at r24576. Leaving open for a bit more testing.
Updated by ben leinfelder over 14 years ago
(In reply to comment #1)
1. Derik will change the workflows to point to the DEMODIR path.
2. The RExpression2 (JRI-based) actor will fail if the libs are not found. This is probably deep in the JRI.jar library when it cannot load the correct native lib for the platform. We could probably try to detect the 32 v. 64 bitness of the system and prevent the actor from attempting to use JRI if it was on a 64 bit machine - otherwise it will be the hard failure (system.exit)
3. the JRI/problems directory contains workflows in which I swapped the original RExpression actor for the RExpression2 actor to see if they were compatible. These workflows showed slight differences and require changes in order to run. The specifics are captured in another bug (http://bugzilla.ecoinformatics.org/show_bug.cgi?id=4010)
Updated by jianwu jianwu over 14 years ago
(In reply to comment #5)
(In reply to comment #1)
2. The RExpression2 (JRI-based) actor will fail if the libs are not found. This
is probably deep in the JRI.jar library when it cannot load the correct native
lib for the platform. We could probably try to detect the 32 v. 64 bitness of
the system and prevent the actor from attempting to use JRI if it was on a 64
bit machine - otherwise it will be the hard failure (system.exit)
Matlab actors also have 32 and 64 bit issue when using JNI libraries to communicate with Matlab. It will pop up an exception message when the JNI lib doesn't work with the system. You can find some information at https://kepler-project.org/developers/teams/build/matlab-lib-build-instructions-in-kepler-for-matlab-actor. It may help this bug.
Updated by Derik Barseghian over 14 years ago
Fixed the 2 workflows, and tested on 2.0 and trunk on mac, and 2.0 on XP, and they work. I'm going to move the concern about RExpression2 into a separate bug, targeted post 2.0, and close this one.
Updated by ben leinfelder over 14 years ago
i'll try to make 64 bit libs for JRI