My ejabberd server uses mysql DB as external storagea and I use method /create_room_with_opts of ejabberd API to create my rooms with option: {name: "persistent", value: "false"}. Everything works file and created rooms looklike actually temporary ones - they close automatically when last participants leave it.
But I have one problem - created not persistent rooms are saved in table muc_room, though it must contains only persistent room (https://docs.ejabberd.im/developer/sql-schema/#table-muc-room)
For example, I can have room with the followed options in muc_room table:
[{allow_change_subj,true},
{allow_private_messages,true},
{allow_private_messages_from_visitors,anyone},
{allow_query_users,true},
{allow_subscription,false},
{allow_user_invites,false},
{allow_visitor_nickchange,true},
{allow_visitor_status,true},
{anonymous,true},
{captcha_protected,false},
{lang,<<>>},
{logging,false},
{mam,true},
{max_users,200},
{members_by_default,true},
{members_only,false},
{moderated,true},
{password,<<>>},
{password_protected,false},
======> {persistent,false},
{presence_broadcast,[moderator,participant,visitor]},
{public,true},
{public_list,true},
{title,<<>>}]
The main problem is I receive all my not persistent room recreated while restarting my ejabberd server.
Questions: 1) Why are not persistent room created with ejabberd API stored in muc_room table (maybe some bug)? 2) How to avoid recreating these room when restarting ejabberd server (except removing it from DB: manually or using mysql event)?
Why are not persistent room created with ejabberd API stored in muc_room table
That was intentionally added in this commit: https://github.com/processone/ejabberd/commit/05c2995c7a4c2afb8481826f9dbe9ed9ec0b282b
to solve this problem: https://github.com/processone/ejabberd/issues/1954
Apparently, right now that isn't necessary, so I've removed it in a recent commit: https://github.com/processone/ejabberd/commit/5574b21dd67ba898ea1ba55fb4556b6cd53c58cd