450 SQL transaction restarts exceeded ** Restarts: 10

Hello..

Could someone please explain me following errorlog. Whenever I open error log. I find it difficult to find what exactly is the error.

2017-01-18 06:49:22.727 [error] <0.7807.10>@ejabberd_hooks:run_fold1:368 {function_clause,[{mod_roster,raw_to_record,[<<"xxxx.com">>,error],[{file,"src/mod_roster.erl"},{line,1290}]},{mod_roster,fill_subscription_lists,4,[{file,"src/mod_roster.erl"},{line,688}]},{ejabberd_hooks,safe_apply,3,[{file,"src/ejabberd_hooks.erl"},{line,382}]},{ejabberd_hooks,run_fold1,4,[{file,"src/ejabberd_hooks.erl"},{line,365}]},{ejabberd_c2s,wait_for_session,2,[{file,"src/ejabberd_c2s.erl"},{line,1122}]},{p1_fsm,handle_msg,10,[{file,"src/p1_fsm.erl"},{line,582}]},{proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line,237}]}]}
running hook: {roster_get_subscription_lists,[<<"3-t7uc04g3ao">>,<<"xxxxx.com">>]}
2017-01-18 06:54:33.018 [error] <0.489.0>@ejabberd_odbc:outer_transaction:450 SQL transaction restarts exceeded
** Restarts: 10
** Last abort reason: "#22001Data too long for column 'xml' at row 1"
** Stacktrace: [{ejabberd_odbc,sql_query_t,1,[{file,"src/ejabberd_odbc.erl"},{line,173}]},{lists,foreach,2,[{file,"lists.erl"},{line,1336}]},{ejabberd_odbc,outer_transaction,3,[{file,"src/ejabberd_odbc.erl"},{line,443}]},{ejabberd_odbc,run_sql_cmd,4,[{file,"src/ejabberd_odbc.erl"},{line,380}]},{p1_fsm,handle_msg,10,[{file,"src/p1_fsm.erl"},{line,582}]},{proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line,237}]}]
** When State == {state,<0.491.0>,mysql,30000,<<"xxxx.com">>,undefined,{0,{[],[]}}}

There are two error reports,

There are two error reports, and looking at their times, they see independent.

The first is when logging in and getting the user roster subscriptions, ejabberd finds some problem processing one them.

The second is that MySQL complains with the error "#22001Data too long for column 'xml' at row 1". It seems ejabberd tries to repeat the query ten times, but of course Mysql always aborts the transactions as they are similarly problematic. From what I see, there are columns called 'xml' in the Mysql table 'spool' used by mod_offline and the table 'archive' used by mod_mam.

It seems some user is sending such a big stanza to other user, that it is bigger than what the Mysql table is designed.

Thank you @badlop for your

Thank you @badlop for your really helpful answer. Thanks you once again.

Syndicate content