Modern XMPP project discussion - 2024-10-31


  1. muppeth

    MattJ, it's to matrix.

  2. muppeth

    that room in particular on matrix side seems to have couple of telegram bots and is few k users (on matrix side). so prosody keeps sending presence stanzas to bifrost (the matrix bridge) and to all other bridges in the room too (few telegram, irc and maybe some more).

  3. muppeth

    could be that cuses prosody to get unresponsive? Looks like server is doing well for few hours and then suddenly eats ton of RAM, 100%CPU and only restart of prosody brings it back.

  4. MattJ

    muppeth: and when you say the MUC is "bridged" - how exactly is it bridged?

  5. muppeth

    It's bridged with bifrost. https://github.com/matrix-org/matrix-bifrost

  6. MattJ

    So it's not actually a Prosody MUC

  7. MattJ

    So who is sending the 5 million stanzas?

  8. muppeth

    it is a prosody MUC. the bridge works in a way you have a muc on xmpp side and room on matrix side. There is a bot (bifrost) that does message relay and puppeting so users on each side apears to the client as native users.

  9. muppeth

    interesting thing is that now that room (osm-in@chat.disroot.org) has 15 users (some from matrix) while yesterday that same room had over 1k users.

  10. muppeth

    since the bridge runs on Arianet I am checking maranda about it. maybe he has some ideas.

  11. muppeth

    looks like the presence flood is triggered upon restart of the bridge as normally it should just puppet active users, but upon restart it does them all. so that osm-in room that had 15 users at two hours ago, now after maranda restarted bifrost bridge, now has 1.6k and climbing.

  12. muppeth

    this will probably bring the server to it's knees soon. I was wondering if others experience similar issues and if there is any idea on how to combat it on prosody side.

  13. muppeth

    this could potentially happen to any server as someone could bridge number of rooms and endup in similar situation.

  14. MattJ

    mod_muc_limits should be enabled and set to permit a level of traffic that your server can handle, and if you're being bombarded at the network level, mod_limits is the first line of defence

  15. MattJ

    The goal of those is to have a usable server, not necessarily working bridging

  16. MattJ

    To solve the latter, you could consider disabling presence broadcast for non-members (which I assume the bridged users are not)

  17. muppeth

    is that per muc setting or server wide? how to set it?

  18. MattJ

    The latter is per MUC

  19. MattJ

    "Only show participants with roles" in the MUC config form

  20. MattJ

    I've been working on GC3 (MUC successor), including an implementation in Prosody, and it would solve this (small Bifrost changes would be required though)

  21. muppeth

    thanks. am i right to assume muc_limits will not pevent presence stanza flood?

  22. MattJ

    You say that Bifrost doesn't use the presence, but that's not exactly true - I'm assuming it shows Matrix users who is in the XMPP channel

  23. MattJ

    muc_limits will prevent a stanza flood, but it does this by rejecting stanzas when the limit is reached

  24. muppeth

    yes. i meant on matrix side the presence works diffrerently (in the sense that you cant see in realtime if user is online or not)

  25. MattJ

    Yeah, but it's how we communicate to Bifrost which users are in the MUC

  26. MattJ

    What's frustrating is that Bifrost really only needs one copy of this information

  27. muppeth

    > muc_limits will prevent a stanza flood, but it does this by rejecting stanzas when the limit is reached and that would count all the stanzas, right? so in case of the presence flood, it would use up the limit and legit chat would be throttled right?

  28. MattJ

    But because 1000 occupants join, we send 1000 copies of the same information to each occupant

  29. MattJ

    > so in case of the presence flood, it would use up the limit and legit chat would be throttled right? Correct. And bridging will basically fail, because most of the bridged occupants won't be able to join.

  30. MattJ

    Note that room members bypass the limit

  31. MattJ

    So the usual convention in public channels is to make regulars members

  32. MattJ

    Then if you have a join flood, only the untrusted JIDs are affected

  33. MattJ

    Since you said you have 15 people, you would make those members, and they will be unaffected, but bifrost will be

  34. MattJ

    as well as anyone who tries to join while bifrost is flooding you

  35. muppeth

    the thing is that any user can bridge a room, so on my server there are i think 44 bridged rooms.

  36. MattJ

    mod_muc_limits and mod_limits are (for better and worse) global, so you don't need each room owner to set this up

  37. MattJ

    The presence thing is per-room though

  38. Kris

    I think there is a way to pre set defaults for new rooms at least?

  39. Kris

    I think there is a way to pre set defaults for new channels at least?

  40. Kris remembers "rooms" is depreciated as a term

  41. MattJ

    Old habits :)

  42. MattJ

    Yeah, you can change the defaults. However this would be a very surprising default :/

  43. MattJ

    In theory it would be possible to just filter stanzas to/from bifrost, e.g. using mod_firewall

  44. MattJ

    But this is getting pretty Prosody-specific, we should probably take it to the Prosody channel

  45. Kris

    the worst part of this issue is that of those 1k users on the matrix side, probably 700 or so are dead accounts. So the issue it completely stupid and just caused by conflicting design philosophies

    👍 2
  46. MattJ

    Yeah

  47. Kris

    btw GC3 will be completed this year?

  48. Kris

    I mean the XEP draft submitted

  49. Kris

    muppeth, the appservice-irc bridge at least has a setting to prevent these mass-joins on bridge restart. Maybe that is something Maranda could look into?

  50. MattJ

    Kris, depends. My current before-end-of-year priority is OMEMO in snikket-sdk, but GC3 is already in progress and a close second.

    👍 1
  51. MattJ

    I already have a test server up since the Worcester sprint, with some initial functionality. However there wasn't much time for testing by the time it was ready.

  52. muppeth

    > muppeth, the appservice-irc bridge at least has a setting to prevent these mass-joins on bridge restart. Maybe that is something Maranda could look into? thanks. I relayed it to him

  53. Kris

    Snikket-SDK will support OMEMO 0.8?

  54. halo

    why entering disroot room, i keep getting server timeout try again message. is the disroot xmpp down? is every room hosted on its original server only?

  55. Kris

    halo, I am also seeing connection issues with Disroot right now, but I think that might be rather an issue with the new ejabberd 24.10 release. What server are you using?

  56. halo

    my jid is from movim.eu

  57. halo

    Can you send message on disroot room?

  58. Kris

    hmm, not sure if movim.eu is already updated to 24.10. probably not?

  59. Kris

    right now I can't, but I think that is rather due to my server and not Disroot

  60. Kris

    can you join the joinjabber.org channels? because for me I also have an issue there.

  61. Kris

    despite not having enabled mod_s2s_bidi I can't seem to connect to Prosody hosted MUCs right now

  62. halo

    other rooms are ok. only disroot disconnected. so i guess disroot is down

  63. Kris

    other channels hosted on ejabberd servers yes

  64. MattJ

    > Snikket-SDK will support OMEMO 0.8? At least not initially, no. If there is enough movement in the ecosystem (e.g. Conversations at least) then I'd reconsider that.

  65. halo

    the last message in disroot room is ">I love misteries, just not the best timing for 'em right now Muppeth 🤣"

  66. halo

    which is 17hours ago

  67. muppeth

    halo, perhaps you should reload the client. this was from yesterday.

  68. halo

    That is your message, right?. do.you see.anything after that?

  69. Kris

    ah movim.eu is also already running on ejabberd 24.10

  70. Kris

    so it is probably the same issue I have

  71. halo

    Kris: did any server update happened after yesterday?

  72. Kris

    apparently yes. I just checked and movim.eu also runs on ejabberd 24.10 already and that was only release the day before yesterday

  73. halo

    How many different server software does xmpp have?

  74. MattJ

    At least 6

  75. halo

    so, ejabbered is unstable?

  76. Kris

    no, but I think there is a newly introduced bug that prevents it from connecting to channels hosted on Prosody servers

  77. Kris

    most public channels are hosted on Ejabberd, except Disroot pretty much

  78. MattJ

    I'm curious how you define "most" :)

  79. Kris

    according to my extensive list of channels I am joined :) only Disroot and Joinjabber fails right now and those are the only ones I know for sure are on Prosody

  80. MattJ

    It doesn't matter, but I get the opposite impression, and search.jabber.network suggests it's far from just disroot (from a rough skim, Prosody is roughly half of the front page of results, 2 of those are disroot)

  81. MattJ

    You're joined to this one okay?

  82. Kris

    apparently...

  83. MattJ

    Maybe just disroot and joinjabber have bidi enabled

  84. Kris

    so it might also be a specific setting issue with Disroot and Joinjabber

  85. Kris

    yes maybe, but I explicitly did not enable mod_s2s_bidi when upgrading ejabberd

  86. MattJ

    Yeah, that's weird

  87. halo

    Kris: is only the room channel discommunicated, or private 1to1 chat also broken between two types of servers?

  88. Kris

    if s2s fails then all communication is blocked

  89. Kris

    but somehow I managed to resolve the issue on my server just now

  90. Kris

    it's unclear how, but I can access Disroot channels again

  91. muppeth

    > Maybe just disroot and joinjabber have bidi enabled Yes we do.

  92. muppeth

    Kris, I unloaded bidi. could you check if you can join?

  93. Kris

    I already somehow fixed it before

  94. Kris

    but I am pretty sure bidi was not the issue in my case as I never enabled the new mod_s2s_bidi in the new ejabberd release

  95. Kris

    but maybe it helps with movim.eu

  96. edhelas

    Kris I just disabled mod_bidi for now

    👍 1
  97. mod

    Has there been any discussion within the XMPP community regarding the implementation of a mention feature in MUCs, similar to the commonly used ‘@’ symbol in other IM applications?

  98. Zash

    Yes and some clients already do that.

  99. mod

    > Yes and some clients already do that. Is it just a simple match with the nickname?

  100. Zash

    As in they invoke some user selector UI if you type @ and then communicate the mention using some XEP, not by sending @ on the wire.

  101. cal0pteryx

    Gajim will offer that as well in the upcoming 2.0 release

  102. Zash

    https://xmpp.org/extensions/xep-0372.html#usecase_mention maybe, I'm not sure

  103. mod

    I saw that there is an XEP-0224: Attention extension that can alert the other party, but it seems to be unavailable in MUCs.

  104. Zash

    Attention may be useful for alerting *everyone*, it's not directly usable for individual mentions.

  105. Zash

    And in 1:1 chats

  106. Louis2

    > Louis2: if you are not paying people you can't assign tasks to them Kris: Guess that means I can't ask my dog to fetch the remote either!

  107. Kris

    you are paying your dog with accomodation and food

  108. Kris

    maybe you should try that with xmpp developers... there might be some takers ;)

  109. Kris

    given rental prices and food inflation these days

  110. tubexmp

    Hi I have a client of Moxxy abandoned, don't you know?

  111. MattJ

    Not abandoned

    👍 1
  112. Kris

    their xmpp server seems to be down since a few days though