Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [jetty-users] response.getOutputStream().write() hangs forever if client doesn't consume the response

The change I am talking about is between RC1 and RC2, not between RC1 and 8.1.16.
So that's probably easier to isolate.

This has been tried on:
- Ubuntu 12.04 / JDK 8u05
- Windows 7 pro / JDK 8u11

Server connection configuration is just in the code itself http://pastie.org/9745330 :
  SelectChannelConnector httpConnector = new SelectChannelConnector();
  httpConnector.setPort(8080);
  httpConnector.setMaxIdleTime(10000);

We tried with Jetty 9.3.0.M1 with the same behaviour.

On Wed, Nov 26, 2014 at 12:36 PM, Joakim Erdfelt <joakim@xxxxxxxxxxx> wrote:
8.1.0.RC1 and RC2 are very early codebases, there's been a staggering number of commits between 8.1.0.RC1 and 8.1.16.v20140903


Will be difficult to isolate what's changed since then.

Just for completeness sake ...
What OS are you testing on?
What JVM are you using?
What is your server side Connector configuration?

Also, consider upgrading, as Jetty 8.x is due for EOL in about 1 month.



--
Joakim Erdfelt <joakim@xxxxxxxxxxx>
Expert advice, services and support from from the Jetty & CometD experts

On Wed, Nov 26, 2014 at 12:33 PM, Benjamin Jaton <benjamin.jaton@xxxxxxxxx> wrote:
Hello,

I am creating a simple embedded Jetty server:
  http://pastie.org/9745330

The client is using Apache HttpClient. It doesn't consume the response and exits right after the execute():
  HttpClient client = new DefaultHttpClient();
  HttpGet get = new HttpGet("http://localhost:8080/");
  HttpResponse response = client.execute(get);

Using 8.1.16.v20140903:
If I use response.getOutputStream().write(data), the write() hangs forever and the doGet() method never completes (more than 15 hours).
Now if I use response.getWriter().write(data), the write returns right away (with checkErrors = true).

I am wondering if the OutputStream should not have the same behaviour as the Writer. The Writer seems to have the information about the client being gone, but the OutputStream has no clue and stays stuck.

Interestingly, in version 8.1.0.RC1, the Writer hangs in that scenario as well, and in version 8.1.0.RC2 it returns.
I couldn't find the changelog for RC2 but that change should be applied for the OutputStream as well.

With such a behaviour, it's easy to bring the server to a DOS since the server never releases the resources for that request.

Any idea about this?
I wanted to reach out before opening a BugZilla.

Thanks,
Benjamin

_______________________________________________
jetty-users mailing list
jetty-users@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://dev.eclipse.org/mailman/listinfo/jetty-users


_______________________________________________
jetty-users mailing list
jetty-users@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://dev.eclipse.org/mailman/listinfo/jetty-users


Back to the top