You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomcat.apache.org by Shapovalenko Daniil <Da...@bercut.com> on 2008/04/29 17:03:45 UTC

FW: Memory leak using SSL Tomcat 6.0.16

Hello there!

 

I'm using Tomcat 6.0.16 with an extremely simple servlet.

 

The code of servlet is here (functions that doesn't mentioned here are
blank):

...

      protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {

            response.getWriter().write("post!!!");

            response.setStatus(200);

      }               

...

 

Tomcat used is clear distrib except servlet in webapps and server.xml
changed. The source of the server.xml is follow (all content of file
doesn't mentioned here remains original):

...

    <Connector port="8443"

        maxHttpHeaderSize="8192"

        connectionTimeout="60000"

        enableLookups="false"

        disableUploadTimeout="true"

 

        maxThreads="900"

        minSpareThreads="350"

        maxSpareThreads="700"

        acceptCount="700"

        

        protocol="HTTP/1.1"

        SSLEnabled="true"

        scheme="https"

        secure="true"

        clientAuth="false"

        sslProtocol="TLS"

        keystoreFile="/opt/.keystore"

        keystorePass="tomcat" />

...

 

I'm using SSL as you see.

 

I'm running a loader which creates some threads (for example 40) that
sends one POST request without parameters per second.

There are no unusual HTTP headers in the request.

I'm getting 300m for this Tomcat.

 

After about three hours of working it throws an OutOfMemoryError.

 

Exploring the dump at that time I'm found a lot of instances of
com.sun.net.ssl.internal.ssl.SSLSessionImpl
<http://192.168.12.164:7000/class/0xebe303c0>  class. But may be this is
not the reason.

 

Thanks for any ideas and help.

--Daniil.


RE: FW: Memory leak using SSL Tomcat 6.0.16

Posted by Shapovalenko Daniil <Da...@bercut.com>.
Exactly the same problem was discussed there
http://forum.java.sun.com/thread.jspa?threadID=5266266&tstart=0

Seems, I have two ways. Recompile the JSSE with some code added to
finalize method, or using tomcat with another ssl provider. 

Does anybody knows how can I do the second case?

>add the flag

>-XX:+HeapDumpOnOutOfMemoryError

>when you get an OOM, it will dump a .hprof file, zip it up, and make it

>available to us (dont attach it to an email :)

>I can help you analyse it

>Filip

>Shapovalenko Daniil wrote:
>> Hello there!
>>
>>  
>>
>> I'm using Tomcat 6.0.16 with an extremely simple servlet.
>>
>>  
>>
>> The code of servlet is here (functions that doesn't mentioned here
are
>> blank):
>>
>> ...
>>
>>       protected void doPost(HttpServletRequest request,
>> HttpServletResponse response) throws ServletException, IOException {
>>
>>             response.getWriter().write("post!!!");
>>
>>             response.setStatus(200);
>>
>>       }               
>>
>> ...
>>
>>  
>>
>> Tomcat used is clear distrib except servlet in webapps and server.xml
>> changed. The source of the server.xml is follow (all content of file
>> doesn't mentioned here remains original):
>>
>> ...
>>
>>     <Connector port="8443"
>>
>>         maxHttpHeaderSize="8192"
>>
>>         connectionTimeout="60000"
>>
>>         enableLookups="false"
>>
>>         disableUploadTimeout="true"
>>
>>  
>>
>>         maxThreads="900"
>>
>>         minSpareThreads="350"
>>
>>         maxSpareThreads="700"
>>
>>         acceptCount="700"
>>
>>         
>>
>>         protocol="HTTP/1.1"
>>
>>         SSLEnabled="true"
>>
>>         scheme="https"
>>
>>         secure="true"
>>
>>         clientAuth="false"
>>
>>         sslProtocol="TLS"
>>
>>         keystoreFile="/opt/.keystore"
>>
>>         keystorePass="tomcat" />
>>
>> ...
>>
>>  
>>
>> I'm using SSL as you see.
>>
>>  
>>
>> I'm running a loader which creates some threads (for example 40) that
>> sends one POST request without parameters per second.
>>
>> There are no unusual HTTP headers in the request.
>>
>> I'm getting 300m for this Tomcat.
>>
>>  
>>
>> After about three hours of working it throws an OutOfMemoryError.
>>
>>  
>>
>> Exploring the dump at that time I'm found a lot of instances of
>> com.sun.net.ssl.internal.ssl.SSLSessionImpl
>> <http://192.168.12.164:7000/class/0xebe303c0>  class. But may be this
is
>> not the reason.
>>
>>  
>>
>> Thanks for any ideas and help.
>>
>> --Daniil.
>>
>>
>>   
>>
------------------------------------------------------------------------
>>
>> No virus found in this incoming message.
>> Checked by AVG. 
>> Version: 7.5.524 / Virus Database: 269.23.6/1402 - Release Date:
4/28/2008 1:29 PM
>>   




---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Re: FW: Memory leak using SSL Tomcat 6.0.16

Posted by Filip Hanik - Dev Lists <de...@hanik.com>.
add the flag

-XX:+HeapDumpOnOutOfMemoryError

when you get an OOM, it will dump a .hprof file, zip it up, and make it 
available to us (dont attach it to an email :)

I can help you analyse it

Filip

Shapovalenko Daniil wrote:
> Hello there!
>
>  
>
> I'm using Tomcat 6.0.16 with an extremely simple servlet.
>
>  
>
> The code of servlet is here (functions that doesn't mentioned here are
> blank):
>
> ...
>
>       protected void doPost(HttpServletRequest request,
> HttpServletResponse response) throws ServletException, IOException {
>
>             response.getWriter().write("post!!!");
>
>             response.setStatus(200);
>
>       }               
>
> ...
>
>  
>
> Tomcat used is clear distrib except servlet in webapps and server.xml
> changed. The source of the server.xml is follow (all content of file
> doesn't mentioned here remains original):
>
> ...
>
>     <Connector port="8443"
>
>         maxHttpHeaderSize="8192"
>
>         connectionTimeout="60000"
>
>         enableLookups="false"
>
>         disableUploadTimeout="true"
>
>  
>
>         maxThreads="900"
>
>         minSpareThreads="350"
>
>         maxSpareThreads="700"
>
>         acceptCount="700"
>
>         
>
>         protocol="HTTP/1.1"
>
>         SSLEnabled="true"
>
>         scheme="https"
>
>         secure="true"
>
>         clientAuth="false"
>
>         sslProtocol="TLS"
>
>         keystoreFile="/opt/.keystore"
>
>         keystorePass="tomcat" />
>
> ...
>
>  
>
> I'm using SSL as you see.
>
>  
>
> I'm running a loader which creates some threads (for example 40) that
> sends one POST request without parameters per second.
>
> There are no unusual HTTP headers in the request.
>
> I'm getting 300m for this Tomcat.
>
>  
>
> After about three hours of working it throws an OutOfMemoryError.
>
>  
>
> Exploring the dump at that time I'm found a lot of instances of
> com.sun.net.ssl.internal.ssl.SSLSessionImpl
> <http://192.168.12.164:7000/class/0xebe303c0>  class. But may be this is
> not the reason.
>
>  
>
> Thanks for any ideas and help.
>
> --Daniil.
>
>
>   
> ------------------------------------------------------------------------
>
> No virus found in this incoming message.
> Checked by AVG. 
> Version: 7.5.524 / Virus Database: 269.23.6/1402 - Release Date: 4/28/2008 1:29 PM
>   


---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org