Run Workflow on Server: No such node ID: 3

We just updated our KNIME Server from version 4.9 to the most recent version 4.10. Along with the server update, we downloaded and installed a fresh executor (KNIME 4.1.1) downloaded from your website. The executor is properly referenced in the server config.

As we use custom nodes, I installed them using the P2 director and got the following output:

Installing com.***.feature.feature.group 1.3.1.202001271554.
Operation completed in 7135 ms.
Feb 13, 2020 1:21:43 PM org.apache.cxf.bus.osgi.CXFExtensionBundleListener unregister
INFO: Removing the extensions for bundle 252
Feb 13, 2020 1:21:43 PM org.apache.cxf.bus.osgi.CXFExtensionBundleListener unregister
INFO: Removing the extensions for bundle 253

Plugins and features can be found in the plugins/ and features/ folders of the KNIME executor directory.

$ ls -al /opt/knime-latest/plugins/ | grep ***
-rw-r--r--   1 knime knime    24395 Feb 13 12:40 com.***.plugin_1.3.1.202001271554.jar

$ ls -al /opt/knime-latest/features/ | grep ***
drwxr-xr-x   3 knime knime  4096 Feb 13 12:40 com.***.feature_1.3.1.202001271554

When executing a workflow with a custom node on the server, we get the following exception:

13-Feb-2020 12:58:37.720 WARNING [KNIME-RMI-syserr-50100] com.knime.enterprise.server.executor.rmi.ProcessOutputConsumer.logOutput ERROR         RMI TCP Connection(16)-127.0.0.1 StackTraceElement      No such node ID: 3
java.lang.IllegalArgumentException: No such node ID: 3
     at org.knime.core.node.workflow.WorkflowManager.getNodeContainer(WorkflowManager.java:6462)
     at org.knime.core.node.workflow.WorkflowManager.removeProject(WorkflowManager.java:711)
     at com.knime.enterprise.executor.JobPool.loadWorkflow(JobPool.java:238)
     at com.knime.enterprise.executor.rmi.RMIWorkflowExecutor.lambda$1(RMIWorkflowExecutor.java:466)
     at com.knime.enterprise.executor.rmi.RMIUtil.runWithContextFinder(RMIUtil.java:88)
     at com.knime.enterprise.executor.rmi.RMIWorkflowExecutor.loadWorkflow(RMIWorkflowExecutor.java:466)
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
     at java.lang.reflect.Method.invoke(Method.java:498)
     at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:357)
     at sun.rmi.transport.Transport$1.run(Transport.java:200)
     at sun.rmi.transport.Transport$1.run(Transport.java:197)
     at java.security.AccessController.doPrivileged(Native Method)
     at sun.rmi.transport.Transport.serviceCall(Transport.java:196)
     at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:573)
     at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:834)
     at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:688)
     at java.security.AccessController.doPrivileged(Native Method)
     at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:687)
     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
     at java.lang.Thread.run(Thread.java:748)

Runtime logs of runtime 50100 give a bit more insights:

2020-02-13 12:57:50,525 : WARN  : RMI TCP Connection(14)-127.0.0.1 : a8a3340c-137a-4bc8-aa96-a126dc6cc02b : Node : MISSING *** Connector : 3:1 : Node can't be executed - Node "***" not available from extension "KNIME Nodes for ***" (plugin "com.***.plugin" is not installed)

To wrap this up: I have a KNIME executor with my features installed via P2 director. When trying to run a workflow with my custom nodes on this executor, I get an error message indicating the executor is not aware of my features/plugins although features/plugins are available in the executor’s directories.

More remarks:

  • Restarting the server does not help
  • The same setup/procedure worked with KNIME Server 4.9 and KNIME 4.0
  • I can successfully run workflows with only KNIME-provided nodes

Any hints about how to debug/solve this misery?

Best regards,
Daniel

Hi,

sorry for the late reply. Did you try to run the workflow on your local machine with KNIME Analytics Platform 4.1.1?
Furthermore, do you have anything suspicious in the logs stating that your bundle couldn’t bee loaded?

Cheers,
Moritz

Hi Moritz,

I can successfully execute the workflow in a locally installed KNIME Analytics Platform 4.1.1 (with my custom nodes installed).

I haven’t found anything suspicious in the server logs. Nevertheless, there seems to be plenty of locations where KNIME-related logs are stored: In which file would I expect to find information, which plugins/bundles have been loaded on startup? May I need to adjust the log level for that? I yes, how to do so.

Best regards,
Daniel

Hi,

since it works on your local machine could you double check the version numbers? We’ve encountered a similar problem on our side with a community extension that a node works locally but not on KNIME Server:
local: ./features/org.lhasalimited.knime.public.feature_1.1.500.v202001171846
server: ./features/org.lhasalimited.knime.public.feature_1.1.500.v201912051453
If you look closely you notive that the part after v is different, even though the general version number is the same (1.1.500). Did you increase the version number with the release of the new node? Otherwise there might be a version conflict there.

Cheers,
Moritz

Hi @moritz.heine ,

I checked the version numbers of the locally installed plugin:

$ ls -al Contents/Eclipse/plugins/ | grep ***
-rw-r--r--    1 danieles  admin     24395 Jan 27 17:24 com.***.plugin_1.3.1.202001271554.jar

$  ls -al Contents/Eclipse/features/ | grep ***
drwxr-xr-x   4 danieles  admin   128 Jan 27 17:24 com.***.feature_1.3.1.202001271554

They match with what I see installed on the server:

$ ls -al /opt/knime-latest/plugins/ | grep ***
-rw-r--r--   1 knime knime    24395 Feb 13 12:40 com.***.plugin_1.3.1.202001271554.jar

$ ls -al /opt/knime-latest/features/ | grep ***
drwxr-xr-x   3 knime knime  4096 Feb 13 12:40 com.***.feature_1.3.1.202001271554

The workflow I’d like to execute also matches the installed bundles on my local machine and the server:

<entry key="customDescription" type="xstring" isnull="true" value=""/>
<entry key="state" type="xstring" value="CONFIGURED"/>
<entry key="factory" type="xstring" value="com.***NodeFactory"/>
<entry key="node-name" type="xstring" value="***"/>
<entry key="node-bundle-name" type="xstring" value="***"/>
<entry key="node-bundle-symbolic-name" type="xstring" value="com.***.plugin"/>
<entry key="node-bundle-vendor" type="xstring" value="Daniel Esser"/>
<entry key="node-bundle-version" type="xstring" value="1.3.1.202001271554"/>
<entry key="node-feature-name" type="xstring" value="***"/>
<entry key="node-feature-symbolic-name" type="xstring" value="com.***.feature.feature.group"/>
<entry key="node-feature-vendor" type="xstring" value="Daniel Esser"/>
<entry key="node-feature-version" type="xstring" value="1.3.1.202001271554"/>

Best regards,
Daniel

Hi,

just to be sure, did you do a restart of the executor after installing the node? It could be also, that an executor might have been running in the backend and KNIME Server simply picked it up, i.e. it is connected to an executor with version 4.1.1 but without the installed node.
Also could you maybe provide the logs of KNIME Server and executor? You can simply log into the WebPortal and download it in the Admin Page.
You can share it with me directly, I’ll message you so you can reply to my message directly with the logs (in case you don’t want them to be public available)

Cheers,
Moritz