Open suf4dev opened 4 years ago
The problem is easy to reproduce:
exit(element(2, mod_muc:find_online_room(<<"room1">>, <<"conference.localhost">>)), kill).
The problem is easy to reproduce:
- Create a new room, for example joining room1
- In Erlang shell, execute something like:
exit(element(2, mod_muc:find_online_room(<<"room1">>, <<"conference.localhost">>)), kill).
- It shows an error message like what you mentioned...
- but nothing else! The mod_muc service is not aware of the room crash, the muc_online_room Mnesia table still mentions the room, and the occupants were not informed about the room crash.
The shell return just "true" and nothing else. No crash log
I have determined what causes room crash. When room captcha enabled, Some users use tools to request too many captcha . after a few minutes the room crashes permanently until restart the server.
Did you find in the logs any specific error lines related to those captcha crashes? Or the only thing found in the logs are the lines you already copied in the ticket description?
Did you find in the logs any specific error lines related to those captcha crashes? Or the only thing found in the logs are the lines you already copied in the ticket description?
No. Just only the lines copied in ticket description
@badlop I think we should rate limit the captcha generation from user to mitigate this issue.
Environment
OTP 21.2.7 - 23.0.3
Errors from error.log/crash.log
Bug description
Hello, When trying to get Config of the room it returns {error,not_found} but the room PID stills in Mnesia . The problem occurs at some point when some flooders make the room crash. I have been struggling from a week but I did not find any solution. I have tried OTP 21.2.7 and OTP 23.0.3 . Now most of Rooms dissapeard from list but stills in Mysql database. I have to restart the whole server for rooms to show again but after sometime crashes some rooms again