How do I do that?

Gordon.

From: Oleg Kalnichevski <ol...@apache.org>
Date: Thursday, 7 July 2022 at 19:30
To: HttpClient User Discussion <httpclient-users@hc.apache.org>
Subject: Re: Sockets not closing
On Thu, 2022-07-07 at 18:17 +0000, Gordon Ross wrote:
> If I don’t do the getContent() then the socket is closed as soon as I
> do response.close().

This is expected and per design. HttpClient has no choice but to close
the connection assuming it may be left in a inconsistent state (there
are still bits of the last response message in transit).

>
> If I do getContent(), the socket stays open for several minutes (in
> ESTABLISHED state) and then the socket sits in CLOSE_WAIT for
> hours/days. Eventually I can’t open any more connections and I have
> to restart the app
>

You might want to configure HttpClient to evict connections that have
expired and been idle too long or evict them manually based on a custom
strategy (for instance, at the end of a logical session).

Oleg


> Gordon.
>
> From: Oleg Kalnichevski <ol...@apache.org>
> Date: Thursday, 7 July 2022 at 19:13
> To: HttpClient User Discussion <httpclient-users@hc.apache.org>
> Subject: Re: Sockets not closing
> On Thu, 2022-07-07 at 14:10 -0400, Carter Kozak wrote:
> > Hi,
> >
> > I think you may be seeing the same issue as
> > https://eur03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fissues.apache.org%2Fjira%2Fbrowse%2FHTTPCLIENT-2221&amp;data=05%7C01%7Cgr306%40universityofcambridgecloud.onmicrosoft.com%7C77cf04e8c9194868e32708da6046c99b%7C49a50445bdfa4b79ade3547b4f3986e9%7C0%7C0%7C637928154380248437%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&amp;sdata=MEjL5RtkWCAtg9QiyqNJF0Zdzd%2FnT3KnDzYpTl%2FNIzY%3D&amp;reserved=0
> > , although in a
> > slightly different way.
> > https://eur03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fapache%2Fhttpcomponents-client%2Fpull%2F371&amp;data=05%7C01%7Cgr306%40universityofcambridgecloud.onmicrosoft.com%7C77cf04e8c9194868e32708da6046c99b%7C49a50445bdfa4b79ade3547b4f3986e9%7C0%7C0%7C637928154380248437%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&amp;sdata=fTyKc81qVova%2BLaglaMOCdW0s8rlgjT88xs5Z9PoPRQ%3D&amp;reserved=0
> >
> > If the socket isn't closed, it's possible that the response has
> > been
> > drained, and the connection is still pooled awaiting reuse. In the
> > response.getEntity().close() case, it's bypassing the response
> > draining code-path, and closing the socket. Once the above commit
> > has
> > been released, both codepaths will produce the same behavior, and I
> > suspect in your case neither will close sockets as they're meant to
> > be reused later on. Connection reuse can be configured/disabled if
> > you prefer, such that closing the response/entity/stream will close
> > the socket in all cases.
> >
> > -ck
> >
>
> I strongly suspect that the connection was simply kept alive and
> pooled. That can be established by tuning on connection management
> context logging.
>
> Oleg
>
>
> > On Thu, Jul 7, 2022, at 13:58, Gordon Ross wrote:
> > > I’m using HttpClient 5.1.3 and I’m having problems with the
> > > underlying socket not closing. This problem only occurs if I call
> > > response.getEntity().getContent()
> > >
> > > If I only call response.getEntity() the underlying socket gets
> > > closed fine.
> > >
> > > I’ve tried doing the bare minimum of:
> > >
> > > InputStream is = response.getEntity().getContent();
> > > is.close();
> > > response.close();
> > >
> > > But even with this, the underlying socket remains open.
> > >
> > > I’ve tried looking at the samples and I can’t see I’m doing
> > > anything different. What am I missing?
> > >
> > >
> > > Gordon Ross (he/him)
> > > Collaboration Tools Team
> > > University Information Services
> > > University of Cambridge
> > >
> > > While it suits me to email outside normal working hours, I do not
> > > expect a response outside your own.
> > >
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: httpclient-users-unsubscr...@hc.apache.org
> For additional commands, e-mail: httpclient-users-h...@hc.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: httpclient-users-unsubscr...@hc.apache.org
For additional commands, e-mail: httpclient-users-h...@hc.apache.org

Reply via email to