I'm regularly observing a strange behaviour of ejabberdctl, where all commands except help, mnesia, restart, status and stop are "forgotten", meaning they are not listed when executing "ejabberdctl" and cause an error when trying to run them. Restarting ejabberd returns all the commands.
What could be causing this?
Those five commands are
Those five commands are explicitly provided by ejabberd_ctl. The other ones (which are the majority) are provided by other modules, like ejabberd_admin, mod_admin_extra,..., and are managed buy ejabberd_commands.
There are many possible reasons, for example: problem connecting to the ejabberd node, or the ejabberd_commands table got broken, or ejabberd was considering being stopped (in that case maybe modules stop, and their commands availability gets removed)...
It's probably not connection
It's probably not connection problems, since the commands are run directly on the node.
How can I investigate whether the commands table is broken?
If ejabberd is "considering being stopped", does it have to receive a shutdown command, or can it happen by other means?
I noticed something: on the
I noticed something: on the node where commands go missing, the command "ejabberdctl mnesia" shows "ejabberd_commands" only in the "tables" list, not in the "local_tables" list.
The command "ejabberdctl mnesia info" additionally displays "remote = [ejabberd_commands]" and "[] = [ejabberd_commands]".
Does this mean anything?
Alexander, we are having the
Alexander, we are having the same issue when a new node joins the cluster. Did it disappear by upgrading to a new ejabberd version?
Thanks,
fabrizio
ejabberd 16.09 included some
ejabberd 16.09 included some fix related to missing ejabberd_commands table, seehttps://github.com/processone/ejabberd/issues/1210
Maybe your problem is fixed there, or maybe your problem is somehow related, and that fix isn't yet enough.