#1872 Ad-hoc command "Destroy Rooms" takes too long

Reporter Ge0rG
Owner Nobody
Created
Updated
Stars ★ (1)
Tags
  • Type-Defect
  • Status-New
  • Component-MUC
  • Priority-Medium
  1. Ge0rG on

    Running the "Destroy Rooms" ad-hoc command on a large MUC component will go through the storage and return back a looooong list of all rooms, blocking the server for a significant time. On my instance with ~3k rooms this takes roughly a minute where the server's even processing is blocked. (The multi-selection list returned also has a horrible UX on Android, but this is a different issue) It would be better to have an input box to enter the JID instead, or in addition to that, with a dedicated command. P.S: The room listing will also return already-destroyed rooms, not sure if this is intended.

  2. Ge0rG on

    The room listing in disco#items seems to get returned immediately, and the "Destroy Rooms" list doesn't have any additional info inside, so maybe it could be switched to the cached room list instead of evicting+loading all the rooms?

  3. Ge0rG on

    Workaround: `muc:room(roomjid):destroy()` (thx. @Zash)

  4. Zash on

    Thanks for the report. The cache used for disco#info includes only public rooms. There may be a use for deleting also private chats? There's also the set of live rooms that should be fast to access, which could be used. We could remove the listing and just have a jid-multi field?

    Changes
    • tags Component-MUC
  5. MattJ on

    Yeah, I think jid-multi is the way. Otherwise the stanza size is essentially unbounded...

  6. Ge0rG on

    I could see a use-case for "search rooms based on a wildcard / substring" that would return a list, but for now I'm happy with a jid or jid-multi input field.

New comment

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