#1928 prosodyctl check dns reports error on s2s disabled component
Reporter
aereaux
Owner
Nobody
Created
Updated
Stars
★★ (2)
Tags
Status-New
Type-Defect
Priority-Medium
aereaux
on
What steps will reproduce the problem?
1. Have a component without a srv record
2. Disable s2s on the component
3. Run prosodyctl check dns
What is the expected output?
Checking DNS for component biboumi.example.org...
<nothing>
What do you see instead?
Checking DNS for component biboumi.example.org...
Host biboumi.example.org does not seem to resolve to this server (IPv4/IPv6)
What version of the product are you using? On what operating system?
Prosody hg:5611ce3bc54c
# Prosody directories
Data directory: /var/lib/prosody
Config directory: /etc/prosody
Source directory: /usr/lib/prosody
Plugin directories:
/var/lib/prosody/custom_plugins - not a directory!
/usr/lib/prosody/modules/
/var/lib/prosody/modules/ - prosody-modules rev: c1b94dd6e53b
/usr/lib/prosody/modules/
# Operating system
Linux 6.12.23-1-lts
# Lua environment
Lua version: Lua 5.4
Lua module search paths:
/usr/lib/prosody/?.lua
/usr/local/share/lua/5.4/?.lua
/usr/local/share/lua/5.4/?/init.lua
/usr/share/lua/5.4/?.lua
/usr/share/lua/5.4/?/init.lua
/usr/local/lib/lua/5.4/?.lua
/usr/local/lib/lua/5.4/?/init.lua
/usr/lib/lua/5.4/?.lua
/usr/lib/lua/5.4/?/init.lua
/var/lib/prosody/custom_plugins/share/lua/5.4/?.lua
/var/lib/prosody/custom_plugins/share/lua/5.4/?/init.lua
Lua C module search paths:
/usr/lib/prosody/?.so
/usr/local/lib/lua/5.4/?.so
/usr/lib/lua/5.4/?.so
/usr/local/lib/lua/5.4/loadall.so
/usr/lib/lua/5.4/loadall.so
LuaRocks: Not installed
# Network
Backend: epoll
# Lua module versions
LuaExpat: 1.5.1
LuaFileSystem: 1.8.0
LuaSec: 1.3.2
LuaSocket: 3.0.0
luaunbound: 1.0.0
# library versions
libcrypto: OpenSSL 3.5.0 8 Apr 2025
libexpat: expat_2.7.1
libunbound: 1.22.0
Please provide any additional information below.
Looks like at https://hg.prosody.im/trunk/file/tip/util/prosodyctl/check.lua#l1207 `host_ok_v4` is nil because there aren't any addresses at https://hg.prosody.im/trunk/file/tip/util/prosodyctl/check.lua#l1158 . That should probably end up as true if s2s is disabled, but not sure the best way to fit that check in
aereaux
on
After some more investigation it looks like this is because despite s2s being disabled the component name gets added to the list of hosts to check here: https://hg.prosody.im/trunk/file/tip/util/prosodyctl/check.lua#l1091 . Any idea why this is added? What sorts of hosts does it need to be added for (I assume http) and what sorts of hosts (components with s2s disabled) does it not need to be added?
What steps will reproduce the problem? 1. Have a component without a srv record 2. Disable s2s on the component 3. Run prosodyctl check dns What is the expected output? Checking DNS for component biboumi.example.org... <nothing> What do you see instead? Checking DNS for component biboumi.example.org... Host biboumi.example.org does not seem to resolve to this server (IPv4/IPv6) What version of the product are you using? On what operating system? Prosody hg:5611ce3bc54c # Prosody directories Data directory: /var/lib/prosody Config directory: /etc/prosody Source directory: /usr/lib/prosody Plugin directories: /var/lib/prosody/custom_plugins - not a directory! /usr/lib/prosody/modules/ /var/lib/prosody/modules/ - prosody-modules rev: c1b94dd6e53b /usr/lib/prosody/modules/ # Operating system Linux 6.12.23-1-lts # Lua environment Lua version: Lua 5.4 Lua module search paths: /usr/lib/prosody/?.lua /usr/local/share/lua/5.4/?.lua /usr/local/share/lua/5.4/?/init.lua /usr/share/lua/5.4/?.lua /usr/share/lua/5.4/?/init.lua /usr/local/lib/lua/5.4/?.lua /usr/local/lib/lua/5.4/?/init.lua /usr/lib/lua/5.4/?.lua /usr/lib/lua/5.4/?/init.lua /var/lib/prosody/custom_plugins/share/lua/5.4/?.lua /var/lib/prosody/custom_plugins/share/lua/5.4/?/init.lua Lua C module search paths: /usr/lib/prosody/?.so /usr/local/lib/lua/5.4/?.so /usr/lib/lua/5.4/?.so /usr/local/lib/lua/5.4/loadall.so /usr/lib/lua/5.4/loadall.so LuaRocks: Not installed # Network Backend: epoll # Lua module versions LuaExpat: 1.5.1 LuaFileSystem: 1.8.0 LuaSec: 1.3.2 LuaSocket: 3.0.0 luaunbound: 1.0.0 # library versions libcrypto: OpenSSL 3.5.0 8 Apr 2025 libexpat: expat_2.7.1 libunbound: 1.22.0 Please provide any additional information below. Looks like at https://hg.prosody.im/trunk/file/tip/util/prosodyctl/check.lua#l1207 `host_ok_v4` is nil because there aren't any addresses at https://hg.prosody.im/trunk/file/tip/util/prosodyctl/check.lua#l1158 . That should probably end up as true if s2s is disabled, but not sure the best way to fit that check in
After some more investigation it looks like this is because despite s2s being disabled the component name gets added to the list of hosts to check here: https://hg.prosody.im/trunk/file/tip/util/prosodyctl/check.lua#l1091 . Any idea why this is added? What sorts of hosts does it need to be added for (I assume http) and what sorts of hosts (components with s2s disabled) does it not need to be added?
Thanks for the report. I checked the history of the conditional referenced and found that it was added in the very first version of `prosodyctl check dns`: https://hg.prosody.im/trunk/file/3e097acf82de/prosodyctl#l902