tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Konstantin Kolinko <>
Subject Re: 7.0.22+ fd leak with APR/native
Date Fri, 06 Jan 2012 20:36:30 GMT
2012/1/7 Mark Thomas <>:
> On 06/01/2012 20:13, Konstantin Kolinko wrote:
>> 2012/1/6 Mark Thomas <>:
>>>> So it looks that not only the if(), but the whole r944518 change in
>>>> AprEndpoint has to be reverted.
>>> That looks OK to me. I'll do that but run the TCKs as a double check.
>> I am running TestCometProcessor tests with this very change just now. ;)
>> (My plan is to reenable TestCometProcessor - that is revert
>> but with the following change in testCometConnectorStop():
>> - Do not ask reader thread whether END event message was received
>> over the wire, but ask the servlet directly whether the last CometEvent
>> that it processed was EventType.END.  I think it would be more reliable.
>> )
> I'm not keen on that idea since the point of the test was to ensure that
> the END event was received by the client, not that it was processed by
> the Server.

Is there any promise that it should happen? Won't the client see the
same from closed socket?

(Anyway ci failures showed that it does not happen reliably).

>> The NIO connector is OK, but I observe an issue with APR one:
>> In testCometConnectorStop() the test fails:
>> [[[
>> junit.framework.AssertionFailedError: No exception in writing thread
>>       at org.apache.catalina.comet.TestCometProcessor.testCometConnectorStop(
>> ]]]
>> So no SocketException happens in the WriterThread.  At the same time
>> when I ask SimpleCometServlet for the last event that it received it
>> is EventType.END.
>> My thought is that the WriterThread does not see that the socket that
>> it writes to has been closed.
>> (It probably is not of much concern because it happens at shutdown,
>> but it might be that we are still missing something).
> I'd be happy for the lack of a WriterThread exception to trigger a log
> message rather than a test failure.
> Mark
>> I thought that maybe during shutdown the
>> #processSocket(long,SocketStatus) that uses an executor to run the
>> event did not have chance to run,  but because the END event was
>> received by servlet I think that it did run.

Best regards,
Konstantin Kolinko

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message