problem with workflows using Rexpression on Windows XP
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!
#1 Updated by jianwu jianwu about 10 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] 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
[null] at org.ecoinformatics.seek.R.RExpression2._fireUsingJRI(RExpress
[null] at org.ecoinformatics.seek.R.RExpression2.fire(RExpression2.java
[null] at ptolemy.actor.AtomicActor.iterate(AtomicActor.java:469)
[null] at ptolemy.actor.sched.StaticSchedulingDirector.fire(StaticSched
[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
Caused by: Java returned: 1
... 1 more
--- Nested Exception ---
Java returned: 1
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.
#5 Updated by ben leinfelder about 10 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)
#6 Updated by jianwu jianwu about 10 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.