jhuckaby / Cronicle

A simple, distributed task scheduler and runner with a web based UI.
http://cronicle.net
Other
3.86k stars 386 forks source link

Cronicle ignores web_direct_connect option #318

Open kamcio2603 opened 4 years ago

kamcio2603 commented 4 years ago

Summary

Cronicle (slave server) ignores settings about "use hostnames"

When you connect to wrong web-ui then (slave) server is trying to connect to master WITH DNS name "server_comm_use_hostnames": false, "web_direct_connect": true, "web_socket_use_hostnames": false,

Steps to reproduce the problem

set config to "server_comm_use_hostnames": false, "web_direct_connect": true, "web_socket_use_hostnames": false,

and try to connect to slave image

Your Setup

Operating system and version?

Debian 10

Node.js version?

v13.14.0

Cronicle software version?

0.8.47

Are you using a multi-server setup, or just a single server?

multi-server

Are you using the filesystem as back-end storage, or S3/Couchbase?

NFS

Can you reproduce the crash consistently?

Log Excerpts

jhuckaby commented 4 years ago

Thank you for this bug report. I see the problem in the code, but the fix is not going to be easy.

When you load up the Web UI on a slave, it receives the initial configuration from the server, but this does not contain a server list (slaves do not know the full list of servers by design -- they only the master hostname), so it doesn't know the IP address of the master.

I will add this to the bug list, but it may have to wait until the next major revision for a fix.

Thanks!

mikeTWC1984 commented 4 years ago

@kamcio2603 are you getting this error when viewing live logs (while job is running)? If so, you may try to experiment with custom_live_log_socket_url config, it will set custom ws url (rather using default host/ip). The only thing - it's not going to work out of the box, but there is a simple fix (see https://github.com/jhuckaby/Cronicle/issues/313)

kamcio2603 commented 4 years ago

", it receives the initial configuration from the server, but this does not contain a server list (slaves do not know the full list of servers by design -- they only the master hostname), so it doesn't know the IP address of the master."

How about cronicle-slave doing local dns-lookup(server-side) of master hostname and sending IP address to clients? Clients are handled via haproxy instances

kamcio2603 commented 4 years ago

@kamcio2603 are you getting this error when viewing live logs (while job is running)? If so, you may try to experiment with custom_live_log_socket_url config, it will set custom ws url (rather using default host/ip). The only thing - it's not going to work out of the box, but there is a simple fix (see #313)

Log watcher works ok, connection is realized via IP adresses.