After Security update on High Sierra iMac, all my suites are now emitting this message after register, validate, and run:
REGISTERED test -> test
Valid for cylc-7.8.8
ERROR: No hosts currently compatible with this global configuration:
suite servers -> run hosts:
[]
suite servers -> run host select -> rank:
random
suite servers -> run host select -> thresholds:
ERROR Contact info not found for suite "test", suite not running?
the ~/.cylc/global.rc file shows no differences over quite some time with respect to the offending settings:
[suite servers]
run ports = 43001..43100
run hosts =
condemned hosts =
scan hosts =
scan ports = 43001..43100
auto restart delay =
[[run host select]]
thresholds =
rank = random
maybe the ports?
generate a new global.rc?
generating new global.rc did not effect any change to the error messages
Your Cylc global config settings look OK. If run hosts
is empty, cylc run
should default to starting a scheduler on localhost. I get the same error if I set run hosts = blah
where blah
is a non-existent host.
Maybe your OS security update has done something horrible to your network settings, affecting host visibility??
Maybe your OS security update has done something horrible to your network settings, affecting host visibility??
Likely something along these lines, have a go at connecting to localhost:
$ ssh localhost bash -c 'hostname'
That should return the hostname of the machine. If it doesn’t try adding -v
after the ssh
which should provide some debug info about why the connection failed.
<$ ssh localhost bash -c ‘hostname’
executing the above command (locally, on the offending machine) did elicit the correct hostname.
executing the above command from another machine, using localhost|=ip address, did elicit the correct hostname.
i see where we/re going with this.
time to trace HostAppointer
Hmmm, is your global config overwriting the default with nothing?
Could try removing [suite servers]run hosts
or setting [suite servers]run hosts=localhost
.
generate a new global.rc?
No need to generate a global.rc, the defaults are baked into Cylc, you only need to define the defaults you want to change.
neither of the suggestions.olivers.sanders, e.g. “…try removing…or setting…” effected a change in the result.
Curious, I’m not sure.
Adding the --debug
flag to cylc run
might yield some insights to whats going on. The error you posted above seems to suggest that the HostAppointer
was asked to choose a host from an empty list whereas we would expect the default run hosts=localhost
.
Manually specifying the host on the CLI might bypass the issue:
$ cylc run --host=localhost <suite>
Manually specifying local host, e.g. cylc run --host=localhost test elicits same error message.
here/s what i do know:
lib/cylc/hostuserutil.py
116 def _get_host_info(self, target=None):
117 “”“Return the extended info of the current host.”""
118 if target not in self._host_exs:
119 if target is None:
120 target = socket.getfqdn() <-----
sets the ‘None’ value of target to:
('target1 ', None)
('target2 ', ‘69.1.168.192.in-addr.arpa’)
ha… the dotted quad is backwards
experimentation with the ‘target’ value (and overriding value in _get_host_info) permits the suite to run.
def _get_host_info(self, target=None):
"""Return the extended info of the current host."""
print ("_get_host_info")
if target not in self._host_exs:
print ("target1 ", target)
if target is None:
target = socket.getfqdn()
print ("target2 ", target)
target = ‘in-addr.arpa.192.168.1.69’
target = '192.168.1.69'
print ("target3 ", target)
suggestions on a robust solution?
oliver.sanders’ suggestion from another thread “Suites, MacBookAir M1 issue”
‘’‘DNS Patch
From Mac OS Catalina onwards the socket.getfqdn
interface is broken for the default DNS configuration. If on a personal machine applying this patch to lib/python/hostuserutil.py
should do the trick.
‘’’
DNS patch
this change permits cylc suites to run now.
hostuserutil.py
“- target = socket.getfqdn()”
“+ target = socket.gethostname()”
2 Likes
Good glad that worked.
I haven’t seen that address format come out of socket.getfqdn
before, apparently it’s for IPv4 reverse DNS lookup - Reverse DNS lookup - Wikipedia which is consistent with the behaviour from Catalina onwards which give an IPv6 arpa address:
1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa
Security Update 2020-005 10.13.6 05/16/2021, 10:31:27
the trouble began with the update listed above.
cylc-7.8.x had been running fine before the update.