On 28/09/2013 11:57, Mladen Turk wrote:
> On 09/28/2013 12:25 PM, Rainer Jung wrote:
>>
>>> I can't seem to reproduce the problem using an APR connector on Linux:
>>> reports seems to indicate that trivially accessing Tomcat via an HTTP
>>> APR connector will cause a crash, and I was able to run the following
>>> command without bringing down my instance:
>>>
>>> $ ab -n 10000 -c 50 http://localhost:28215/my-webapp/index.html
>>
>>
>> Still the whole poll stuff is platform dependent, so it might be you
>> will not be able to reproduce the Windows crash even when the test
>> scenario is exactly the same as there.
>>
> 
> Almost every APR crash error is related to reusing closed
> object/descriptor/pointer.
> Eg, crashing inside poll can be caused by closing the socket that is
> inside poller.
> The fact that it doesn't crash on linux might be just because of "close"
> order.
> Even on the same OS it doesn't have to crash all the time.
> 
> Anyhow, I'll try to check the 8-RC3 with the latest native on windows.
> Seems there are some conceptual problem used inside TC8 probably with
> async sockets and double close.

I suspect multiple factors:
- the refactoring to a single poller thread may have introduced some
additional issues we haven't tracked down yet
- allowing two threads (one read, one write) to work with the same
socket introduces lots of opportunities to close a socket in one thread
while it is still in use in another

I've been mulling over refactoring the connector code so all actions on
the socket go via the socket wrapper so it is easier to track true
socket state in one place. Now might be the time to implement that change.

Mark


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to