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.
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/InternalExecRuntime.java >> > >> src/main/java/org/apache/hc/client5/http/impl/classic/InternalExecRuntime.java >> > index a344265..9911f29 100644 >> > --- >> > >> src/main/java/org/apache/hc/client5/http/impl/classic/InternalExecRuntime.java >> > +++ >> > >> src/main/java/org/apache/hc/client5/http/impl/classic/InternalExecRuntime.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] >> >>
