-
Hey! I'm running a personal server (so problems may be detected and addressed quite late) and I've been having weird issues with Now I notice these errors in the log:
These appear when I connect with gajim (and presumably it tries to update OMEMO-related pubsub stuff, because other devices seems to quickly "forget" about this client when it leaves). I'm running ejabberd 21.07, but I can see the errors in the log since at least 21.01 (with slightly different line numbers in different ejabberd versions). Relevant config parts: default_db: sql
sql_type: mysql
...
modules:
mod_pubsub:
access_createnode: pubsub_createnode
ignore_pep_from_offline: false
last_item_cache: false
plugins:
- flat
- pep
force_node_config:
storage:bookmarks:
access_model: whitelist I'm hoping the stacktrace will be enough to start figuring this out. |
Beta Was this translation helpful? Give feedback.
Replies: 2 comments 2 replies
-
I was not able to reproduce that crash, but looking at your log, the source code and the related changes, I built a possible explanation: Since commit 4d87728 the get_configure_xfields function calls to encode, and before that it removes some options that encode does not know, including Your error mentions an unknown option called So, maybe you used a version older than ejabberd 16.04, which used If that's the case, the first thing to look is why your database still contains old A dirty workaround in your case would be to let ejabberd handle that: diff --git a/src/mod_pubsub.erl b/src/mod_pubsub.erl
index 13b44b3ec..eb00e3829 100644
--- a/src/mod_pubsub.erl
+++ b/src/mod_pubsub.erl
@@ -3446,6 +3446,7 @@ get_configure_xfields(_Type, Options, Lang, Groups) ->
lists:filtermap(
fun({roster_groups_allowed, Value}) ->
{true, {roster_groups_allowed, Value, Groups}};
+ ({odbc, _}) -> false;
({sql, _}) -> false;
({rsm, _}) -> false;
(_) -> true |
Beta Was this translation helpful? Give feedback.
-
Looking at the release notes ( https://www.process-one.net/blog/ejabberd-16-04/ ), no change was required in the databases, I guess the change was done so ejabberd handled "odbc" and "sql"... but newest code didn't consider that.
Better if you update your database, so you don't depend on source code workarounds. Remember to backup database first, in case of troubles :) |
Beta Was this translation helpful? Give feedback.
I was not able to reproduce that crash, but looking at your log, the source code and the related changes, I built a possible explanation:
Since commit 4d87728 the get_configure_xfields function calls to encode, and before that it removes some options that encode does not know, including
{sql,_}
and{rsm,_}
Your error mentions an unknown option called
{odbc,_}
, which was used some years ago instead of sql, and was renamed in commit 1aae8a9So, maybe you used a version older than ejabberd 16.04, which used
{odbc,_}
in pubsub options, and newest ejabberd versions are not able to handle that old content?If that's the case, the first thing to look is why your database still contains old
{odbc,_}