Web interface breaks when server misconfigured

Hi

I actually do not know how to categorise this.

When I had the server configured to use RabbitMQ, but I am having problems there, I will detail in Server setup problem: is the executor actually trying to open a GUI? - #13 by marvin.kickuth , so I thought to switch to the embedded message queue. With RabbitMQ the server starts and runs its web interface.

However, when I put the following configuration, the server starts and runs, but without the web interface (I presume because I get a network timeout when trying to access).

com.knime.enterprise.executor.embedded-broker=true
com.knime.server.executor.knime_exe=knime_executor/knime

image

root @ thiemos-workstation ~ # systemctl status knime-server 22-08-22 8:51
● knime-server.service - KNIME Server
Loaded: loaded (/usr/local/lib/systemd/system/knime-server.service; enabled; vendor preset: enabled)
Drop-In: /etc/systemd/system/knime-server.service.d
└─override.conf
Active: active (running) since Mon 2022-08-22 08:51:52 CEST; 18min ago
Process: 1636195 ExecStartPre=/bin/touch /var/run/apache-tomcat.pid (code=exited, status=0/SUCCESS)
Process: 1636196 ExecStartPre=/bin/chown $USER /var/run/apache-tomcat.pid (code=exited, status=0/SUCCESS)
Process: 1636197 ExecStart=/usr/local/libexec/knime-server/server start (code=exited, status=0/SUCCESS)
Main PID: 1636211 (java)
Tasks: 133 (limit: 47926)
Memory: 609.9M
CPU: 23.507s
CGroup: /system.slice/knime-server.service
└─1636211 /usr/lib/jvm/java-11-openjdk-amd64/bin/java -Djava.util.logging.config.file=/srv/knime/server/4.15.0.0103-0e06cb97/apache-tomcat-9.0.58/conf/log>
Aug 22 08:51:52 thiemos-workstation.intern systemd[1]: Starting KNIME Server…
Aug 22 08:51:52 thiemos-workstation.intern server[1636205]: Tomcat started.
Aug 22 08:51:52 thiemos-workstation.intern systemd[1]: Started KNIME Server.

I assume that this all happens because either the path is wrong or it is the wrong executable. The section about the knime_exe option in KNIME Server Administration Guide is not clear to me.


> root @ thiemos-workstation ~ # ls -l /srv/knime/server/4.15.0.0103-0e06cb97/knime_executor | grep -E '^-' | grep -E '^...x'                               22-08-22 9:23 
-rwxr-x---   1 knime knime   17034 26. Jul 12:25 icon.xpm
-rwxr-x---   1 knime knime   61144 26. Jul 12:25 knime
-rwxr-x---   1 knime knime     919 26. Jul 10:22 start-executor.sh
-rwxr-x---   1 knime knime    4017 26. Jul 10:22 update-executor.sh

Is this wanted behaviour?

Kind regards

Thiemo

Hello,

com.knime.server.executor.knime_exe= is unneeded here; it was an older communications method (RMI) for the server to know where the executor executable was so it could start it.

com.knime.enterprise.executor.embedded-broker= is true if using QPID communications, which is what you would use if the executor and server are on the same host.

RMQ is what you would use if you have server and executor (or executors) on different hosts (used mostly in the Distributed Executors configuration).

So I guess the question becomes, where are the server and the executor?

Regards,
Nickolaus

@NDekay

DekayThanks for getting at me. In this post, I was just wondering about the network timeout when knime_exe was set. The server and the executor are on the same host, so QPID and RabbitMQ should work equally, I believe.

If I understood you correctly, the knime_exe option is obsolete. Would it not be sensible to remove it from the default config file?

Hello Thiemo,

In my 4.15.0 knime-server.config file I show:

 12 # com.knime.enterprise.executor.msgq=amqp://<user>:<password>@<rabbitmq-host>/<vhost>
 13 com.knime.enterprise.executor.embedded-broker=true
 14 com.knime.enterprise.executor.embedded-broker.port=
 15 com.knime.server.executor.knime_exe=

Line 12 is for the RMQ config.
Line 13 and 14 are for the QPID config.
Line 15 is the RMI config.

Left empty, it is a harmless remnant. It can also just be deleted from the file or commented out.
However, I have created a JIRA to track the request to remove it from future versions of this file.

Thank you,
Nickolaus

But if RMI config is not left empty, it breaks my web interface → network timeout. This is the only point I am trying to make.

Hi Thiemo,

You stated you had it working with RMQ.

Question: are your KS and KE on the same host or on different hosts?

  • If same, then you should probably drop out RMQ and switch to QPID directives, for simplicity. This will allow you to not need to use RMQ so you’ll have less overhead/more memory for other things (like KE).
  • If KE is on a different host, or if you’re experimenting with the goal of heading towards DE (distributed executors) then you should drop the QPID configs and use RMQ as that will give you expandability later on.

If you’re just trying to get this up and running with QPID and KS/KE are on the same host, then please post up your knime.ini and knime-server.config (redacted, if necessary, since this is a public forum), and I’ll take a peek and see if there’s anything that stands out as potentially amiss.

Thanks,
Nickolaus

Hi @Thiemo.Kellner,

I agree, it is confusing that setting the value causes issues. I will take note of this on our side.
As @NDekay mentioned, this setting is an old setting that should no longer be used, so I hope leaving the value blank (or removing the line entirely) solves the issue.

Kind regards
Marvin