On Sun, Oct 11, 2015 at 5:29 AM, Shawn Heisey <[email protected]> wrote: > 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.
Usually, all the app servers serves the same code, so if app on serverA is buggy, then app on serverB must end up with the same result. This type of replay may make sense in a A/B testing mode, but slightly revisited. IE use farm A until one fail occurs, then replay to farm B where we have a more verbose (hence much slower) version of the app or a "fixed" version under testing, etc... In such case, I would agree it may make sense. Baptiste

