KNIME example workflow not working in server

Hello,

I am trying to run the Guided_Analytics_for_ML_Automation workflow, which is available in the example workflows. The flow works locally, either in my local machine, either locally in the server. While executing the same workflow with the exact same configurations in the Webportal it fails, displaying:

Call Workflow (Table Based) 7:677:358:224 Execution failed in Try-Catch block: HTTP 400 Bad Request

While running it manually on my machine from the server I get the following error:

ERROR Call Workflow (Table Based) 0:677:397:397:381:0:224 Execution failed in Try-Catch block: This node cannot be executed without a server connection in a temporary copy of a workflow

I think the workflow may be having problems accessing the external worklow models when using the server. My folder strucure is the following:
image

KNIME server version :4.8.2
Server executor :3.7.2

Thanks in advance

Hi @corista,
thanks for reaching out.
Can you please send us the logs?
To get the logs login in the WebPortal as admin and download all the logs of the current day after executing the workflow and seeing it fail. You should be able to download them from the administration panel for which the button is on the top right corner of the webportal.
Let me know if you have troubles with that.
Cheers
Paolo

These are the logs:

2019-07-26 11:45:19,753 : DEBUG : KNIME-Worker-52 : NodeContainer : Table to H2O : 3:677:381:165:159 : Model switch ends 3:677:381:165:219 has new state: IDLE
2019-07-26 11:45:19,753 : DEBUG : KNIME-Worker-52 : NodeContainer : Table to H2O : 3:677:381:165:159 : h2o_naive_learning 3:677:381:165:180 has new state: IDLE
2019-07-26 11:45:19,753 : DEBUG : KNIME-Worker-52 : WorkflowManager : Table to H2O : 3:677:381:165:159 : configure found EXECUTED node: Create Date&Time Range 3:677:381:165:215:110
2019-07-26 11:45:19,753 : DEBUG : KNIME-Worker-52 : NodeContainer : Table to H2O : 3:677:381:165:159 : Retrain best models with whole training data. 3:677:381:165 has new state: IDLE
2019-07-26 11:45:19,753 : DEBUG : KNIME-Worker-52 : NodeContainer : Table to H2O : 3:677:381:165:159 : Retrain the optimized models and collect results. 3:677:381 has new state: IDLE
2019-07-26 11:45:19,753 : DEBUG : KNIME-Worker-52 : NodeContainer : Table to H2O : 3:677:381:165:159 : Training and Validation of Models 3:677 has new state: IDLE
2019-07-26 11:45:19,754 : DEBUG : KNIME-Worker-52 : NodeContainer : Table to H2O : 3:677:381:165:159 : 01_Guided_Analytics_for_ML_Automation 3 has new state: IDLE
2019-07-26 11:45:19,755 : DEBUG : KNIME-WFM-Parent-Notifier : NodeContainer : : : ROOT has new state: IDLE
2019-07-26 11:45:19,758 : WARN : RMI TCP Connection(104)-127.0.0.1 : WorkflowManager : : : Workflow contains nodes with duplicate parameter name (will be made unique by appending node IDs): “”, “multiple-selection”, “file-upload”, “boolean-input”, “flowchart_labels”
2019-07-26 11:45:19,760 : ERROR : RMI TCP Connection(104)-127.0.0.1 : FileDownloadNodeModel : : : Could not get output resource URL: No such variable “table_path” of type STRING
2019-07-26 11:45:19,760 : DEBUG : RMI TCP Connection(104)-127.0.0.1 : FileDownloadNodeModel : : : Could not get output resource URL: No such variable “table_path” of type STRING
org.knime.core.node.InvalidSettingsException: No such variable “table_path” of type STRING
at org.knime.js.base.node.output.filedownload.FileDownloadNodeModel.getPathFromVariable(FileDownloadNodeModel.java:126)
at org.knime.js.base.node.output.filedownload.FileDownloadNodeModel.getExternalOutput(FileDownloadNodeModel.java:260)
at org.knime.core.node.workflow.WorkflowManager.lambda$36(WorkflowManager.java:9504)
at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
at java.util.Iterator.forEachRemaining(Iterator.java:116)
at java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1801)
at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481)
at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)
at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)
at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499)
at org.knime.core.node.workflow.WorkflowManager.getExternalNodeDataHandles(WorkflowManager.java:9527)
at org.knime.core.node.workflow.WorkflowManager.getExternalOutputs(WorkflowManager.java:9504)
at com.knime.enterprise.executor.rmi.RMIWorkflowExecutor$21.call(RMIWorkflowExecutor.java:551)
at com.knime.enterprise.executor.rmi.RMIWorkflowExecutor$21.call(RMIWorkflowExecutor.java:1)
at com.knime.enterprise.executor.rmi.RMIUtil.runWithContextFinder(RMIUtil.java:88)
at com.knime.enterprise.executor.rmi.RMIWorkflowExecutor.getExternalOutput(RMIWorkflowExecutor.java:545)
at sun.reflect.GeneratedMethodAccessor97.invoke(Unknown Source)
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:568)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:826)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:683)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:682)
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)
Caused by: java.util.NoSuchElementException: No such variable “table_path” of type STRING
at org.knime.core.node.workflow.FlowObjectStack.peekFlowVariable(FlowObjectStack.java:389)
at org.knime.core.node.NodeModel.peekFlowVariableString(NodeModel.java:1266)
at org.knime.js.base.node.output.filedownload.FileDownloadNodeModel.getPathFromVariable(FileDownloadNodeModel.java:124)
… 32 more
2019-07-26 11:45:19,761 : ERROR : RMI TCP Connection(104)-127.0.0.1 : FileDownloadNodeModel : : : Could not get output resource URL: No such variable “table_path” of type STRING
2019-07-26 11:45:19,761 : DEBUG : RMI TCP Connection(104)-127.0.0.1 : FileDownloadNodeModel : : : Could not get output resource URL: No such variable “table_path” of type STRING
org.knime.core.node.InvalidSettingsException: No such variable “table_path” of type STRING

Hi again,
there is additionally something else we need to understand what is going on.
After installing on both executor and local KNIME Analytics Platform (both 3.7) these extensions depicted below, you should be able to open the job from your KNIME.

Capture

Could you please send us screenshot of where the workflow is failing?
Thanks

1 Like

Update:

Adding a “KNIME Server Connection” box to “Call Workflow” (inside Optimize model parameters) and fixing the path solved the problem.
I am now having issues in during the Download Models step, as system cannot get the “table_path” variable.
Anny suggestion about how I can change this variable?

Update 2:

The problem is now solved. The server itself was not providing the correct address.
This line in logs provided the answer:

Node : Table Reader : 2:680:0:1174:0:986:929 : Server returned HTTP response code: 400 for URL:
http://[2600:70ff:f091:0:4101:62df:a275:9649%enp0s3]:8080/knime/rest/v4/repository/auto_ml/01_Guided_Analytics_for_ML_Automation/Prediction/prediction_workflows.table:data
2019-07-29 09:31:50,142 : DEBUG : KNIME-Worker-8 : NodeContainer : Download Models : 2:680 : 01_Guided_Analytics_for_ML_Automation 2 has new state: IDLE

After checking that the url was not being correctly generated, disabling ipv6 on the web server configurations solved the problem. The previous bug had the same origin, but forcing the address on “KNIME Server Connection” box solved that specific problem.

Cheers

3 Likes

Hi,

just out of curiosity: did you set the com.knime.server.canonical-address in knime-server.config?
Would be handy to know if the problem occurred nevertheless.

Cheers,
Moritz

Hello

Tried that solution following this documentation https://docs.knime.com/2018-12/server_admin_guide/index.html . However it did not solve the problem. I had to do it in the apache tomcat confs.

Cheers

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.