On 04.04.12 19:53, Mike Mahoney wrote:
I have been struggling with an issue where more than occasionally
the delayedResponseQueue will be filled with empty responses until
the server eventually runs out of memory. The client is JSJac but I
am not really focused on that implementation, I just want to try
and protect the server from being over run by any client.
We're running into the same issue now using Strophe, so it probably
isn't due to the client.
<snip>
If an rid is skipped, as in the scenario you outlined, then the
highestReadRid won't be incremented to 319 and will remain as 317
forever. Which causes the firstKey to be greater than the
highestReadRid. That loop doesn't seem right to me.
Thoughts?
Yes. I think BoshBackedSessionContext needs a major refactoring. The
whole logic around queuing is flawed and hard to understand
(code-readability). Missing synchronized statements can cause even more
trouble.
Bernd