Thursday, August 4, 2016

ejabberd Error : large number of users are crashing ejabberd

CRASH REPORT Process  with 0 neighbours exited with reason: {process_limit,{max_queue,}} in p1_fsm:terminate/8 line

CRASH REPORT Process <0.645.0> with 0 neighbours exited with reason: {process_limit,{max_queue,2706}} in p1_fsm:terminate/8 line 755

Solution : 1
May be, you have added all your users under one shared roster group. If you remove the group, you will not get the error again.

But if you remove the shared roster group, your users will not be able to see the other users in client like pidgin.
 
If you create multiple shared roster groups, Users of one group will not be able to see users of other group so they can not chat with each other. Bad Idea.

Solution : 2
In your shared roster group, you might have used @all@ parameter to add all users in one group. ejabberd is trying to list all users at once and it is crashing in this process.

You can change @all@ to @online@. Now ejabberd lists all online users only and this is definitely less than total number of users. In this condition ejabberd has less load and chances of crashing is less too.

But you have really a big database and you have 2000-3000 users are online simultaneously, then you should try solution 3.


Solution : 3
Add attribute
max_fsm_queue: 10000
under section port 5222: in the ejabberd.yml config file in following way
listen:
-
    port: 5222
    module: ejabberd_c2s4
    certfile: "/home/ubuntu/ejabberd-16.06/conf/server.pem"
    starttls: true
    resume_timeout: 0
    protocol_options:
      - "no_sslv3"
    max_stanza_size: 65536
    shaper: c2s_shaper
    access: c2s
    max_fsm_queue: 10000
  Restart ejabberd.

You should not get this error again.

Ubuntu boot error : fixing recursive fault but reboot is needed


While booting ubuntu, you are not able to reach upto Login screen. It appears with long list of errors and finally you get "fixing recursive fault but reboot is needed"

Solution :
Boot ubuntu in recovery mode and open command prompt
Now edit following grub file.


sudo nano /etc/default/grub
Change the line

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash" 
to
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash acpi=off"
sudo update-grub
sudo reboot

You should not get the error again and Login screen should be opened successfully.

Friday, July 8, 2016

ejabberd : Other users are not visible after login


Uncomment line

{mod_shared_roster,[]},

in config file of ejabberd and restart ejabberd.

config file - /etc/ejabberd/ejabberd.cfg 

Now you can see option "shared roster group".

Create a group and add users in the group. You can see all users of same group after login.