Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [jetty-dev] HttpClient version 7.0.1.v20091125: few cases that async exchanges won't come back

Hi,

On Wed, Mar 24, 2010 at 00:30, Paul Yang <pccyang@xxxxxxxxx> wrote:
> Hi,
>
> Under the following cases, some asynchronous exchanges won't come back
> (actually some are never sent). That means neither onResponseComplete(),
> onConnectionFailed(), onException() or onExpire() is invoked.
>
> 1. connection failed and HttpDestination::_idle queue has more than allowed
> MaxConnectionsPerAddress pending exchanges.
> Under this case, the current implementation just calls onConnectionFailed()
> of the first exchange from _idle queue. The rest become orphan and never get
> send.
> Possible fix could be; calling onConnectionFailed() for all exchanges in
> _idle queue, or just calls onConnectionFailed() of the first exchange from
> _idle queue then try to start a new connection if the _idle is still not
> empty
>
> 2. HttpConnection::send failed
> When this happened, connection was neither in the idle timer or timeout
> timer but still in HttpDestination::_connection queue, so this connection
> never got a chance to be removed and it occupied one slot from
> MaxConnectionsPerAddress. These connections will gradually eat up all the
> maximum allowed connections per address and no more exchanges can be send.
>
>
> It might be easier to see it in action. The attached files contain a quickly
> whipped up test program (to reproduce the problem) and patch against version
> 7.0.1.v20091125.

Thanks, can you please raise a Bugzilla for these issues ?

Simon
-- 
http://bordet.blogspot.com
---
Finally, no matter how good the architecture and design are,
to deliver bug-free software with optimal performance and reliability,
the implementation technique must be flawless.   Victoria Livschitz


Back to the top