#1953 mod_onions incompatible with 13.0

Reporter Postmaster Tom
Owner Nobody
Created
Updated
Stars ★ (1)
Tags
  • Priority-Medium
  • Type-Defect
  • Status-Accepted
  • Component-Community
  1. Postmaster Tom on

    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

  2. Postmaster Tom on

    It's probably related to mod_onions but i'm not sure. I'm doing further testing with that disabled.

  3. 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
    • title mod_s2s nil reference spam in stdout about upgrading 12.5 -> 13.0.2 mod_onions incompatible with 13.0
    • tags Component-Community Status-Accepted
  4. Zash on

    Here's an example of overriding the resolver: https://hg.prosody.im/prosody-modules/file/4cc3d3de74a7/mod_s2soutinjection/mod_s2soutinjection.lua

  5. Postmaster Tom on

    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>

New comment

Not published. Used for spam prevention and optional update notifications.