On Fri, 2021-04-30 at 12:17 -0700, Ryan Schmitt wrote:
> Early indications are that the proposed patch isn't helping. Either
> way, I
> don't think it should affect the proposed release schedule, since we
> have
> so many bugfixes queued up.
> 

I am not surprised but there is no way of saying for sure as long a
there is no reliable reproducer.

Oleg

> On Wed, Apr 28, 2021 at 12:17 AM Ryan Schmitt <[email protected]>
> wrote:
> 
> > OK. I'll let you know what happens with the empirical testing. We
> > have a
> > second service reporting a problem that sounds like a connection
> > leak, and
> > I've asked them to deploy this patch as well.
> > 
> > On Tue, Apr 27, 2021 at 11:07 PM Oleg Kalnichevski <
> > [email protected]>
> > wrote:
> > 
> > > Hi Ryan
> > > 
> > > I think the fix looks valid as an extra safe-guard, though I
> > > really do
> > > not see what should be causing a connection leak in the first
> > > place. It
> > > would really help to have a test case reproducing the issue.
> > > 
> > > I will apply the patch nonetheless.
> > > 
> > > Cheers
> > > 
> > > Oleg
> > > 
> > > On 4/27/2021 8:39 PM, Ryan Schmitt wrote:
> > > > I may have spoken too soon; it looks like perhaps there _is_
> > > > another
> > > > connection leak in 5.0.3. Fortunately, the user supplied a
> > > > patch which
> > > he
> > > > claims fixes it. Oleg, does this patch make sense to you?
> > > > 
> > > > diff --git
> > > > 
> > > src/main/java/org/apache/hc/client5/http/impl/classic/InternalExe
> > > cRuntime.java
> > > src/main/java/org/apache/hc/client5/http/impl/classic/InternalExe
> > > cRuntime.java
> > > > index a344265..9911f29 100644
> > > > ---
> > > > 
> > > src/main/java/org/apache/hc/client5/http/impl/classic/InternalExe
> > > cRuntime.java
> > > > +++
> > > > 
> > > src/main/java/org/apache/hc/client5/http/impl/classic/InternalExe
> > > cRuntime.java
> > > > @@ -115,6 +115,12 @@ class InternalExecRuntime implements
> > > > ExecRuntime,
> > > > Cancellable {
> > > >                   reusable = connectionEndpoint.isConnected();
> > > >                   if (cancellableDependency != null) {
> > > >                       cancellableDependency.setDependency(this)
> > > > ;
> > > > +                    // if the dependency was already cancelled
> > > > setDependency will trigger cancellation
> > > > +                    // and in that case we shouldn't acquire
> > > successfully
> > > > +                    if (cancellableDependency.isCancelled()) {
> > > > +                        this.cancel();
> > > > +                        throw new
> > > > RequestFailedException("Request
> > > > aborted");
> > > > +                    }
> > > >                   }
> > > >                   if (log.isDebugEnabled()) {
> > > >                       log.debug("{} acquired endpoint {}", id,
> > > > ConnPoolSupport.getId(connectionEndpoint));
> > > > 
> > > 
> > > ---------------------------------------------------------------
> > > ------
> > > To unsubscribe, e-mail: [email protected]
> > > For additional commands, e-mail: [email protected]
> > > 
> > > 


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to