I guess I get what you mean. Do you know if the same kind of explanation
applies to these ?

Apr 20, 2015 12:11:05 AM org.apache.coyote.AbstractProcessor setErrorState
INFO: An error occurred in processing while on a non-container thread. The
connection will be closed immediately
java.nio.channels.AsynchronousCloseException
        at
java.nio.channels.spi.AbstractInterruptibleChannel.end(AbstractInterruptibleChannel.java:205)
        at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:496)
        at org.apache.tomcat.util.net.NioChannel.write(NioChannel.java:128)
        at
org.apache.tomcat.util.net.NioBlockingSelector.write(NioBlockingSelector.java:101)
        at
org.apache.tomcat.util.net.NioSelectorPool.write(NioSelectorPool.java:174)
        at
org.apache.coyote.http11.InternalNioOutputBuffer.writeToSocket(InternalNioOutputBuffer.java:163)
        at
org.apache.coyote.http11.InternalNioOutputBuffer.flushBuffer(InternalNioOutputBuffer.java:242)
        at
org.apache.coyote.http11.InternalNioOutputBuffer.endRequest(InternalNioOutputBuffer.java:121)
        at
org.apache.coyote.http11.AbstractHttp11Processor.action(AbstractHttp11Processor.java:762)
        at org.apache.coyote.Response.action(Response.java:174)
        at org.apache.coyote.Response.finish(Response.java:274)
        at
org.apache.catalina.connector.OutputBuffer.close(OutputBuffer.java:319)
        at
org.apache.catalina.connector.CoyoteWriter.close(CoyoteWriter.java:112)
        at
networkComm.commands.HttpCommand.sendResponse(HttpCommand.java:224)
        at
com.stickyadstv.adex.AuctioneerResponseWriter.respondToClient(AuctioneerResponseWriter.java:322)
        at
com.stickyadstv.adex.BidSerializationListener.checkSerializationIsComplete(BidSerializationListener.java:70)
        at
com.stickyadstv.adex.BidSerializationListener.completed(BidSerializationListener.java:53)
        at
com.stickyadstv.adex.bidder.marketplace.MarketPlaceBidSerializationWriter.respondToClient(MarketPlaceBidSerializationWriter.java:92)
        at
com.stickyadstv.adex.BidSerializationListener.checkSerializationIsComplete(BidSerializationListener.java:70)
        at
com.stickyadstv.adex.BidSerializationListener.completed(BidSerializationListener.java:53)
        at
com.stickyadstv.adex.BidSerializationListener.completed(BidSerializationListener.java:24)
        at
org.apache.http.concurrent.BasicFuture.completed(BasicFuture.java:115)
        at
com.stickyadstv.adex.bidder.internal.InternalBid.serializeAsVAST(InternalBid.java:56)
        at
com.stickyadstv.adex.bidder.marketplace.MarketPlaceBid.serializeAsVAST(MarketPlaceBid.java:151)
        at
com.stickyadstv.adex.AuctioneerResponseWriter.completed(AuctioneerResponseWriter.java:120)
        at com.stickyadstv.adex.Auctioneer.bangTheGavel(Auctioneer.java:521)
        at com.stickyadstv.adex.Auctioneer.close(Auctioneer.java:236)
        at
com.stickyadstv.adex.Auctioneer.checkCompletion(Auctioneer.java:195)
        at
com.stickyadstv.adex.Auctioneer.registerBuyerPlatformResponses(Auctioneer.java:178)
        at
com.stickyadstv.adex.bidder.openrtb.OpenRTBBuyerRequest.flagAllAsNotParticipating(OpenRTBBuyerRequest.java:428)
        at
com.stickyadstv.adex.bidder.openrtb.OpenRTBBuyerRequest.setBidResponse(OpenRTBBuyerRequest.java:139)
        at
com.stickyadstv.adex.bidder.openrtb.OpenRTBBidRequestAsyncListener.completed(OpenRTBBidRequestAsyncListener.java:27)
        at
com.stickyadstv.adex.bidder.openrtb.OpenRTBBidRequestAsyncListener.completed(OpenRTBBidRequestAsyncListener.java:12)
        at
org.apache.http.concurrent.BasicFuture.completed(BasicFuture.java:115)
        at
org.apache.http.impl.nio.client.DefaultClientExchangeHandlerImpl.responseCompleted(DefaultClientExchangeHandlerImpl.java:173)
        at
org.apache.http.nio.protocol.HttpAsyncRequestExecutor.processResponse(HttpAsyncRequestExecutor.java:355)
        at
org.apache.http.nio.protocol.HttpAsyncRequestExecutor.responseReceived(HttpAsyncRequestExecutor.java:230)
        at
org.apache.http.impl.nio.client.LoggingAsyncRequestExecutor.responseReceived(LoggingAsyncRequestExecutor.java:112)
        at
org.apache.http.impl.nio.DefaultNHttpClientConnection.consumeInput(DefaultNHttpClientConnection.java:254)
        at
org.apache.http.impl.nio.client.InternalIODispatch.onInputReady(InternalIODispatch.java:73)
        at
org.apache.http.impl.nio.client.InternalIODispatch.onInputReady(InternalIODispatch.java:37)
        at
org.apache.http.impl.nio.reactor.AbstractIODispatch.inputReady(AbstractIODispatch.java:113)
        at
org.apache.http.impl.nio.reactor.BaseIOReactor.readable(BaseIOReactor.java:159)
        at
org.apache.http.impl.nio.reactor.AbstractIOReactor.processEvent(AbstractIOReactor.java:338)
        at
org.apache.http.impl.nio.reactor.AbstractIOReactor.processEvents(AbstractIOReactor.java:316)
        at
org.apache.http.impl.nio.reactor.AbstractIOReactor.execute(AbstractIOReactor.java:277)
        at
org.apache.http.impl.nio.reactor.BaseIOReactor.execute(BaseIOReactor.java:105)
        at
org.apache.http.impl.nio.reactor.AbstractMultiworkerIOReactor$Worker.run(AbstractMultiworkerIOReactor.java:584)
        at java.lang.Thread.run(Thread.java:745)

Also I'm glad to get a lot of feed back that help confirming my opinions or
give me new path to follow. Unfortunetly so far nothing seems to explain
why the peaks occur a lot in the last release of tomcat but only
occassionally in the previous one we used.

Thomas

2015-04-21 16:56 GMT+02:00 André Warnier <a...@ice-sa.com>:

> Thomas Boniface wrote:
>
>> The file descriptor peak show up in our monitoring application. We have
>> some charts showing the number of file descriptors owned by the tomcat
>> process (ls /proc/$(pgrep -u tomcat7)/fd/ | wc -l).
>>
>> The calatalina.out log shows errors, the most frequent being a
>> java.io.IOException: Broken pipe.
>>
>>  [..]
>
> A "broken pipe", from the server perspective while sending a response to
> the client, is a rather usual thing.  It usually means that the (human)
> client got tired of waiting for a response, and clicked somewhere else in
> the browser (maybe a "cancel" button; maybe he closed the window; etc..).
> The browser would then immediately close the connection with the server,
> and when the server eventually tries to write anything else to that
> connection, the "broken pipe" exception would be the result.
> With the numbers you quoted previously regarding the number of
> simultaneous client sessions, it doesn't look extraordinary that this would
> happen regularly.
> Maybe the thing to investigate here is whether your server is really so
> slow in answering clients, that a significant portion of them do get tired
> of waiting and get an irresistible urge to click elsewhere..
>
> Apart from the human client, browsers themselves have a built-in timeout
> for waiting for a server response, and will themselves give up after a
> while.  That is on the order of 4-5 minutes after sending the request and
> not receiving anything from the server in response.
> Some applications are such that they can sometimes take more than that to
> be able to send a response.  In such cases, to avoid the browser timeout
> (and connection close), there are "tricks" to use, to send intermediate
> kind of "wait message" to the browser, so that it does not hang up.
>
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
> For additional commands, e-mail: users-h...@tomcat.apache.org
>
>

Reply via email to