Matlab Snippet doesn't work anymore

Hi

I've recently upgraded to Knime 2.11.2 (from 2.10.4). Since then a Matlab Snippet that used to work in Knime 2.10.4 gives the following error message:

ERROR  Matlab Snippet                  Execute failed: Support code location could not be determined. Could not convert from URL to URI location.
URL Location: file:/C:/Program Files/KNIME_2.11.2/plugins/de.mpicbg.knime.scripting.matlab.srv_2.0.3.201502241335/lib/matlabcontrol-4.1.0.jar
Code Source: (file:/C:/Program Files/KNIME_2.11.2/plugins/de.mpicbg.knime.scripting.matlab.srv_2.0.3.201502241335/lib/matlabcontrol-4.1.0.jar <no signer certificates>)
Protection Domain: ProtectionDomain  (file:/C:/Program Files/KNIME_2.11.2/plugins/de.mpicbg.knime.scripting.matlab.srv_2.0.3.201502241335/lib/matlabcontrol-4.1.0.jar <no signer certificates>)
 null
 <no principals>
 java.security.AllPermissionCollection@1324fd23 (
 ("java.security.AllPermission" "<all permissions>" "<all actions>")
)

Class Loader: org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader@14270b18
Class Loader Class: class org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader

I then realized that the matlab server is not required anymore in the new version so I run my local Matlab without starting the startserver.m script but it makes no difference whether the server is running or not, the error message remains the same.

I'm working on a windows 7 system. Any idea why I have this problem now?

 

Best

Christian

 

Hi Christian

nice, your still using it :)

the error message is not allowing me a sound conclusion. I would need to be able to reproduce the problem.

I the meantime check the following:

  • Could you check your preferences?
  • Do you have matlab installed on you local machine?
  • Try pulling a new matlab node in your workflow, and copy the script from the old one.

best,

Felix

Hi Felix,

thanks for your reply. Meanwhile I played around a bit and found out that I had to add some Knime plugin folders to the path of my (locally installed) Matlab. Then the error message that I'd posted before didn't show up anymore. I used a simple data table and a Matlab Snippet with mOut = kIn for testing.  It seems to work at least to some extent because in the Matlab command window I see:

Started from KNIME (MATLAB scripting integration)
 
Node 1:

mOut =

         column1    column2
    1    1          1      
    2    2          2      
    3    3          3      
    4    4          4      
    5    5          5      
    6    6          6      

exectuted snippet and updated mOut.

However the Matlab Snippet Node in Knime is not executed correctly. In Knime I get now the following error message:

ERROR     Matlab Snippet  Execute failed: Index: 0, Size: 0

It seems that the communication from Matlab back to Knime doesn't really work. Just in case I also added the Knime "Directory for temporary files" to the Matlab path but it didn't do the job so I'm still stuck. Maybe you can help.

 

Christian

 

Hi Felix,

I got the same problem when I wanted to use the latest release. Switching back one commit (the one where you disabled the matlab server), I was able to run it.

Did anything get broken there? I will try to look into it today.

Sorry, I got it wrong.

The error message I get is a different one running it with KNIME 2.11.2

ERROR	 Matlab Snippet                	 Execute failed: Could not bind proxy receiver to the RMI registry

On the same machine, I can start the snippet running KNIME from the SDK...

I don't have a clue what is going on there.

 

Short update. The first error message that I posted has nothing to do with adding some Knime folders to the Matlab path. If Knime is installed on the system partition C I get that error message. If I install it on D instead it works at least partially (the way I described in my second post). It seems that it has something to do with Windows Security Management. Even though I gave full access to all Knime and Matlab folders on the system partition (at least I think I did).

It wouldn't surprise me if the second error message that I get in Knime if Matlab is correctly launched also has to do with that. Matlab is installed on C: on my system. Still it is not working for me at the moment. Since I can not restore my version of Knime that still worked with the Matlab server: Is there a way to go back to version 2.01?

Best,

Christian

Hi

I was also a bit complexed, that when debugging from eclipse everything is fine and once I donwload the plugin with a normal KNIME installation, MATLAB does not even start. I looks like there is a JavaSecurity problem when trying to do remote class loading. But I will have to dig a bit more before I found the problem.

@Christian
If you go to Help>Install New Software and select the "Trusted Community Contributions" update site from the dropdown menu, you should be able to install 2.0.1, provided that you uncheck "Show only the latest version of available software" in the lower panel of the dialog.

Felix
 

Hi Felix,

thanks, the downgrading to 2.0.1 worked!

Christian

Just want to share my experience here. I had the same issue.

I did uninstall KNIME and re-installed things rather than upgrading ti an older version. There is an option to

install nodes compatible with the latest version 2.11.X. Please refer to KNIME docs that explain how to add nodes to your installation.

There is no need to start a Matlab server, these Matlab nodes will open up Matlab automatically and appear to work correctly.

Leo

I did what Leo suggested and still had the same problem. Snippet was correctly executed in Matlab but the Matlab Snippet node in Knime was aborted with "ERROR     Matlab Snippet  Execute failed: Index: 0, Size: 0".

After I changed the data transfer method in the Knime preferences from "file" to "workspace" the same snippet was executed correctly. So it works fine now.

Best,

Christian

I am observing the same issue, and from what I have been able to deduce, problem seem to be the existence of spaces in the file (knime installation) path.

Did anything with path handling changed recently? 

 

Best,

Milos

We just ran into the same issue, and the space in the installation directory really made the different plus the MATLAB env variable need to be set.