What steps will reproduce the problem?
1.
2.
3.
What is the expected output?
nothing
What do you see instead?
Aug 02 15:29:23 c2s373e011bc680 error Traceback[c2s]: /usr/local/lib/prosody/modules/mod_s2s.lua:202: attempt to call a nil value (method 'push')
stack traceback:
/usr/local/lib/prosody/modules/mod_s2s.lua:202: in field '?'
/usr/local/lib/prosody/util/events.lua:81: in function </usr/local/lib/prosody/util/events.lua:77>
(...tail calls...)
/usr/local/lib/prosody/core/stanza_router.lua:214: in upvalue 'core_route_stanza'
/usr/local/lib/prosody/core/stanza_router.lua:192: in upvalue 'core_post_stanza'
/usr/local/lib/prosody/modules/mod_presence.lua:73: in global 'handle_normal_presence'
/usr/local/lib/prosody/modules/mod_presence.lua:337: in field '?'
/usr/local/lib/prosody/util/events.lua:81: in function </usr/local/lib/prosody/util/events.lua:77>
(...tail calls...)
/usr/local/lib/prosody/core/stanza_router.lua:188: in upvalue 'core_post_stanza'
/usr/local/lib/prosody/core/stanza_router.lua:128: in upvalue 'core_process_stanza'
/usr/local/lib/prosody/modules/mod_c2s.lua:366: in upvalue 'func'
/usr/local/lib/prosody/util/async.lua:149: in function </usr/local/lib/prosody/util/async.lua:147>
Aug 02 15:29:31 c2s373e011bc680 error Traceback[c2s]: /usr/local/lib/prosody/modules/mod_s2s.lua:202: attempt to call a nil value (method 'push')
stack traceback:
/usr/local/lib/prosody/modules/mod_s2s.lua:202: in field '?'
/usr/local/lib/prosody/util/events.lua:81: in function </usr/local/lib/prosody/util/events.lua:77>
(...tail calls...)
/usr/local/lib/prosody/core/stanza_router.lua:214: in upvalue 'core_route_stanza'
/usr/local/lib/prosody/core/stanza_router.lua:192: in upvalue 'core_post_stanza'
/usr/local/lib/prosody/core/stanza_router.lua:128: in upvalue 'core_process_stanza'
/usr/local/lib/prosody/modules/mod_c2s.lua:366: in upvalue 'func'
/usr/local/lib/prosody/util/async.lua:149: in function </usr/local/lib/prosody/util/async.lua:147>
What version of the product are you using? On what operating system?
13.0.2 on FreeBSD 14.2-RELEASE-p3 amd64
Please provide any additional information below.
# prosodyctl about
Prosody 13.0.2
# Prosody directories
Data directory: /var/db/prosody
Config directory: /usr/local/etc/prosody
Source directory: /usr/local/lib/prosody
Plugin directories:
/var/db/prosody/custom_plugins
/usr/local/lib/prosody-modules.hg/ - prosody-modules rev: 77b5dd33a8f3
/usr/local/lib/prosody/modules/
# Operating system
FreeBSD 14.3-RELEASE
# Lua environment
Lua version: Lua 5.4
Lua module search paths:
/usr/local/lib/prosody/?.lua
/usr/local/share/lua/5.4/?.lua
/usr/local/share/lua/5.4/?/init.lua
/usr/local/lib/lua/5.4/?.lua
/usr/local/lib/lua/5.4/?/init.lua
/var/db/prosody/custom_plugins/share/lua/5.4/?.lua
/var/db/prosody/custom_plugins/share/lua/5.4/?/init.lua
Lua C module search paths:
/usr/local/lib/prosody/?.so
/usr/local/lib/lua/5.4/?.so
/usr/local/lib/lua/5.4/loadall.so
LuaRocks: Not installed
# Network
Backend: libevent kqueue
# Lua module versions
LuaExpat: 1.5.2
LuaFileSystem: 1.8.0
LuaSec: 1.3.2
LuaSocket: 3.0.0
luaunbound: 1.0.0
# library versions
libcrypto: OpenSSL 3.0.16 11 Feb 2025
libevent: 2.1.12-stable
libexpat: expat_2.7.1
libunbound: 1.23.1
Postmaster Tom
on
It's probably related to mod_onions but i'm not sure. I'm doing further testing with that disabled.
Zash
on
Thanks for the report.
This is most likely because mod_onions duplicates some code and structures from mod_s2s that has changed in 13.0.
https://hg.prosody.im/trunk/file/13.0.2/plugins/mod_s2s.lua#l202
the `.sendq` here was an array before 13.0 but is now an util.queue but mod_onions creates the old one:
https://hg.prosody.im/prosody-modules/file/fe081789f7b5/mod_onions/mod_onions.lua#l252
I would not recommend copypasting code from mod_s2s into mod_onions again, all the duplicate code will probably just become outdated again in the future and the problem will come back.
Better would be if it could use this event added in 0.12.4 to change the "resolver" to one that produces a connection attempt, tho I don't know if it's possible given the SOCKS handshake
https://hg.prosody.im/trunk/rev/d5f322dd424b
Changes
titlemod_s2s nil reference spam in stdout about upgrading 12.5 -> 13.0.2 mod_onions incompatible with 13.0
It appears to still be an issues with mod_onions removed
Aug 03 10:02:31 c2s373e000ad840 error Traceback[c2s]: /usr/local/lib/prosody/modules/mod_s2s.lua:202: attempt to call a nil value (method 'push')
stack traceback:
/usr/local/lib/prosody/modules/mod_s2s.lua:202: in field '?'
/usr/local/lib/prosody/util/events.lua:81: in function </usr/local/lib/prosody/util/events.lua:77>
(...tail calls...)
/usr/local/lib/prosody/core/stanza_router.lua:214: in upvalue 'core_route_stanza'
/usr/local/lib/prosody/core/stanza_router.lua:192: in upvalue 'core_post_stanza'
/usr/local/lib/prosody/modules/mod_presence.lua:73: in global 'handle_normal_presence'
/usr/local/lib/prosody/modules/mod_presence.lua:337: in field '?'
/usr/local/lib/prosody/util/events.lua:81: in function </usr/local/lib/prosody/util/events.lua:77>
(...tail calls...)
/usr/local/lib/prosody/core/stanza_router.lua:188: in upvalue 'core_post_stanza'
/usr/local/lib/prosody/core/stanza_router.lua:128: in upvalue 'core_process_stanza'
/usr/local/lib/prosody/modules/mod_c2s.lua:366: in upvalue 'func'
/usr/local/lib/prosody/util/async.lua:149: in function </usr/local/lib/prosody/util/async.lua:147>
Aug 03 10:02:31 c2s373e000ad840 error Traceback[c2s]: /usr/local/lib/prosody/modules/mod_s2s.lua:202: attempt to call a nil value (method 'push')
stack traceback:
/usr/local/lib/prosody/modules/mod_s2s.lua:202: in field '?'
/usr/local/lib/prosody/util/events.lua:81: in function </usr/local/lib/prosody/util/events.lua:77>
(...tail calls...)
/usr/local/lib/prosody/core/stanza_router.lua:214: in upvalue 'core_route_stanza'
/usr/local/lib/prosody/core/stanza_router.lua:192: in upvalue 'core_post_stanza'
/usr/local/lib/prosody/modules/mod_presence.lua:73: in global 'handle_normal_presence'
/usr/local/lib/prosody/modules/mod_presence.lua:337: in field '?'
/usr/local/lib/prosody/util/events.lua:81: in function </usr/local/lib/prosody/util/events.lua:77>
(...tail calls...)
/usr/local/lib/prosody/core/stanza_router.lua:188: in upvalue 'core_post_stanza'
/usr/local/lib/prosody/core/stanza_router.lua:128: in upvalue 'core_process_stanza'
/usr/local/lib/prosody/modules/mod_c2s.lua:366: in upvalue 'func'
/usr/local/lib/prosody/util/async.lua:149: in function </usr/local/lib/prosody/util/async.lua:147>
What steps will reproduce the problem? 1. 2. 3. What is the expected output? nothing What do you see instead? Aug 02 15:29:23 c2s373e011bc680 error Traceback[c2s]: /usr/local/lib/prosody/modules/mod_s2s.lua:202: attempt to call a nil value (method 'push') stack traceback: /usr/local/lib/prosody/modules/mod_s2s.lua:202: in field '?' /usr/local/lib/prosody/util/events.lua:81: in function </usr/local/lib/prosody/util/events.lua:77> (...tail calls...) /usr/local/lib/prosody/core/stanza_router.lua:214: in upvalue 'core_route_stanza' /usr/local/lib/prosody/core/stanza_router.lua:192: in upvalue 'core_post_stanza' /usr/local/lib/prosody/modules/mod_presence.lua:73: in global 'handle_normal_presence' /usr/local/lib/prosody/modules/mod_presence.lua:337: in field '?' /usr/local/lib/prosody/util/events.lua:81: in function </usr/local/lib/prosody/util/events.lua:77> (...tail calls...) /usr/local/lib/prosody/core/stanza_router.lua:188: in upvalue 'core_post_stanza' /usr/local/lib/prosody/core/stanza_router.lua:128: in upvalue 'core_process_stanza' /usr/local/lib/prosody/modules/mod_c2s.lua:366: in upvalue 'func' /usr/local/lib/prosody/util/async.lua:149: in function </usr/local/lib/prosody/util/async.lua:147> Aug 02 15:29:31 c2s373e011bc680 error Traceback[c2s]: /usr/local/lib/prosody/modules/mod_s2s.lua:202: attempt to call a nil value (method 'push') stack traceback: /usr/local/lib/prosody/modules/mod_s2s.lua:202: in field '?' /usr/local/lib/prosody/util/events.lua:81: in function </usr/local/lib/prosody/util/events.lua:77> (...tail calls...) /usr/local/lib/prosody/core/stanza_router.lua:214: in upvalue 'core_route_stanza' /usr/local/lib/prosody/core/stanza_router.lua:192: in upvalue 'core_post_stanza' /usr/local/lib/prosody/core/stanza_router.lua:128: in upvalue 'core_process_stanza' /usr/local/lib/prosody/modules/mod_c2s.lua:366: in upvalue 'func' /usr/local/lib/prosody/util/async.lua:149: in function </usr/local/lib/prosody/util/async.lua:147> What version of the product are you using? On what operating system? 13.0.2 on FreeBSD 14.2-RELEASE-p3 amd64 Please provide any additional information below. # prosodyctl about Prosody 13.0.2 # Prosody directories Data directory: /var/db/prosody Config directory: /usr/local/etc/prosody Source directory: /usr/local/lib/prosody Plugin directories: /var/db/prosody/custom_plugins /usr/local/lib/prosody-modules.hg/ - prosody-modules rev: 77b5dd33a8f3 /usr/local/lib/prosody/modules/ # Operating system FreeBSD 14.3-RELEASE # Lua environment Lua version: Lua 5.4 Lua module search paths: /usr/local/lib/prosody/?.lua /usr/local/share/lua/5.4/?.lua /usr/local/share/lua/5.4/?/init.lua /usr/local/lib/lua/5.4/?.lua /usr/local/lib/lua/5.4/?/init.lua /var/db/prosody/custom_plugins/share/lua/5.4/?.lua /var/db/prosody/custom_plugins/share/lua/5.4/?/init.lua Lua C module search paths: /usr/local/lib/prosody/?.so /usr/local/lib/lua/5.4/?.so /usr/local/lib/lua/5.4/loadall.so LuaRocks: Not installed # Network Backend: libevent kqueue # Lua module versions LuaExpat: 1.5.2 LuaFileSystem: 1.8.0 LuaSec: 1.3.2 LuaSocket: 3.0.0 luaunbound: 1.0.0 # library versions libcrypto: OpenSSL 3.0.16 11 Feb 2025 libevent: 2.1.12-stable libexpat: expat_2.7.1 libunbound: 1.23.1
It's probably related to mod_onions but i'm not sure. I'm doing further testing with that disabled.
Thanks for the report. This is most likely because mod_onions duplicates some code and structures from mod_s2s that has changed in 13.0. https://hg.prosody.im/trunk/file/13.0.2/plugins/mod_s2s.lua#l202 the `.sendq` here was an array before 13.0 but is now an util.queue but mod_onions creates the old one: https://hg.prosody.im/prosody-modules/file/fe081789f7b5/mod_onions/mod_onions.lua#l252 I would not recommend copypasting code from mod_s2s into mod_onions again, all the duplicate code will probably just become outdated again in the future and the problem will come back. Better would be if it could use this event added in 0.12.4 to change the "resolver" to one that produces a connection attempt, tho I don't know if it's possible given the SOCKS handshake https://hg.prosody.im/trunk/rev/d5f322dd424b
Changesmod_s2s nil reference spam in stdout about upgrading 12.5 -> 13.0.2mod_onions incompatible with 13.0Here's an example of overriding the resolver: https://hg.prosody.im/prosody-modules/file/4cc3d3de74a7/mod_s2soutinjection/mod_s2soutinjection.lua
It appears to still be an issues with mod_onions removed Aug 03 10:02:31 c2s373e000ad840 error Traceback[c2s]: /usr/local/lib/prosody/modules/mod_s2s.lua:202: attempt to call a nil value (method 'push') stack traceback: /usr/local/lib/prosody/modules/mod_s2s.lua:202: in field '?' /usr/local/lib/prosody/util/events.lua:81: in function </usr/local/lib/prosody/util/events.lua:77> (...tail calls...) /usr/local/lib/prosody/core/stanza_router.lua:214: in upvalue 'core_route_stanza' /usr/local/lib/prosody/core/stanza_router.lua:192: in upvalue 'core_post_stanza' /usr/local/lib/prosody/modules/mod_presence.lua:73: in global 'handle_normal_presence' /usr/local/lib/prosody/modules/mod_presence.lua:337: in field '?' /usr/local/lib/prosody/util/events.lua:81: in function </usr/local/lib/prosody/util/events.lua:77> (...tail calls...) /usr/local/lib/prosody/core/stanza_router.lua:188: in upvalue 'core_post_stanza' /usr/local/lib/prosody/core/stanza_router.lua:128: in upvalue 'core_process_stanza' /usr/local/lib/prosody/modules/mod_c2s.lua:366: in upvalue 'func' /usr/local/lib/prosody/util/async.lua:149: in function </usr/local/lib/prosody/util/async.lua:147> Aug 03 10:02:31 c2s373e000ad840 error Traceback[c2s]: /usr/local/lib/prosody/modules/mod_s2s.lua:202: attempt to call a nil value (method 'push') stack traceback: /usr/local/lib/prosody/modules/mod_s2s.lua:202: in field '?' /usr/local/lib/prosody/util/events.lua:81: in function </usr/local/lib/prosody/util/events.lua:77> (...tail calls...) /usr/local/lib/prosody/core/stanza_router.lua:214: in upvalue 'core_route_stanza' /usr/local/lib/prosody/core/stanza_router.lua:192: in upvalue 'core_post_stanza' /usr/local/lib/prosody/modules/mod_presence.lua:73: in global 'handle_normal_presence' /usr/local/lib/prosody/modules/mod_presence.lua:337: in field '?' /usr/local/lib/prosody/util/events.lua:81: in function </usr/local/lib/prosody/util/events.lua:77> (...tail calls...) /usr/local/lib/prosody/core/stanza_router.lua:188: in upvalue 'core_post_stanza' /usr/local/lib/prosody/core/stanza_router.lua:128: in upvalue 'core_process_stanza' /usr/local/lib/prosody/modules/mod_c2s.lua:366: in upvalue 'func' /usr/local/lib/prosody/util/async.lua:149: in function </usr/local/lib/prosody/util/async.lua:147>