On 10/10/2015 12:31 AM, Willy Tarreau wrote:
> Is the response closed when this happens (eg: server crash) ? If so,
> we could add some sample fetches to detect that the request or response
> channels are closed in case that could help. This is trivial to do, but
> it will only be reliable if the close is immediately encountered, so it
> still depends on the timing.

We don't really understand why it happens, though we have been able to
track down an exception that we *think* is related.  It's a common
problem seen with servlet containers: "java.lang.IllegalStateException:
Cannot forward after response has been committed" and
"java.lang.IllegalStateException: Cannot call sendError() after the
response has been committed".  The underlying cause virtually every time
these exceptions occur is programmer error.  The difficult part is
tracking it down and getting a fix deployed.

We've been looking through our own code and have not turned up any
problem.  There is a lot of information out there to suggest that the
"white page of death" is a bug in Liferay, fixed in the newest version.
 We're working on the upgrade in our development environment, but it's
slow going.  It will take time to work out the procedure, validate it in
staging, and then deploy to production.

Because the upgrade is a slow process and we aren't even sure it will
help, the idea of working around the problem with haproxy came up.  It
sounds like it would be difficult (or impossible) to detect when a "try
it again" action would be safe to do.

Thanks,
Shawn


Reply via email to