History | Log In     View a printable version of the current page.  
Issue Details (XML | Word | Printable)

Key: EJAB-608
Type: Bug Bug
Status: Open Open
Priority: Major Major
Assignee: Christophe Romain
Reporter: Mickaël Rémond
Votes: 0
Watchers: 0
Operations

If you were logged in you would be able to see more operations.
ejabberd development

mod_caps can get overloaded with buggy client

Created: 14/Apr/08 09:34 AM   Updated: 23/Apr/08 12:57 PM
Component/s: Performance
Affects Version/s: ejabberd 2.0.0
Fix Version/s: ejabberd 2.0.2, ejabberd 2.1.0

Time Tracking:
Not Specified

Issue Links:
Relation
 

Participants: Christophe Romain and Mickaël Rémond
Company: process-one.net (Find related issues)
Labels:
Days since last comment: 3 weeks, 2 days ago


 Description  « Hide
Buggy clients like Wippien, Bombus, and possibly old Google clients can overload mod_caps disco_requests dictionary.

The dictionary grows indefinitely with:

{dict,6561,1313,2048,1024,6565,3939,{[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]},{{[[\"2016257877\"|{\"http://www.weonlydo.com/XMPP/caps\",\"xhtml-im\"}],[\"80717958\"|{\"http://www.weonlydo.com/XMPP/caps\",\"WippienIM3\"}],[\"2991258674\"|{\"http://nostromo.jabberstudio.org/caps\",\"0.8.8257.40806\"}]],[[\"2159090565\"|{\"http://www.weonlydo.com/XMPP/caps\",\"xhtml-im\"}],[\"4147792736\"|{\"http://BombusMod.net.ru#0.6.1253.662M\",\"niZ0mgQ8ofRtSrORxWwru/66ya0=\"}],[\"3483821238\"|{\"http://www.weonlydo.com/XMPP/caps\",\"WippienIM3\"}]],[[\"11208740\"|{\"http://www.weonlydo.com/XMPP/caps\",\"html\"}],[\"966540027\"|{\"http://www.weonlydo.com/XMPP/caps\",\"WippienIM3\"}],[\"4046377925\"|{\"http://www.weonlydo.com/XMPP/caps\",\"WippienIM3\"}]],[[\"2789491462\"|{\"http://www.weonlydo.com/XMPP/caps\",\"WippienIM3\"}],[\"1048636637\"|{\"http://www.weonlydo.com/XMPP/caps\",\"WippienIM3\"}]],[[\"1015192581\"|{\"http://www.weonlydo.com/XMPP/caps\",\"WippienIM3\"}]],[[\"1333880480\"|{\"http://www.weonlydo.com/XMPP/caps\",\"WippienIM3\"}],[\"4113235290\"|{\"http://www.google.com/xmpp/client/caps\",\"1.0.0.104\"}]],[[\"1681833867\"|{\"http://www.weonlydo.com/XMPP/caps\",\"WippienIM3\"}]],[[\"3158558157\"|{\"http://www.google.com/xmpp/client/caps\",\"sidebar\"}]],[[\"3621792052\"|{\"http://www.weonlydo.com/XMPP/caps\",\"WippienIM3\"}],[\"4141272718\"|{\"http://www.weonlydo.com/XMPP/caps\",\"1.1.3.66\"}],[\"903475108\"|{\"http://www.weonlydo.com/XMPP/caps\",\"WippienIM3\"}],[\"1631506582\"|{\"http://www.weonlydo.com/XMPP/caps\",\"WippienIM3\"}]],[[\"844879011\"|{\"http://www.weonlydo.com/XMPP/caps\",\"WippienIM3\"}],[\"1736237616\"|{\"http://nostromo.jabberstudio.org/caps\",\"0.8.8257.40806\"}],[\"1026437731\"|{\"http://www.weonlydo.com/XMPP/caps\",\"WippienIM3\"}],[\"2972285519\"|{\"http://www.google.com/xmpp/client/caps\",\"sidebar\"}],[\"1834563507\"|{\"http://www.weonlydo.com/XMPP/caps\",\"1.1.3.66\"}]],[[\"3955407068\"|{\"http://www.weonlydo.com/XMPP/caps\",\"WippienIM3\"}],[\"3186360363\"|{\"http://www.weonlydo.com/XMPP/caps\",\"html\"}],[\"471472077\"|{\"http://www.weonlydo.com/XMPP/caps\",\"WippienIM3\"}]],


It also overload the iq_response ets table:
[{iq_response,"2585348672",mod_caps,handle_disco_response},
 {iq_response,"1133709576",mod_caps,handle_disco_response},
 {iq_response,"2709645965",mod_caps,handle_disco_response},
 {iq_response,"3478223266",mod_caps,handle_disco_response},
 {iq_response,"1223144578",mod_caps,handle_disco_response},
 {iq_response,"3317887969",mod_caps,handle_disco_response},
 {iq_response,"2659224135",mod_caps,handle_disco_response},
 {iq_response,"4143258453",mod_caps,handle_disco_response},
 {iq_response,"195169661",mod_caps,handle_disco_response},
 {iq_response,"4173053030",mod_caps,handle_disco_response},
 {iq_response,"3806542695",mod_caps,handle_disco_response},
 {iq_response,"2071771309",mod_caps,handle_disco_response},
 {iq_response,"4151129965",mod_caps,handle_disco_response},
 {iq_response,"911644869",mod_caps,handle_disco_response},
 {iq_response,"2739841233",mod_caps,handle_disco_response},
 {iq_response,"3146635969",mod_caps,handle_disco_response},
 {iq_response,"1076263294",mod_caps,handle_disco_response},
 {iq_response,"96071098",mod_caps,handle_disco_response},
 {iq_response,"925747984",mod_caps,handle_disco_response},
 {iq_response,"2996592642",mod_caps,handle_disco_response},
 {iq_response,"3644710305",mod_caps,handle_disco_response},
 {iq_response,"3534282081",mod_caps,handle_disco_response},
 {iq_response,"4246109906",mod_caps,handle_disco_response},
 {iq_response,"285686443",mod_caps,handle_disco_response},
 {iq_response,"3886166519",mod_caps,handle_disco_response},

My guess is that those client never reply to iq disco request.

 All   Comments   Work Log   Change History   FishEye   Crucible      Sort Order: Ascending order - Click to sort in descending order
Christophe Romain - 23/Apr/08 12:57 PM
todo: handle a list of timers that purges awaiting iq_reponse messages (from ejabberd_local)