On Mon, Jan 19, 2015 at 1:33 PM, Edgar Espina <espina.edgar(a)gmail.com>
wrote:
Sure, it is 2.2.15.
On Mon, Jan 19, 2015 at 9:29 AM, Tomaž Cerar <tomaz.cerar(a)gmail.com>
wrote:
> Edgar,
>
> what is the version of Apache and mod_proxy module you are using.
> maybe it will be easier to reproduce with exact version you have..
>
> --
> tomaz
>
> On Mon, Jan 19, 2015 at 1:15 PM, Edgar Espina <espina.edgar(a)gmail.com>
> wrote:
>
>> The source code can be found here:
>>
https://github.com/jooby-project/jooby
>>
>> Undertow related classes are here:
>>
https://github.com/jooby-project/jooby/tree/master/jooby/src/main/java/or...
>> .
>> Server is built here:
>>
https://github.com/jooby-project/jooby/blob/master/jooby/src/main/java/or...
>> Response is sent here:
>>
https://github.com/jooby-project/jooby/blob/master/jooby/src/main/java/or...
>>
>> My microweb-framework was built on top of Jetty, so for now I used the
>> blocking API and follow more or less what we usually do with Servlets
>> (acquire an outstream).
>>
>> I will review what I'm doing and try to figure it out what is going on
>> too.
>>
>> Thanks for your help, Stuart.
>>
>>
>>
>>
>> On Mon, Jan 19, 2015 at 2:12 AM, Stuart Douglas <sdouglas(a)redhat.com>
>> wrote:
>>
>>> My best guess as to what is happening is that Undertow closing a
>>> connection after a request is done for some reason, and the apache attempts
>>> to re-use this connection without realising that it is dead.
>>>
>>> In general this should not happen, Undertow should only forcibly close
>>> a connection if it knows that it is broken (e.g. a content length is set
>>> and the full amount of content is not written). For a normal graceful close
>>> Undertow should be sending Connection:close headers.
>>>
>>> I am going to investigate some more, and see if I can figure out what
>>> is going on. It seems unlikely but is there any chance your code forcibly
>>> closes the ServerConnection (HttpServerExchange.getConnection()) because
>>> that could potentially cause this issue. Setting the exchange to
>>> non-persistent after headers have been sent could also cause it.
>>>
>>> Stuart
>>>
>>> ----- Original Message -----
>>> > From: "Edgar Espina" <espina.edgar(a)gmail.com>
>>> > To: "Stuart Douglas" <sdouglas(a)redhat.com>
>>> > Cc: undertow-dev(a)lists.jboss.org
>>> > Sent: Monday, 19 January, 2015 2:53:06 PM
>>> > Subject: Re: [undertow-dev] occasional 502 from Apache HTTP Proxy
>>> >
>>> > Done, but makes no difference. Still got the 502 random errors :S
>>> >
>>> > On Sun, Jan 18, 2015 at 11:13 PM, Stuart Douglas
<sdouglas(a)redhat.com
>>> >
>>> > wrote:
>>> >
>>> > > I had a play around with apache locally, and I could reproduce
this
>>> in
>>> > > some circumstances, and it looks like we are not setting a high
>>> enough
>>> > > backlog by default.
>>> > >
>>> > > Can you try adding:
>>> > >
>>> > > undertow.setSocketOption(Options.BACKLOG, 1000)
>>> > >
>>> > > To your Undertow builder? I am going to increase this in our
default
>>> > > config upstream.
>>> > >
>>> > > Hopefully this is the issue that you are running into.
>>> > >
>>> > > Stuart
>>> > >
>>> > >
>>> > > ----- Original Message -----
>>> > > > From: "Edgar Espina" <espina.edgar(a)gmail.com>
>>> > > > To: "Stuart Douglas" <sdouglas(a)redhat.com>
>>> > > > Cc: undertow-dev(a)lists.jboss.org
>>> > > > Sent: Monday, 19 January, 2015 12:10:16 PM
>>> > > > Subject: Re: [undertow-dev] occasional 502 from Apache HTTP
Proxy
>>> > > >
>>> > > > It is a default undertow instance with a HTTP listener, just
set
>>> work
>>> > > > threads to 200. Is there a default idle timeout? I can'
tell from
>>> javadoc
>>> > > > and looking at the code.
>>> > > >
>>> > > >
>>> > > > On Sun, Jan 18, 2015 at 9:59 PM, Stuart Douglas <
>>> sdouglas(a)redhat.com>
>>> > > wrote:
>>> > > >
>>> > > > >
>>> > > > >
>>> > > > > Edgar Espina wrote:
>>> > > > >
>>> > > > >> I'm not, channel does it.
>>> > > > >>
>>> > > > >> Problem is present on both. For example, home page
has a
>>> > > content-length
>>> > > > >> header but jquery.js use chunked.
>>> > > > >>
>>> > > > >
>>> > > > > In general if you are serving static resources you are
better
>>> off
>>> > > setting
>>> > > > > the content length (slightly more efficient, and the
browser can
>>> > > display
>>> > > > > progress on downloads).
>>> > > > >
>>> > > > >
>>> > > > >> Do I have to call .endExchange? or closing the output
stream is
>>> > > enough?
>>> > > > >>
>>> > > > >
>>> > > > > Closing the output stream is enough. endExchange is
>>> automatically
>>> > > called
>>> > > > > once the call stack returns anyway, unless you have
dispatched
>>> the
>>> > > exchange
>>> > > > > or started async IO.
>>> > > > >
>>> > > > > The 'connection reset by peer' error in the
apache log while
>>> reading
>>> > > the
>>> > > > > status like kinda indicates that the request does not
even get
>>> to this
>>> > > > > point anyway, and the underlying TCP connection is
probably
>>> being torn
>>> > > down
>>> > > > > somehow.
>>> > > > >
>>> > > > > Do you have any kind of timeouts set? If you have an
idle
>>> timeout set
>>> > > on
>>> > > > > the listener there is a race where Undertow can close
the
>>> channel due
>>> > > to
>>> > > > > inactivity just as the front end starts to send a
request.
>>> > > > >
>>> > > > > Stuart
>>> > > > >
>>> > > > >
>>> > > > >> Thanks
>>> > > > >>
>>> > > > >> On Sun, Jan 18, 2015 at 9:48 PM, Stuart Douglas <
>>> sdouglas(a)redhat.com
>>> > > > >> <mailto:sdouglas@redhat.com>> wrote:
>>> > > > >>
>>> > > > >> Another question, are you setting a content
length on the
>>> > > responses?
>>> > > > >> If not the channel will automatically set one if
the
>>> response fits
>>> > > > >> inside a buffer, otherwise chunked encoding will
be used.
>>> > > > >>
>>> > > > >> It might be helpful to know if this only happens
on
>>> chunked, fixed
>>> > > > >> length or both.
>>> > > > >>
>>> > > > >> Stuart
>>> > > > >>
>>> > > > >> Edgar Espina wrote:
>>> > > > >>
>>> > > > >> latest: 1.2.0.Beta8
>>> > > > >>
>>> > > > >> On Sun, Jan 18, 2015 at 9:42 PM, Stuart
Douglas
>>> > > > >> <sdouglas(a)redhat.com
<mailto:sdouglas@redhat.com>
>>> > > > >> <mailto:sdouglas@redhat.com <mailto:
>>> sdouglas(a)redhat.com>>>
>>> > > wrote:
>>> > > > >>
>>> > > > >> Also what version of Undertow are you
using?
>>> > > > >>
>>> > > > >> Stuart
>>> > > > >>
>>> > > > >> ----- Original Message -----
>>> > > > >> > From: "Edgar Espina"
<espina.edgar(a)gmail.com
>>> > > > >> <mailto:espina.edgar@gmail.com>
>>> > > > >> <mailto:espina.edgar@gmail.com
<mailto:
>>> espina.edgar(a)gmail.com
>>> > > > >> >__>>
>>> > > > >> > To: "Stuart Douglas"
<sdouglas(a)redhat.com
>>> > > > >> <mailto:sdouglas@redhat.com>
>>> > > > >> <mailto:sdouglas@redhat.com <mailto:
>>> sdouglas(a)redhat.com>>>
>>> > > > >> > Cc: undertow-dev(a)lists.jboss.org
>>> > > > >> <mailto:undertow-dev@lists.jboss.org>
>>> > > > >> <mailto:undertow-dev@lists.__jboss.org
>>> > > > >>
<mailto:undertow-dev@lists.jboss.org>>
>>> > > > >> > Sent: Monday, 19 January, 2015 11:13:21
AM
>>> > > > >> > Subject: Re: [undertow-dev] occasional
502 from
>>> Apache HTTP
>>> > > > >> Proxy
>>> > > > >> >
>>> > > > >> > found this in apache:
>>> > > > >> >
>>> > > > >> > (104) Connection reset by peer: proxy:
error
>>> reading status
>>> > > > >> line from
>>> > > > >> > remote server
>>> > > > >> >
>>> > > > >> > but nothing in undertow.
>>> > > > >> >
>>> > > > >> > got 502 on HTTP GET. Sometimes while
calling the
>>> home page
>>> > > / or
>>> > > > >> when page
>>> > > > >> > loads OK, got 502 on page resources
(js, css,
>>> images).
>>> > > > >> >
>>> > > > >> > I call startBlocking and use the
outputstream to
>>> write the
>>> > > > >> response, when
>>> > > > >> > everything has been written I call the
>>> "outputstream.close"
>>> > > > >> method. Do I
>>> > > > >> > need to call exchange.endExchange too?
>>> > > > >> >
>>> > > > >> > Thanks
>>> > > > >> >
>>> > > > >> > On Sun, Jan 18, 2015 at 8:52 PM, Stuart
Douglas
>>> > > > >> <sdouglas(a)redhat.com
<mailto:sdouglas@redhat.com>
>>> > > > >> <mailto:sdouglas@redhat.com <mailto:
>>> sdouglas(a)redhat.com>>>
>>> > > wrote:
>>> > > > >> >
>>> > > > >> > > Is there any info in the log? Or
is there any
>>> specific
>>> > > type
>>> > > > >> of
>>> > > > >> request
>>> > > > >> > > that causes this?
>>> > > > >> > >
>>> > > > >> > > Stuart
>>> > > > >> > >
>>> > > > >> > >
>>> > > > >> > > ----- Original Message -----
>>> > > > >> > > > From: "Edgar
Espina" <espina.edgar(a)gmail.com
>>> > > > >> <mailto:espina.edgar@gmail.com>
>>> > > > >> <mailto:espina.edgar@gmail.com
<mailto:
>>> espina.edgar(a)gmail.com
>>> > > > >> >__>>
>>> > > > >> > > > To:
undertow-dev(a)lists.jboss.org
>>> > > > >> <mailto:undertow-dev@lists.jboss.org>
>>> > > > >> <mailto:undertow-dev@lists.__jboss.org
>>> > > > >>
<mailto:undertow-dev@lists.jboss.org>>
>>> > > > >> > > > Sent: Monday, 19 January,
2015 9:42:19 AM
>>> > > > >> > > > Subject: [undertow-dev]
occasional 502 from
>>> Apache HTTP
>>> > > > >> Proxy
>>> > > > >> > > >
>>> > > > >> > > > Hi,
>>> > > > >> > > >
>>> > > > >> > > > I've an Undertow
application behind apache
>>> reverse
>>> > > proxy,
>>> > > > >> trying to load
>>> > > > >> > > a
>>> > > > >> > > > page displays error 502 proxy
error.
>>> > > > >> > > >
>>> > > > >> > > > Still couldn't find why
so I wonder if any of
>>> you find
>>> > > a
>>> > > > >> similar problem
>>> > > > >> > > with
>>> > > > >> > > > Undertow and Apache.
>>> > > > >> > > >
>>> > > > >> > > > Please note this is our first
app on top of
>>> Undertow,
>>> > > > >> existing apps
>>> > > > >> > > running
>>> > > > >> > > > on Tomcat/Jetty are OK.
>>> > > > >> > > >
>>> > > > >> > > > Appreciate any help.
>>> > > > >> > > >
>>> > > > >> > > > Thanks
>>> > > > >> > > >
>>> > > > >> > > > --
>>> > > > >> > > > edgar
>>> > > > >> > > >
>>> > > > >> > > >
>>> _________________________________________________
>>> > > > >> > > > undertow-dev mailing list
>>> > > > >> > > > undertow-dev(a)lists.jboss.org
>>> > > > >> <mailto:undertow-dev@lists.jboss.org>
>>> > > > >> <mailto:undertow-dev@lists.__jboss.org
>>> > > > >>
<mailto:undertow-dev@lists.jboss.org>>
>>> > > > >> > > >
>>> > >
https://lists.jboss.org/__mailman/listinfo/undertow-dev
>>> > > > >>
<
https://lists.jboss.org/mailman/listinfo/undertow-dev
>>> >
>>> > > > >> > >
>>> > > > >> >
>>> > > > >> >
>>> > > > >> >
>>> > > > >> > --
>>> > > > >> > edgar
>>> > > > >> >
>>> > > > >>
>>> > > > >>
>>> > > > >>
>>> > > > >>
>>> > > > >> --
>>> > > > >> edgar
>>> > > > >>
>>> > > > >>
>>> > > > >>
>>> > > > >>
>>> > > > >> --
>>> > > > >> edgar
>>> > > > >>
>>> > > > >
>>> > > >
>>> > > >
>>> > > > --
>>> > > > edgar
>>> > > >
>>> > >
>>> >
>>> >
>>> >
>>> > --
>>> > edgar
>>> >
>>>
>>
>>
>>
>> --
>> edgar
>>
>> _______________________________________________
>> undertow-dev mailing list
>> undertow-dev(a)lists.jboss.org
>>
https://lists.jboss.org/mailman/listinfo/undertow-dev
>>
>
>
--
edgar