Hello, from reading over your description it seems it may be something the BOSH client is doing or not doing. Can you provide a client log of when this happens. Including the server log may help too. If we can see what the client is sending or not then we can probally get a better idea of what is happening. <div>
<br><div class="gmail_quote">On Wed, Nov 17, 2010 at 7:55 PM, Max Kalika <span dir="ltr"><<a href="mailto:max.kalika%2Bejabberd@gmail.com">max.kalika+ejabberd@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div style="word-wrap:break-word">Hello List.<br><br>We're seeing some funky stuff with our BOSH testing.  We haven't been able to fully track down the cause yet, but at some point, ejabberd (2.1.5) starts spewing tons and tons of debugging logs (~500MB in a few minutes) with mostly this:<br>
<br>=INFO REPORT==== 2010-11-02 09:45:23 ===<br>D(<0.550.0>:ejabberd_http_bind:918) : OutPacket: [{xmlstreamstart,<br>                                                  "stream:stream",<br>                                                  [{"xml:lang","en"},<br>
                                                   {"xmlns","<a>jabber:client</a>"},<br>                                                   {"xmlns:stream",<br>                                                    "<a href="http://etherx.jabber.org/streams" target="_blank">http://etherx.jabber.org/streams</a>"},<br>
                                                   {"id","4224552436"},<br>                                                   {"from",<br>                                                    "<a href="http://ci-jabber.wopr.connectsolutions.com/" target="_blank">ci-jabber.wopr.connectsolutions.com</a>"}]}]<br>
<br><br>This is only for two or three users connected.  Eventually the server crashes with this reason:<br><br>Slogan: eheap_alloc: Cannot allocate 912262800 bytes of memory (of type "heap").  I analyzed the crash dump in the erlang crashdump_viewer and it looks like the error_logger process had it's mailbox filled up.  This makes sense since the disk on this machine is rather slow so it lagged in writing out the debug traces and the memory balloon burst.<div>
<br></div><div>What we suspect happens is that a client sends a bosh stream start request but doesn't wait for the reply and closes the socket.  Looking through the code, I see that in ejabberd_http_bind, prepare_statement/4 calls prepare_outpacket_response/4 which matches the second pattern of the function head:</div>
<div><br></div><div><div>%% Handle a new session along with its output payload</div><div>prepare_outpacket_response(#http_bind{id=Sid, wait=Wait, </div><div><span style="white-space:pre-wrap">                          </span>      hold=Hold, to=To}=Sess,</div>
<div><span style="white-space:pre-wrap">                  </span>   Rid, OutPacket, true) -></div></div><div><br></div><div>Here OutEls is set to [] as can be seen from the above log entry -- there's only one element in the list:</div>
<div><br></div><div><div>   case OutPacket of</div><div><span style="white-space:pre-wrap">   </span>[{xmlstreamstart, _, OutAttrs} | Els] -></div></div><div>...</div><div><div><span style="white-space:pre-wrap">     </span>    OutEls =</div>
<div><span style="white-space:pre-wrap">          </span>case Els of</div><div><span style="white-space:pre-wrap">              </span>    [] -></div><div><span style="white-space:pre-wrap">                     </span>[];</div></div><div><br></div><div>And eventually prepare_response/4 is called again and the whole cycle repeats:</div>
<div><br></div><div><div><span style="white-space:pre-wrap">      </span>    case OutEls of </div><div><span style="white-space:pre-wrap">              </span>[] -></div><div><span style="white-space:pre-wrap">         </span>    prepare_response(Sess, Rid, OutPacket, true);</div>
<div><br></div><div><br></div><div>I haven't been able to trace http_get/2 in prepare_response/4 yet, so I am just bringing this up on the list for someone who is more intimate with this code.</div><br>Would anyone here have any ideas on how to track this down further?<br>
<br>Thanks!</div></div><br>_______________________________________________<br>
ejabberd mailing list<br>
<a href="mailto:ejabberd@jabber.ru">ejabberd@jabber.ru</a><br>
<a href="http://lists.jabber.ru/mailman/listinfo/ejabberd" target="_blank">http://lists.jabber.ru/mailman/listinfo/ejabberd</a><br>
<br></blockquote></div><br></div>