powered by Jive Software

Facing issue with Ruby XMPP4r gem


I am facing a weird issue with XMPP4r i.e. it gets stuck with a specific code. I am able to recreate the problem with the following snippet which loops through all the users in the system and tries to connect to the XMPP server:

def connect_users_to_chat

** User.all.each do | user |**

** begin **

** chat_username = user.try(:chat_username)**

** client = Jabber::Client.new(Jabber::JID::new("#{chat_username}@localhost"))**

** client.allow_tls = false**

** client.connect**

** puts “#{chat_username} connected”**

** client.auth(‘password’)**

** puts “#{chat_username} authorised”**

** client.close**

** rescue Exception => ex**

** puts “Exception while connecting for #{chat_username} with id #{user.id} with msg #{ex.message}”**

** end**

** end**


I ran it against 10-12 users and the code gets stuck while calling auth method. Its purely random i.e. am not able to reproduce it for a specific user or specific position.

When I did a strace on the process, it showed the status as ***FUTEX_WAIT_PRIVATE. ***

Any clue on whats wrong and how to tackle it?