You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomcat.apache.org by Julien Martin <ba...@gmail.com> on 2013/03/21 21:46:20 UTC

My use of Spring MVC's DeferredResult class causes Tomcat 7.0.35 to crash silently

Hello,

I have the following Spring MVC 3.2 code (it uses the DeferredResult
class<http://static.springsource.org/spring/docs/3.2.2.RELEASE/javadoc-api/org/springframework/web/context/request/async/DeferredResult.html>
):

@RequestMapping(value = "getMessages", method = RequestMethod.GET,
produces = "application/json")
    @ResponseBody
    public DeferredResult<List<Message>> getMessages(@RequestParam
final Long senderId) {
        final Long recipientId = memberService.retrieveCurrentMember().getId();
        final String messageRequestKey = new
StringBuilder().append(senderId).append(":").append(recipientId).toString();
        final DeferredResult<List<Message>> deferredResult = new
DeferredResult<List<Message>>(null, Collections.emptyList());
        messageRequests.put(messageRequestKey, deferredResult);

        deferredResult.onCompletion(new Runnable() {
            @Override
            public void run() {
                messageRequests.remove(messageRequestKey);
            }
        });

        List<Message> unReadMessages =
messageService.findUnreadMessages(senderId, recipientId);
        if (!unReadMessages.isEmpty()) {
            deferredResult.setResult(unReadMessages);
        }
        return deferredResult;
    }

This method is polled continuously by an ajax call and it
systematically *causes
Tomcat to crash upon the 9th method invocation*. Note that Tomcat crashes
without any error message.

*I would be very grateful if someone could help me determine the reason why
this code exhibits this behavior, perhaps by giving me tips on how to debug
the app/tomcat.*

Regards,

Julien.

Re: My use of Spring MVC's DeferredResult class causes Tomcat 7.0.35 to crash silently

Posted by Pid <pi...@pidster.com>.
On 22/03/2013 15:08, Julien Martin wrote:
> You're right. I should set the result in another method/thread i.e. a post
> method...
> Is this related to the memory leaks?

It might be worth simplifying the method while you debug the connection
leak issue.


p


> J.
> 
> 2013/3/22 Pid <pi...@pidster.com>
> 
>> On 22/03/2013 14:56, Julien Martin wrote:
>>> Hi,
>>> You mean if I set maxActive to 1?
>>
>>
>>> J.
>>>
>>> 2013/3/22 Pid <pi...@pidster.com>
>>>
>>>> On 22/03/2013 14:42, Julien Martin wrote:
>>>>> @Chuck: thanks for the link. I have read it. Umm... the thing is I
>> don't
>>>>> close my connection manually. I use Spring. Here is my configuration:
>>>>>
>>>>> <bean class="org.apache.commons.dbcp.BasicDataSource"
>>>>> destroy-method="close" id="dataSource">
>>>>> <property name="driverClassName" value="${database.driverClassName}" />
>>>>> <property name="url" value="${database.url}" />
>>>>> <property name="username" value="${database.username}" />
>>>>> <property name="password" value="${database.password}" />
>>>>> <property name="testOnBorrow" value="true" />
>>>>> <property name="testOnReturn" value="true" />
>>>>> <property name="testWhileIdle" value="true" />
>>>>> <property name="timeBetweenEvictionRunsMillis" value="1800000" />
>>>>> <property name="numTestsPerEvictionRun" value="3" />
>>>>> <property name="minEvictableIdleTimeMillis" value="1800000" />
>>>>> <property name="validationQuery" value="SELECT 1" />
>>>>> <property name="maxActive" value="2"/>
>>>>> <property name="logAbandoned" value="true"/>
>>>>> <property name="removeAbandoned" value="true"/>
>>>>> </bean>
>>>>
>>>> What happens if you set it to 1?
>>
>>
>> Yes, I meant maxActive, sorry.
>>
>> Why use a DeferredResult here if you're just setting the result
>> synchronously and inline anyway?  You may as well just remove the key
>> from the map manually.  Am I missing something?
>>
>>
>> p
>>
>>>>> Any idea what I am getting wrong?
>>>>>
>>>>> @Daniel, I have configured jmx with Spring and I get a numIdle of 0 and
>>>>> numActive of 2 after the problem occurs. This confirms what you and
>> Chuck
>>>>> say: my app leaks db connections.
>>>>>
>>>>> However, I am still not sure why my app leaks the connections. I use
>> the
>>>>> default Spring configuration...
>>>>>
>>>>> Sorry: it is slightly offtopic now. I guess this is no longer a Tomcat
>>>>> question so I should post it elsewhere.
>>>>>
>>>>> Julien.
>>>>>
>>>>>
>>>>> 2013/3/22 Caldarale, Charles R <Ch...@unisys.com>
>>>>>
>>>>>>> From: Julien Martin [mailto:balteo@gmail.com]
>>>>>>> Subject: Re: My use of Spring MVC's DeferredResult class causes
>> Tomcat
>>>>>> 7.0.35 to crash silently
>>>>>>
>>>>>>> "http-bio-8080-exec-10" daemon prio=10 tid=0x00007f68840a2800
>>>> nid=0x41b5
>>>>>> in
>>>>>>> Object.wait() [0x00007f690cc57000]
>>>>>>>    java.lang.Thread.State: WAITING (on object monitor)
>>>>>>> at java.lang.Object.wait(Native Method)
>>>>>>> - waiting on <0x00000007e8fc4650> (a
>>>>>>> org.apache.commons.pool.impl.GenericObjectPool$Latch)
>>>>>>> at java.lang.Object.wait(Object.java:503)
>>>>>>> at
>>>>>>
>>>>
>> org.apache.commons.pool.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:1115)
>>>>>>> - locked <0x00000007e8fc4650> (a
>>>>>> org.apache.commons.pool.impl.GenericObjectPool$Latch)
>>>>>>> at
>>>>>>
>>>>
>> org.apache.commons.dbcp.PoolingDataSource.getConnection(PoolingDataSource.java:106)
>>>>>>
>>>>>> Looks like you're leaking database connections, likely by not
>> returning
>>>>>> them to the pool.  Read Chris' article on how to do it right:
>>>>>>
>>>>>>
>>>>>>
>>>>
>> http://blog.christopherschultz.net/index.php/2009/03/16/properly-handling-pooled-jdbc-connections/
>>>>>>
>>>>>>  - Chuck
>>>>>>
>>>>>>
>>>>>> THIS COMMUNICATION MAY CONTAIN CONFIDENTIAL AND/OR OTHERWISE
>> PROPRIETARY
>>>>>> MATERIAL and is thus for use only by the intended recipient. If you
>>>>>> received this in error, please contact the sender and delete the
>> e-mail
>>>> and
>>>>>> its attachments from all computers.
>>>>>>
>>>>>>
>>>>>> ---------------------------------------------------------------------
>>>>>> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
>>>>>> For additional commands, e-mail: users-help@tomcat.apache.org
>>>>>>
>>>>>>
>>>>>
>>>>
>>>>
>>>> --
>>>>
>>>> [key:62590808]
>>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
>>>> For additional commands, e-mail: users-help@tomcat.apache.org
>>>>
>>>>
>>>
>>
>>
>> --
>>
>> [key:62590808]
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
>> For additional commands, e-mail: users-help@tomcat.apache.org
>>
>>
> 


-- 

[key:62590808]

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


Re: My use of Spring MVC's DeferredResult class causes Tomcat 7.0.35 to crash silently

Posted by Julien Martin <ba...@gmail.com>.
You're right. I should set the result in another method/thread i.e. a post
method...
Is this related to the memory leaks?
J.

2013/3/22 Pid <pi...@pidster.com>

> On 22/03/2013 14:56, Julien Martin wrote:
> > Hi,
> > You mean if I set maxActive to 1?
>
>
> > J.
> >
> > 2013/3/22 Pid <pi...@pidster.com>
> >
> >> On 22/03/2013 14:42, Julien Martin wrote:
> >>> @Chuck: thanks for the link. I have read it. Umm... the thing is I
> don't
> >>> close my connection manually. I use Spring. Here is my configuration:
> >>>
> >>> <bean class="org.apache.commons.dbcp.BasicDataSource"
> >>> destroy-method="close" id="dataSource">
> >>> <property name="driverClassName" value="${database.driverClassName}" />
> >>> <property name="url" value="${database.url}" />
> >>> <property name="username" value="${database.username}" />
> >>> <property name="password" value="${database.password}" />
> >>> <property name="testOnBorrow" value="true" />
> >>> <property name="testOnReturn" value="true" />
> >>> <property name="testWhileIdle" value="true" />
> >>> <property name="timeBetweenEvictionRunsMillis" value="1800000" />
> >>> <property name="numTestsPerEvictionRun" value="3" />
> >>> <property name="minEvictableIdleTimeMillis" value="1800000" />
> >>> <property name="validationQuery" value="SELECT 1" />
> >>> <property name="maxActive" value="2"/>
> >>> <property name="logAbandoned" value="true"/>
> >>> <property name="removeAbandoned" value="true"/>
> >>> </bean>
> >>
> >> What happens if you set it to 1?
>
>
> Yes, I meant maxActive, sorry.
>
> Why use a DeferredResult here if you're just setting the result
> synchronously and inline anyway?  You may as well just remove the key
> from the map manually.  Am I missing something?
>
>
> p
>
> >>> Any idea what I am getting wrong?
> >>>
> >>> @Daniel, I have configured jmx with Spring and I get a numIdle of 0 and
> >>> numActive of 2 after the problem occurs. This confirms what you and
> Chuck
> >>> say: my app leaks db connections.
> >>>
> >>> However, I am still not sure why my app leaks the connections. I use
> the
> >>> default Spring configuration...
> >>>
> >>> Sorry: it is slightly offtopic now. I guess this is no longer a Tomcat
> >>> question so I should post it elsewhere.
> >>>
> >>> Julien.
> >>>
> >>>
> >>> 2013/3/22 Caldarale, Charles R <Ch...@unisys.com>
> >>>
> >>>>> From: Julien Martin [mailto:balteo@gmail.com]
> >>>>> Subject: Re: My use of Spring MVC's DeferredResult class causes
> Tomcat
> >>>> 7.0.35 to crash silently
> >>>>
> >>>>> "http-bio-8080-exec-10" daemon prio=10 tid=0x00007f68840a2800
> >> nid=0x41b5
> >>>> in
> >>>>> Object.wait() [0x00007f690cc57000]
> >>>>>    java.lang.Thread.State: WAITING (on object monitor)
> >>>>> at java.lang.Object.wait(Native Method)
> >>>>> - waiting on <0x00000007e8fc4650> (a
> >>>>> org.apache.commons.pool.impl.GenericObjectPool$Latch)
> >>>>> at java.lang.Object.wait(Object.java:503)
> >>>>> at
> >>>>
> >>
> org.apache.commons.pool.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:1115)
> >>>>> - locked <0x00000007e8fc4650> (a
> >>>> org.apache.commons.pool.impl.GenericObjectPool$Latch)
> >>>>> at
> >>>>
> >>
> org.apache.commons.dbcp.PoolingDataSource.getConnection(PoolingDataSource.java:106)
> >>>>
> >>>> Looks like you're leaking database connections, likely by not
> returning
> >>>> them to the pool.  Read Chris' article on how to do it right:
> >>>>
> >>>>
> >>>>
> >>
> http://blog.christopherschultz.net/index.php/2009/03/16/properly-handling-pooled-jdbc-connections/
> >>>>
> >>>>  - Chuck
> >>>>
> >>>>
> >>>> THIS COMMUNICATION MAY CONTAIN CONFIDENTIAL AND/OR OTHERWISE
> PROPRIETARY
> >>>> MATERIAL and is thus for use only by the intended recipient. If you
> >>>> received this in error, please contact the sender and delete the
> e-mail
> >> and
> >>>> its attachments from all computers.
> >>>>
> >>>>
> >>>> ---------------------------------------------------------------------
> >>>> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> >>>> For additional commands, e-mail: users-help@tomcat.apache.org
> >>>>
> >>>>
> >>>
> >>
> >>
> >> --
> >>
> >> [key:62590808]
> >>
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> >> For additional commands, e-mail: users-help@tomcat.apache.org
> >>
> >>
> >
>
>
> --
>
> [key:62590808]
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: users-help@tomcat.apache.org
>
>

Re: My use of Spring MVC's DeferredResult class causes Tomcat 7.0.35 to crash silently

Posted by Pid <pi...@pidster.com>.
On 22/03/2013 14:56, Julien Martin wrote:
> Hi,
> You mean if I set maxActive to 1?


> J.
> 
> 2013/3/22 Pid <pi...@pidster.com>
> 
>> On 22/03/2013 14:42, Julien Martin wrote:
>>> @Chuck: thanks for the link. I have read it. Umm... the thing is I don't
>>> close my connection manually. I use Spring. Here is my configuration:
>>>
>>> <bean class="org.apache.commons.dbcp.BasicDataSource"
>>> destroy-method="close" id="dataSource">
>>> <property name="driverClassName" value="${database.driverClassName}" />
>>> <property name="url" value="${database.url}" />
>>> <property name="username" value="${database.username}" />
>>> <property name="password" value="${database.password}" />
>>> <property name="testOnBorrow" value="true" />
>>> <property name="testOnReturn" value="true" />
>>> <property name="testWhileIdle" value="true" />
>>> <property name="timeBetweenEvictionRunsMillis" value="1800000" />
>>> <property name="numTestsPerEvictionRun" value="3" />
>>> <property name="minEvictableIdleTimeMillis" value="1800000" />
>>> <property name="validationQuery" value="SELECT 1" />
>>> <property name="maxActive" value="2"/>
>>> <property name="logAbandoned" value="true"/>
>>> <property name="removeAbandoned" value="true"/>
>>> </bean>
>>
>> What happens if you set it to 1?


Yes, I meant maxActive, sorry.

Why use a DeferredResult here if you're just setting the result
synchronously and inline anyway?  You may as well just remove the key
from the map manually.  Am I missing something?


p

>>> Any idea what I am getting wrong?
>>>
>>> @Daniel, I have configured jmx with Spring and I get a numIdle of 0 and
>>> numActive of 2 after the problem occurs. This confirms what you and Chuck
>>> say: my app leaks db connections.
>>>
>>> However, I am still not sure why my app leaks the connections. I use the
>>> default Spring configuration...
>>>
>>> Sorry: it is slightly offtopic now. I guess this is no longer a Tomcat
>>> question so I should post it elsewhere.
>>>
>>> Julien.
>>>
>>>
>>> 2013/3/22 Caldarale, Charles R <Ch...@unisys.com>
>>>
>>>>> From: Julien Martin [mailto:balteo@gmail.com]
>>>>> Subject: Re: My use of Spring MVC's DeferredResult class causes Tomcat
>>>> 7.0.35 to crash silently
>>>>
>>>>> "http-bio-8080-exec-10" daemon prio=10 tid=0x00007f68840a2800
>> nid=0x41b5
>>>> in
>>>>> Object.wait() [0x00007f690cc57000]
>>>>>    java.lang.Thread.State: WAITING (on object monitor)
>>>>> at java.lang.Object.wait(Native Method)
>>>>> - waiting on <0x00000007e8fc4650> (a
>>>>> org.apache.commons.pool.impl.GenericObjectPool$Latch)
>>>>> at java.lang.Object.wait(Object.java:503)
>>>>> at
>>>>
>> org.apache.commons.pool.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:1115)
>>>>> - locked <0x00000007e8fc4650> (a
>>>> org.apache.commons.pool.impl.GenericObjectPool$Latch)
>>>>> at
>>>>
>> org.apache.commons.dbcp.PoolingDataSource.getConnection(PoolingDataSource.java:106)
>>>>
>>>> Looks like you're leaking database connections, likely by not returning
>>>> them to the pool.  Read Chris' article on how to do it right:
>>>>
>>>>
>>>>
>> http://blog.christopherschultz.net/index.php/2009/03/16/properly-handling-pooled-jdbc-connections/
>>>>
>>>>  - Chuck
>>>>
>>>>
>>>> THIS COMMUNICATION MAY CONTAIN CONFIDENTIAL AND/OR OTHERWISE PROPRIETARY
>>>> MATERIAL and is thus for use only by the intended recipient. If you
>>>> received this in error, please contact the sender and delete the e-mail
>> and
>>>> its attachments from all computers.
>>>>
>>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
>>>> For additional commands, e-mail: users-help@tomcat.apache.org
>>>>
>>>>
>>>
>>
>>
>> --
>>
>> [key:62590808]
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
>> For additional commands, e-mail: users-help@tomcat.apache.org
>>
>>
> 


-- 

[key:62590808]

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


Re: My use of Spring MVC's DeferredResult class causes Tomcat 7.0.35 to crash silently

Posted by Julien Martin <ba...@gmail.com>.
Hi,
You mean if I set maxActive to 1?
J.

2013/3/22 Pid <pi...@pidster.com>

> On 22/03/2013 14:42, Julien Martin wrote:
> > @Chuck: thanks for the link. I have read it. Umm... the thing is I don't
> > close my connection manually. I use Spring. Here is my configuration:
> >
> > <bean class="org.apache.commons.dbcp.BasicDataSource"
> > destroy-method="close" id="dataSource">
> > <property name="driverClassName" value="${database.driverClassName}" />
> > <property name="url" value="${database.url}" />
> > <property name="username" value="${database.username}" />
> > <property name="password" value="${database.password}" />
> > <property name="testOnBorrow" value="true" />
> > <property name="testOnReturn" value="true" />
> > <property name="testWhileIdle" value="true" />
> > <property name="timeBetweenEvictionRunsMillis" value="1800000" />
> > <property name="numTestsPerEvictionRun" value="3" />
> > <property name="minEvictableIdleTimeMillis" value="1800000" />
> > <property name="validationQuery" value="SELECT 1" />
> > <property name="maxActive" value="2"/>
> > <property name="logAbandoned" value="true"/>
> > <property name="removeAbandoned" value="true"/>
> > </bean>
>
> What happens if you set it to 1?
>
>
> p
>
>
> > Any idea what I am getting wrong?
> >
> > @Daniel, I have configured jmx with Spring and I get a numIdle of 0 and
> > numActive of 2 after the problem occurs. This confirms what you and Chuck
> > say: my app leaks db connections.
> >
> > However, I am still not sure why my app leaks the connections. I use the
> > default Spring configuration...
> >
> > Sorry: it is slightly offtopic now. I guess this is no longer a Tomcat
> > question so I should post it elsewhere.
> >
> > Julien.
> >
> >
> > 2013/3/22 Caldarale, Charles R <Ch...@unisys.com>
> >
> >>> From: Julien Martin [mailto:balteo@gmail.com]
> >>> Subject: Re: My use of Spring MVC's DeferredResult class causes Tomcat
> >> 7.0.35 to crash silently
> >>
> >>> "http-bio-8080-exec-10" daemon prio=10 tid=0x00007f68840a2800
> nid=0x41b5
> >> in
> >>> Object.wait() [0x00007f690cc57000]
> >>>    java.lang.Thread.State: WAITING (on object monitor)
> >>> at java.lang.Object.wait(Native Method)
> >>> - waiting on <0x00000007e8fc4650> (a
> >>> org.apache.commons.pool.impl.GenericObjectPool$Latch)
> >>> at java.lang.Object.wait(Object.java:503)
> >>> at
> >>
> org.apache.commons.pool.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:1115)
> >>> - locked <0x00000007e8fc4650> (a
> >> org.apache.commons.pool.impl.GenericObjectPool$Latch)
> >>> at
> >>
> org.apache.commons.dbcp.PoolingDataSource.getConnection(PoolingDataSource.java:106)
> >>
> >> Looks like you're leaking database connections, likely by not returning
> >> them to the pool.  Read Chris' article on how to do it right:
> >>
> >>
> >>
> http://blog.christopherschultz.net/index.php/2009/03/16/properly-handling-pooled-jdbc-connections/
> >>
> >>  - Chuck
> >>
> >>
> >> THIS COMMUNICATION MAY CONTAIN CONFIDENTIAL AND/OR OTHERWISE PROPRIETARY
> >> MATERIAL and is thus for use only by the intended recipient. If you
> >> received this in error, please contact the sender and delete the e-mail
> and
> >> its attachments from all computers.
> >>
> >>
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> >> For additional commands, e-mail: users-help@tomcat.apache.org
> >>
> >>
> >
>
>
> --
>
> [key:62590808]
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: users-help@tomcat.apache.org
>
>

Re: My use of Spring MVC's DeferredResult class causes Tomcat 7.0.35 to crash silently

Posted by Pid <pi...@pidster.com>.
On 22/03/2013 14:42, Julien Martin wrote:
> @Chuck: thanks for the link. I have read it. Umm... the thing is I don't
> close my connection manually. I use Spring. Here is my configuration:
> 
> <bean class="org.apache.commons.dbcp.BasicDataSource"
> destroy-method="close" id="dataSource">
> <property name="driverClassName" value="${database.driverClassName}" />
> <property name="url" value="${database.url}" />
> <property name="username" value="${database.username}" />
> <property name="password" value="${database.password}" />
> <property name="testOnBorrow" value="true" />
> <property name="testOnReturn" value="true" />
> <property name="testWhileIdle" value="true" />
> <property name="timeBetweenEvictionRunsMillis" value="1800000" />
> <property name="numTestsPerEvictionRun" value="3" />
> <property name="minEvictableIdleTimeMillis" value="1800000" />
> <property name="validationQuery" value="SELECT 1" />
> <property name="maxActive" value="2"/>
> <property name="logAbandoned" value="true"/>
> <property name="removeAbandoned" value="true"/>
> </bean>

What happens if you set it to 1?


p


> Any idea what I am getting wrong?
> 
> @Daniel, I have configured jmx with Spring and I get a numIdle of 0 and
> numActive of 2 after the problem occurs. This confirms what you and Chuck
> say: my app leaks db connections.
> 
> However, I am still not sure why my app leaks the connections. I use the
> default Spring configuration...
> 
> Sorry: it is slightly offtopic now. I guess this is no longer a Tomcat
> question so I should post it elsewhere.
> 
> Julien.
> 
> 
> 2013/3/22 Caldarale, Charles R <Ch...@unisys.com>
> 
>>> From: Julien Martin [mailto:balteo@gmail.com]
>>> Subject: Re: My use of Spring MVC's DeferredResult class causes Tomcat
>> 7.0.35 to crash silently
>>
>>> "http-bio-8080-exec-10" daemon prio=10 tid=0x00007f68840a2800 nid=0x41b5
>> in
>>> Object.wait() [0x00007f690cc57000]
>>>    java.lang.Thread.State: WAITING (on object monitor)
>>> at java.lang.Object.wait(Native Method)
>>> - waiting on <0x00000007e8fc4650> (a
>>> org.apache.commons.pool.impl.GenericObjectPool$Latch)
>>> at java.lang.Object.wait(Object.java:503)
>>> at
>> org.apache.commons.pool.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:1115)
>>> - locked <0x00000007e8fc4650> (a
>> org.apache.commons.pool.impl.GenericObjectPool$Latch)
>>> at
>> org.apache.commons.dbcp.PoolingDataSource.getConnection(PoolingDataSource.java:106)
>>
>> Looks like you're leaking database connections, likely by not returning
>> them to the pool.  Read Chris' article on how to do it right:
>>
>>
>> http://blog.christopherschultz.net/index.php/2009/03/16/properly-handling-pooled-jdbc-connections/
>>
>>  - Chuck
>>
>>
>> THIS COMMUNICATION MAY CONTAIN CONFIDENTIAL AND/OR OTHERWISE PROPRIETARY
>> MATERIAL and is thus for use only by the intended recipient. If you
>> received this in error, please contact the sender and delete the e-mail and
>> its attachments from all computers.
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
>> For additional commands, e-mail: users-help@tomcat.apache.org
>>
>>
> 


-- 

[key:62590808]

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


Re: My use of Spring MVC's DeferredResult class causes Tomcat 7.0.35 to crash silently

Posted by Daniel Mikusa <dm...@vmware.com>.
On Mar 22, 2013, at 10:42 AM, Julien Martin wrote:

> @Chuck: thanks for the link. I have read it. Umm... the thing is I don't
> close my connection manually. I use Spring. Here is my configuration:
> 
> <bean class="org.apache.commons.dbcp.BasicDataSource"
> destroy-method="close" id="dataSource">
> <property name="driverClassName" value="${database.driverClassName}" />
> <property name="url" value="${database.url}" />
> <property name="username" value="${database.username}" />
> <property name="password" value="${database.password}" />
> <property name="testOnBorrow" value="true" />
> <property name="testOnReturn" value="true" />
> <property name="testWhileIdle" value="true" />
> <property name="timeBetweenEvictionRunsMillis" value="1800000" />
> <property name="numTestsPerEvictionRun" value="3" />
> <property name="minEvictableIdleTimeMillis" value="1800000" />
> <property name="validationQuery" value="SELECT 1" />
> <property name="maxActive" value="2"/>
> <property name="logAbandoned" value="true"/>
> <property name="removeAbandoned" value="true"/>

You might try adding in "removeAbandonedTimeout" and setting it really low.  It defaults to 300 seconds.

Dan


> </bean>
> 
> Any idea what I am getting wrong?
> 
> @Daniel, I have configured jmx with Spring and I get a numIdle of 0 and
> numActive of 2 after the problem occurs. This confirms what you and Chuck
> say: my app leaks db connections.
> 
> However, I am still not sure why my app leaks the connections. I use the
> default Spring configuration...
> 
> Sorry: it is slightly offtopic now. I guess this is no longer a Tomcat
> question so I should post it elsewhere.
> 
> Julien.
> 
> 
> 2013/3/22 Caldarale, Charles R <Ch...@unisys.com>
> 
>>> From: Julien Martin [mailto:balteo@gmail.com]
>>> Subject: Re: My use of Spring MVC's DeferredResult class causes Tomcat
>> 7.0.35 to crash silently
>> 
>>> "http-bio-8080-exec-10" daemon prio=10 tid=0x00007f68840a2800 nid=0x41b5
>> in
>>> Object.wait() [0x00007f690cc57000]
>>>   java.lang.Thread.State: WAITING (on object monitor)
>>> at java.lang.Object.wait(Native Method)
>>> - waiting on <0x00000007e8fc4650> (a
>>> org.apache.commons.pool.impl.GenericObjectPool$Latch)
>>> at java.lang.Object.wait(Object.java:503)
>>> at
>> org.apache.commons.pool.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:1115)
>>> - locked <0x00000007e8fc4650> (a
>> org.apache.commons.pool.impl.GenericObjectPool$Latch)
>>> at
>> org.apache.commons.dbcp.PoolingDataSource.getConnection(PoolingDataSource.java:106)
>> 
>> Looks like you're leaking database connections, likely by not returning
>> them to the pool.  Read Chris' article on how to do it right:
>> 
>> 
>> http://blog.christopherschultz.net/index.php/2009/03/16/properly-handling-pooled-jdbc-connections/
>> 
>> - Chuck
>> 
>> 
>> THIS COMMUNICATION MAY CONTAIN CONFIDENTIAL AND/OR OTHERWISE PROPRIETARY
>> MATERIAL and is thus for use only by the intended recipient. If you
>> received this in error, please contact the sender and delete the e-mail and
>> its attachments from all computers.
>> 
>> 
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
>> For additional commands, e-mail: users-help@tomcat.apache.org
>> 
>> 


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


Re: My use of Spring MVC's DeferredResult class causes Tomcat 7.0.35 to crash silently

Posted by Julien Martin <ba...@gmail.com>.
@Chuck: thanks for the link. I have read it. Umm... the thing is I don't
close my connection manually. I use Spring. Here is my configuration:

<bean class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close" id="dataSource">
<property name="driverClassName" value="${database.driverClassName}" />
<property name="url" value="${database.url}" />
<property name="username" value="${database.username}" />
<property name="password" value="${database.password}" />
<property name="testOnBorrow" value="true" />
<property name="testOnReturn" value="true" />
<property name="testWhileIdle" value="true" />
<property name="timeBetweenEvictionRunsMillis" value="1800000" />
<property name="numTestsPerEvictionRun" value="3" />
<property name="minEvictableIdleTimeMillis" value="1800000" />
<property name="validationQuery" value="SELECT 1" />
<property name="maxActive" value="2"/>
<property name="logAbandoned" value="true"/>
<property name="removeAbandoned" value="true"/>
</bean>

Any idea what I am getting wrong?

@Daniel, I have configured jmx with Spring and I get a numIdle of 0 and
numActive of 2 after the problem occurs. This confirms what you and Chuck
say: my app leaks db connections.

However, I am still not sure why my app leaks the connections. I use the
default Spring configuration...

Sorry: it is slightly offtopic now. I guess this is no longer a Tomcat
question so I should post it elsewhere.

Julien.


2013/3/22 Caldarale, Charles R <Ch...@unisys.com>

> > From: Julien Martin [mailto:balteo@gmail.com]
> > Subject: Re: My use of Spring MVC's DeferredResult class causes Tomcat
> 7.0.35 to crash silently
>
> > "http-bio-8080-exec-10" daemon prio=10 tid=0x00007f68840a2800 nid=0x41b5
> in
> > Object.wait() [0x00007f690cc57000]
> >    java.lang.Thread.State: WAITING (on object monitor)
> > at java.lang.Object.wait(Native Method)
> > - waiting on <0x00000007e8fc4650> (a
> > org.apache.commons.pool.impl.GenericObjectPool$Latch)
> > at java.lang.Object.wait(Object.java:503)
> > at
> org.apache.commons.pool.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:1115)
> > - locked <0x00000007e8fc4650> (a
> org.apache.commons.pool.impl.GenericObjectPool$Latch)
> > at
> org.apache.commons.dbcp.PoolingDataSource.getConnection(PoolingDataSource.java:106)
>
> Looks like you're leaking database connections, likely by not returning
> them to the pool.  Read Chris' article on how to do it right:
>
>
> http://blog.christopherschultz.net/index.php/2009/03/16/properly-handling-pooled-jdbc-connections/
>
>  - Chuck
>
>
> THIS COMMUNICATION MAY CONTAIN CONFIDENTIAL AND/OR OTHERWISE PROPRIETARY
> MATERIAL and is thus for use only by the intended recipient. If you
> received this in error, please contact the sender and delete the e-mail and
> its attachments from all computers.
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: users-help@tomcat.apache.org
>
>

RE: My use of Spring MVC's DeferredResult class causes Tomcat 7.0.35 to crash silently

Posted by "Caldarale, Charles R" <Ch...@unisys.com>.
> From: Julien Martin [mailto:balteo@gmail.com] 
> Subject: Re: My use of Spring MVC's DeferredResult class causes Tomcat 7.0.35 to crash silently

> "http-bio-8080-exec-10" daemon prio=10 tid=0x00007f68840a2800 nid=0x41b5 in
> Object.wait() [0x00007f690cc57000]
>    java.lang.Thread.State: WAITING (on object monitor)
> at java.lang.Object.wait(Native Method)
> - waiting on <0x00000007e8fc4650> (a
> org.apache.commons.pool.impl.GenericObjectPool$Latch)
> at java.lang.Object.wait(Object.java:503)
> at org.apache.commons.pool.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:1115)
> - locked <0x00000007e8fc4650> (a org.apache.commons.pool.impl.GenericObjectPool$Latch)
> at org.apache.commons.dbcp.PoolingDataSource.getConnection(PoolingDataSource.java:106)

Looks like you're leaking database connections, likely by not returning them to the pool.  Read Chris' article on how to do it right:

http://blog.christopherschultz.net/index.php/2009/03/16/properly-handling-pooled-jdbc-connections/

 - Chuck


THIS COMMUNICATION MAY CONTAIN CONFIDENTIAL AND/OR OTHERWISE PROPRIETARY MATERIAL and is thus for use only by the intended recipient. If you received this in error, please contact the sender and delete the e-mail and its attachments from all computers.


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


Re: My use of Spring MVC's DeferredResult class causes Tomcat 7.0.35 to crash silently

Posted by Daniel Mikusa <dm...@vmware.com>.
On Mar 22, 2013, at 4:47 AM, Julien Martin wrote:

> Hi Chuck,
> Thanks for the tip. Can you please confirm it is not a deadlock? All
> threads appear to be waiting. I have run jstack and it did not find any
> deadlock…

At what point did you run this thread dump?  What was the state of your application?  How many request were sent to the server?  How many responded OK, how many failed?

> Regards,
> Julien.
> 
> 2013-03-22 08:52:59
> Full thread dump Java HotSpot(TM) 64-Bit Server VM (23.7-b01 mixed mode):
> 
> "Attach Listener" daemon prio=10 tid=0x00007f68e8001000 nid=0x41bd waiting
> on condition [0x0000000000000000]
>   java.lang.Thread.State: RUNNABLE
> 
>   Locked ownable synchronizers:
> - None
> 
> "http-bio-8080-exec-10" daemon prio=10 tid=0x00007f68840a2800 nid=0x41b5 in

This thread looks suspicious.  Seems like you could be having a problem getting a database connection.  Can you include your <Resource /> tags?  Also, you might want to connect with a tool like jconsole or jvisualvm and watch the stats for the connection pool.  Look at the active, idle counts.

Dan 

> Object.wait() [0x00007f690cc57000]
>   java.lang.Thread.State: WAITING (on object monitor)
> at java.lang.Object.wait(Native Method)
> - waiting on <0x00000007e8fc4650> (a
> org.apache.commons.pool.impl.GenericObjectPool$Latch)
> at java.lang.Object.wait(Object.java:503)
> at
> org.apache.commons.pool.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:1115)
> - locked <0x00000007e8fc4650> (a
> org.apache.commons.pool.impl.GenericObjectPool$Latch)
> at
> org.apache.commons.dbcp.PoolingDataSource.getConnection(PoolingDataSource.java:106)
> at
> org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:1044)
> at
> org.hibernate.ejb.connection.InjectedDataSourceConnectionProvider.getConnection(InjectedDataSourceConnectionProvider.java:70)
> at
> org.hibernate.internal.AbstractSessionImpl$NonContextualJdbcConnectionAccess.obtainConnection(AbstractSessionImpl.java:292)
> at
> org.hibernate.engine.jdbc.internal.LogicalConnectionImpl.obtainConnection(LogicalConnectionImpl.java:297)
> at
> org.hibernate.engine.jdbc.internal.LogicalConnectionImpl.getConnection(LogicalConnectionImpl.java:169)
> at
> org.hibernate.engine.transaction.internal.jdbc.JdbcTransaction.doBegin(JdbcTransaction.java:67)
> at
> org.hibernate.engine.transaction.spi.AbstractTransactionImpl.begin(AbstractTransactionImpl.java:160)
> at
> org.hibernate.internal.SessionImpl.beginTransaction(SessionImpl.java:1395)
> at org.hibernate.ejb.TransactionImpl.begin(TransactionImpl.java:59)
> at
> org.springframework.orm.jpa.DefaultJpaDialect.beginTransaction(DefaultJpaDialect.java:71)
> at
> org.springframework.orm.jpa.JpaTransactionManager.doBegin(JpaTransactionManager.java:378)
> at
> org.springframework.transaction.support.AbstractPlatformTransactionManager.getTransaction(AbstractPlatformTransactionManager.java:371)
> at
> org.springframework.transaction.interceptor.TransactionAspectSupport.createTransactionIfNecessary(TransactionAspectSupport.java:335)
> at
> org.springframework.transaction.interceptor.TransactionAspectSupport.createTransactionIfNecessary(TransactionAspectSupport.java:273)
> at
> org.springframework.transaction.aspectj.AbstractTransactionAspect.ajc$before$org_springframework_transaction_aspectj_AbstractTransactionAspect$1$2a73e96c(AbstractTransactionAspect.aj:63)
> at
> com.bignibou.service.MemberServiceImpl.retrieveCurrentMember(MemberServiceImpl.java:15)
> at
> com.bignibou.controller.MessageController.getMessages(MessageController.java:51)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:601)
> at
> org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:219)
> at
> org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:132)
> at
> org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:104)
> at
> org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandleMethod(RequestMappingHandlerAdapter.java:745)
> at
> org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:686)
> at
> org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:80)
> at
> org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:925)
> at
> org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:856)
> at
> org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:920)
> at
> org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:816)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
> at
> org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:801)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
> at
> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
> at
> org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:118)
> at
> org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:84)
> at
> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
> at
> org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113)
> at
> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
> at
> org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:103)
> at
> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
> at
> org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:113)
> at
> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
> at
> org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54)
> at
> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
> at
> org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:45)
> at
> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
> at
> org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilter(BasicAuthenticationFilter.java:150)
> at
> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
> at
> org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:183)
> at
> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
> at
> org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:105)
> at
> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
> at
> org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87)
> at
> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
> at
> org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:192)
> at
> org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:160)
> at
> org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346)
> at
> org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:259)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
> at
> org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter.doFilterInternal(OpenEntityManagerInViewFilter.java:180)
> at
> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
> at
> org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:77)
> at
> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
> at
> org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
> at
> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
> at
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
> at
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
> at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
> at
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
> at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:936)
> at
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
> at
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
> at
> org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004)
> at
> org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
> at
> org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
> - locked <0x00000007d9c6f578> (a org.apache.tomcat.util.net.SocketWrapper)
> at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
> at java.lang.Thread.run(Thread.java:722)
> 
>   Locked ownable synchronizers:
> - <0x00000007d79a5758> (a java.util.concurrent.ThreadPoolExecutor$Worker)
> 
> "http-bio-8080-exec-9" daemon prio=10 tid=0x00007f68c8426000 nid=0x41b4
> waiting on condition [0x00007f690cd5b000]
>   java.lang.Thread.State: WAITING (parking)
> at sun.misc.Unsafe.park(Native Method)
> - parking to wait for  <0x00000007f7241b98> (a
> java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
> at java.util.concurrent.locks.LockSupport.park(LockSupport.java:186)
> at
> java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2043)
> at
> java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
> at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:104)
> at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:32)
> at
> java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1068)
> at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
> at java.lang.Thread.run(Thread.java:722)
> 
>   Locked ownable synchronizers:
> - None
> 
> "http-bio-8080-exec-8" daemon prio=10 tid=0x00007f68b800c000 nid=0x41b3
> waiting on condition [0x00007f690cf5e000]
>   java.lang.Thread.State: WAITING (parking)
> at sun.misc.Unsafe.park(Native Method)
> - parking to wait for  <0x00000007f7241b98> (a
> java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
> at java.util.concurrent.locks.LockSupport.park(LockSupport.java:186)
> at
> java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2043)
> at
> java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
> at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:104)
> at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:32)
> at
> java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1068)
> at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
> at java.lang.Thread.run(Thread.java:722)
> 
>   Locked ownable synchronizers:
> - None
> 
> "http-bio-8080-exec-7" daemon prio=10 tid=0x00007f68b800a000 nid=0x41b2
> waiting on condition [0x00007f690d05f000]
>   java.lang.Thread.State: WAITING (parking)
> at sun.misc.Unsafe.park(Native Method)
> - parking to wait for  <0x00000007f7241b98> (a
> java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
> at java.util.concurrent.locks.LockSupport.park(LockSupport.java:186)
> at
> java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2043)
> at
> java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
> at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:104)
> at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:32)
> at
> java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1068)
> at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
> at java.lang.Thread.run(Thread.java:722)
> 
>   Locked ownable synchronizers:
> - None
> 
> "http-bio-8080-exec-6" daemon prio=10 tid=0x00007f68b8008000 nid=0x41b1
> waiting on condition [0x00007f690d65a000]
>   java.lang.Thread.State: WAITING (parking)
> at sun.misc.Unsafe.park(Native Method)
> - parking to wait for  <0x00000007f7241b98> (a
> java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
> at java.util.concurrent.locks.LockSupport.park(LockSupport.java:186)
> at
> java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2043)
> at
> java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
> at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:104)
> at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:32)
> at
> java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1068)
> at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
> at java.lang.Thread.run(Thread.java:722)
> 
>   Locked ownable synchronizers:
> - None
> 
> "http-bio-8080-exec-5" daemon prio=10 tid=0x00007f68b8006800 nid=0x41b0
> waiting on condition [0x00007f690d75b000]
>   java.lang.Thread.State: WAITING (parking)
> at sun.misc.Unsafe.park(Native Method)
> - parking to wait for  <0x00000007f7241b98> (a
> java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
> at java.util.concurrent.locks.LockSupport.park(LockSupport.java:186)
> at
> java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2043)
> at
> java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
> at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:104)
> at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:32)
> at
> java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1068)
> at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
> at java.lang.Thread.run(Thread.java:722)
> 
>   Locked ownable synchronizers:
> - None
> 
> "http-bio-8080-exec-4" daemon prio=10 tid=0x00007f68b8005000 nid=0x41af
> waiting on condition [0x00007f690d85c000]
>   java.lang.Thread.State: WAITING (parking)
> at sun.misc.Unsafe.park(Native Method)
> - parking to wait for  <0x00000007f7241b98> (a
> java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
> at java.util.concurrent.locks.LockSupport.park(LockSupport.java:186)
> at
> java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2043)
> at
> java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
> at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:104)
> at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:32)
> at
> java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1068)
> at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
> at java.lang.Thread.run(Thread.java:722)
> 
>   Locked ownable synchronizers:
> - None
> 
> "http-bio-8080-exec-3" daemon prio=10 tid=0x00007f68b8004000 nid=0x41ae
> waiting on condition [0x00007f690db5f000]
>   java.lang.Thread.State: WAITING (parking)
> at sun.misc.Unsafe.park(Native Method)
> - parking to wait for  <0x00000007f7241b98> (a
> java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
> at java.util.concurrent.locks.LockSupport.park(LockSupport.java:186)
> at
> java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2043)
> at
> java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
> at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:104)
> at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:32)
> at
> java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1068)
> at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
> at java.lang.Thread.run(Thread.java:722)
> 
>   Locked ownable synchronizers:
> - None
> 
> "http-bio-8080-exec-2" daemon prio=10 tid=0x00007f68b000e000 nid=0x41ab
> waiting on condition [0x00007f690d95d000]
>   java.lang.Thread.State: WAITING (parking)
> at sun.misc.Unsafe.park(Native Method)
> - parking to wait for  <0x00000007f7241b98> (a
> java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
> at java.util.concurrent.locks.LockSupport.park(LockSupport.java:186)
> at
> java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2043)
> at
> java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
> at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:104)
> at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:32)
> at
> java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1068)
> at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
> at java.lang.Thread.run(Thread.java:722)
> 
>   Locked ownable synchronizers:
> - None
> 
> "ajp-bio-8009-AsyncTimeout" daemon prio=10 tid=0x00007f69184a5000
> nid=0x41aa waiting on condition [0x00007f690d160000]
>   java.lang.Thread.State: TIMED_WAITING (sleeping)
> at java.lang.Thread.sleep(Native Method)
> at
> org.apache.tomcat.util.net.JIoEndpoint$AsyncTimeout.run(JIoEndpoint.java:148)
> at java.lang.Thread.run(Thread.java:722)
> 
>   Locked ownable synchronizers:
> - None
> 
> "ajp-bio-8009-Acceptor-0" daemon prio=10 tid=0x00007f69184a3000 nid=0x41a9
> runnable [0x00007f690d261000]
>   java.lang.Thread.State: RUNNABLE
> at java.net.PlainSocketImpl.socketAccept(Native Method)
> at java.net.AbstractPlainSocketImpl.accept(AbstractPlainSocketImpl.java:398)
> at java.net.ServerSocket.implAccept(ServerSocket.java:522)
> at java.net.ServerSocket.accept(ServerSocket.java:490)
> at
> org.apache.tomcat.util.net.DefaultServerSocketFactory.acceptSocket(DefaultServerSocketFactory.java:60)
> at org.apache.tomcat.util.net.JIoEndpoint$Acceptor.run(JIoEndpoint.java:216)
> at java.lang.Thread.run(Thread.java:722)
> 
>   Locked ownable synchronizers:
> - None
> 
> "http-bio-8080-exec-1" daemon prio=10 tid=0x00007f68b8002000 nid=0x41a8
> waiting on condition [0x00007f690d362000]
>   java.lang.Thread.State: WAITING (parking)
> at sun.misc.Unsafe.park(Native Method)
> - parking to wait for  <0x00000007f7241b98> (a
> java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
> at java.util.concurrent.locks.LockSupport.park(LockSupport.java:186)
> at
> java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2043)
> at
> java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
> at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:104)
> at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:32)
> at
> java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1068)
> at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
> at java.lang.Thread.run(Thread.java:722)
> 
>   Locked ownable synchronizers:
> - None
> 
> "http-bio-8080-AsyncTimeout" daemon prio=10 tid=0x00007f69184a1800
> nid=0x41a7 waiting on condition [0x00007f690d463000]
>   java.lang.Thread.State: TIMED_WAITING (sleeping)
> at java.lang.Thread.sleep(Native Method)
> at
> org.apache.tomcat.util.net.JIoEndpoint$AsyncTimeout.run(JIoEndpoint.java:148)
> at java.lang.Thread.run(Thread.java:722)
> 
>   Locked ownable synchronizers:
> - None
> 
> "http-bio-8080-Acceptor-0" daemon prio=10 tid=0x00007f691849f800 nid=0x41a6
> runnable [0x00007f690e2db000]
>   java.lang.Thread.State: RUNNABLE
> at java.net.PlainSocketImpl.socketAccept(Native Method)
> at java.net.AbstractPlainSocketImpl.accept(AbstractPlainSocketImpl.java:398)
> at java.net.ServerSocket.implAccept(ServerSocket.java:522)
> at java.net.ServerSocket.accept(ServerSocket.java:490)
> at
> org.apache.tomcat.util.net.DefaultServerSocketFactory.acceptSocket(DefaultServerSocketFactory.java:60)
> at org.apache.tomcat.util.net.JIoEndpoint$Acceptor.run(JIoEndpoint.java:216)
> at java.lang.Thread.run(Thread.java:722)
> 
>   Locked ownable synchronizers:
> - None
> 
> "ContainerBackgroundProcessor[StandardEngine[Catalina]]" daemon prio=10
> tid=0x00007f691875c800 nid=0x41a5 waiting on condition [0x00007f690e3dc000]
>   java.lang.Thread.State: TIMED_WAITING (sleeping)
> at java.lang.Thread.sleep(Native Method)
> at
> org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1508)
> at java.lang.Thread.run(Thread.java:722)
> 
>   Locked ownable synchronizers:
> - None
> 
> "Timer-0" daemon prio=10 tid=0x00007f68c4a93800 nid=0x41a4 in Object.wait()
> [0x00007f690da5e000]
>   java.lang.Thread.State: TIMED_WAITING (on object monitor)
> at java.lang.Object.wait(Native Method)
> - waiting on <0x00000007f7abdda0> (a java.util.TaskQueue)
> at java.util.TimerThread.mainLoop(Timer.java:552)
> - locked <0x00000007f7abdda0> (a java.util.TaskQueue)
> at java.util.TimerThread.run(Timer.java:505)
> 
>   Locked ownable synchronizers:
> - None
> 
> "GC Daemon" daemon prio=10 tid=0x00007f691866b000 nid=0x419e in
> Object.wait() [0x00007f690eb3c000]
>   java.lang.Thread.State: TIMED_WAITING (on object monitor)
> at java.lang.Object.wait(Native Method)
> - waiting on <0x00000007836c8508> (a sun.misc.GC$LatencyLock)
> at sun.misc.GC$Daemon.run(GC.java:117)
> - locked <0x00000007836c8508> (a sun.misc.GC$LatencyLock)
> 
>   Locked ownable synchronizers:
> - None
> 
> "Service Thread" daemon prio=10 tid=0x00007f69180f0800 nid=0x419b runnable
> [0x0000000000000000]
>   java.lang.Thread.State: RUNNABLE
> 
>   Locked ownable synchronizers:
> - None
> 
> "C2 CompilerThread1" daemon prio=10 tid=0x00007f69180ee800 nid=0x419a
> waiting on condition [0x0000000000000000]
>   java.lang.Thread.State: RUNNABLE
> 
>   Locked ownable synchronizers:
> - None
> 
> "C2 CompilerThread0" daemon prio=10 tid=0x00007f69180eb800 nid=0x4199
> waiting on condition [0x0000000000000000]
>   java.lang.Thread.State: RUNNABLE
> 
>   Locked ownable synchronizers:
> - None
> 
> "Signal Dispatcher" daemon prio=10 tid=0x00007f69180e9000 nid=0x4198
> runnable [0x0000000000000000]
>   java.lang.Thread.State: RUNNABLE
> 
>   Locked ownable synchronizers:
> - None
> 
> "Finalizer" daemon prio=10 tid=0x00007f691809c000 nid=0x4197 in
> Object.wait() [0x00007f690fefd000]
>   java.lang.Thread.State: WAITING (on object monitor)
> at java.lang.Object.wait(Native Method)
> - waiting on <0x0000000785b731f8> (a java.lang.ref.ReferenceQueue$Lock)
> at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:135)
> - locked <0x0000000785b731f8> (a java.lang.ref.ReferenceQueue$Lock)
> at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:151)
> at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:177)
> 
>   Locked ownable synchronizers:
> - None
> 
> "Reference Handler" daemon prio=10 tid=0x00007f691809a000 nid=0x4196 in
> Object.wait() [0x00007f690fffe000]
>   java.lang.Thread.State: WAITING (on object monitor)
> at java.lang.Object.wait(Native Method)
> - waiting on <0x0000000785b72da8> (a java.lang.ref.Reference$Lock)
> at java.lang.Object.wait(Object.java:503)
> at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:133)
> - locked <0x0000000785b72da8> (a java.lang.ref.Reference$Lock)
> 
>   Locked ownable synchronizers:
> - None
> 
> "main" prio=10 tid=0x00007f6918009000 nid=0x4190 runnable
> [0x00007f6920b89000]
>   java.lang.Thread.State: RUNNABLE
> at java.net.PlainSocketImpl.socketAccept(Native Method)
> at java.net.AbstractPlainSocketImpl.accept(AbstractPlainSocketImpl.java:398)
> at java.net.ServerSocket.implAccept(ServerSocket.java:522)
> at java.net.ServerSocket.accept(ServerSocket.java:490)
> at org.apache.catalina.core.StandardServer.await(StandardServer.java:452)
> at org.apache.catalina.startup.Catalina.await(Catalina.java:766)
> at org.apache.catalina.startup.Catalina.start(Catalina.java:712)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:601)
> at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:322)
> at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:456)
> 
>   Locked ownable synchronizers:
> - None
> 
> "VM Thread" prio=10 tid=0x00007f6918092800 nid=0x4195 runnable
> 
> "GC task thread#0 (ParallelGC)" prio=10 tid=0x00007f6918017000 nid=0x4191
> runnable
> 
> "GC task thread#1 (ParallelGC)" prio=10 tid=0x00007f6918019000 nid=0x4192
> runnable
> 
> "GC task thread#2 (ParallelGC)" prio=10 tid=0x00007f691801a800 nid=0x4193
> runnable
> 
> "GC task thread#3 (ParallelGC)" prio=10 tid=0x00007f691801c800 nid=0x4194
> runnable
> 
> "VM Periodic Task Thread" prio=10 tid=0x00007f69180fb000 nid=0x419c waiting
> on condition
> 
> JNI global references: 439
> 
> 
> 2013/3/21 Caldarale, Charles R <Ch...@unisys.com>
> 
>>> From: Julien Martin [mailto:balteo@gmail.com]
>>> Subject: Re: My use of Spring MVC's DeferredResult class causes Tomcat
>> 7.0.35 to crash silently
>> 
>>> The 9th method invocation causes Tomcat to hang. When you issue
>>> requests after that, they also "hang".
>> 
>> That's quite different from a crash.  Can you take a thread dump and a
>> heap dump?  Using VisualVM or some of the command-line tools, you can
>> monitor the JVM and see if anything odd is going on from that perspective.
>> 
>> http://wiki.apache.org/tomcat/FAQ/Troubleshooting_and_Diagnostics
>> 
>> You may have deadlocked threads, you may be out of heap space, you may
>> have locked up waiting for a database connection, etc.  The diagnostic
>> tools should help you figure it out.
>> 
>> - Chuck
>> 
>> 
>> THIS COMMUNICATION MAY CONTAIN CONFIDENTIAL AND/OR OTHERWISE PROPRIETARY
>> MATERIAL and is thus for use only by the intended recipient. If you
>> received this in error, please contact the sender and delete the e-mail and
>> its attachments from all computers.
>> 
>> 
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
>> For additional commands, e-mail: users-help@tomcat.apache.org
>> 
>> 


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


Re: My use of Spring MVC's DeferredResult class causes Tomcat 7.0.35 to crash silently

Posted by Julien Martin <ba...@gmail.com>.
Hi Chuck,
Thanks for the tip. Can you please confirm it is not a deadlock? All
threads appear to be waiting. I have run jstack and it did not find any
deadlock...
Regards,
Julien.

2013-03-22 08:52:59
Full thread dump Java HotSpot(TM) 64-Bit Server VM (23.7-b01 mixed mode):

"Attach Listener" daemon prio=10 tid=0x00007f68e8001000 nid=0x41bd waiting
on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

   Locked ownable synchronizers:
- None

"http-bio-8080-exec-10" daemon prio=10 tid=0x00007f68840a2800 nid=0x41b5 in
Object.wait() [0x00007f690cc57000]
   java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x00000007e8fc4650> (a
org.apache.commons.pool.impl.GenericObjectPool$Latch)
at java.lang.Object.wait(Object.java:503)
at
org.apache.commons.pool.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:1115)
- locked <0x00000007e8fc4650> (a
org.apache.commons.pool.impl.GenericObjectPool$Latch)
at
org.apache.commons.dbcp.PoolingDataSource.getConnection(PoolingDataSource.java:106)
at
org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:1044)
at
org.hibernate.ejb.connection.InjectedDataSourceConnectionProvider.getConnection(InjectedDataSourceConnectionProvider.java:70)
at
org.hibernate.internal.AbstractSessionImpl$NonContextualJdbcConnectionAccess.obtainConnection(AbstractSessionImpl.java:292)
at
org.hibernate.engine.jdbc.internal.LogicalConnectionImpl.obtainConnection(LogicalConnectionImpl.java:297)
at
org.hibernate.engine.jdbc.internal.LogicalConnectionImpl.getConnection(LogicalConnectionImpl.java:169)
at
org.hibernate.engine.transaction.internal.jdbc.JdbcTransaction.doBegin(JdbcTransaction.java:67)
at
org.hibernate.engine.transaction.spi.AbstractTransactionImpl.begin(AbstractTransactionImpl.java:160)
at
org.hibernate.internal.SessionImpl.beginTransaction(SessionImpl.java:1395)
at org.hibernate.ejb.TransactionImpl.begin(TransactionImpl.java:59)
at
org.springframework.orm.jpa.DefaultJpaDialect.beginTransaction(DefaultJpaDialect.java:71)
at
org.springframework.orm.jpa.JpaTransactionManager.doBegin(JpaTransactionManager.java:378)
at
org.springframework.transaction.support.AbstractPlatformTransactionManager.getTransaction(AbstractPlatformTransactionManager.java:371)
at
org.springframework.transaction.interceptor.TransactionAspectSupport.createTransactionIfNecessary(TransactionAspectSupport.java:335)
at
org.springframework.transaction.interceptor.TransactionAspectSupport.createTransactionIfNecessary(TransactionAspectSupport.java:273)
at
org.springframework.transaction.aspectj.AbstractTransactionAspect.ajc$before$org_springframework_transaction_aspectj_AbstractTransactionAspect$1$2a73e96c(AbstractTransactionAspect.aj:63)
at
com.bignibou.service.MemberServiceImpl.retrieveCurrentMember(MemberServiceImpl.java:15)
at
com.bignibou.controller.MessageController.getMessages(MessageController.java:51)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at
org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:219)
at
org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:132)
at
org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:104)
at
org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandleMethod(RequestMappingHandlerAdapter.java:745)
at
org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:686)
at
org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:80)
at
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:925)
at
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:856)
at
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:920)
at
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:816)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
at
org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:801)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
at
org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:118)
at
org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:84)
at
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at
org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113)
at
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at
org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:103)
at
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at
org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:113)
at
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at
org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54)
at
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at
org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:45)
at
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at
org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilter(BasicAuthenticationFilter.java:150)
at
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at
org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:183)
at
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at
org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:105)
at
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at
org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87)
at
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at
org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:192)
at
org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:160)
at
org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346)
at
org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:259)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at
org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter.doFilterInternal(OpenEntityManagerInViewFilter.java:180)
at
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at
org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:77)
at
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at
org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
at
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:936)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
at
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004)
at
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
at
org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
- locked <0x00000007d9c6f578> (a org.apache.tomcat.util.net.SocketWrapper)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:722)

   Locked ownable synchronizers:
- <0x00000007d79a5758> (a java.util.concurrent.ThreadPoolExecutor$Worker)

"http-bio-8080-exec-9" daemon prio=10 tid=0x00007f68c8426000 nid=0x41b4
waiting on condition [0x00007f690cd5b000]
   java.lang.Thread.State: WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for  <0x00000007f7241b98> (a
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:186)
at
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2043)
at
java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:104)
at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:32)
at
java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1068)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:722)

   Locked ownable synchronizers:
- None

"http-bio-8080-exec-8" daemon prio=10 tid=0x00007f68b800c000 nid=0x41b3
waiting on condition [0x00007f690cf5e000]
   java.lang.Thread.State: WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for  <0x00000007f7241b98> (a
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:186)
at
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2043)
at
java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:104)
at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:32)
at
java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1068)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:722)

   Locked ownable synchronizers:
- None

"http-bio-8080-exec-7" daemon prio=10 tid=0x00007f68b800a000 nid=0x41b2
waiting on condition [0x00007f690d05f000]
   java.lang.Thread.State: WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for  <0x00000007f7241b98> (a
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:186)
at
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2043)
at
java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:104)
at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:32)
at
java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1068)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:722)

   Locked ownable synchronizers:
- None

"http-bio-8080-exec-6" daemon prio=10 tid=0x00007f68b8008000 nid=0x41b1
waiting on condition [0x00007f690d65a000]
   java.lang.Thread.State: WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for  <0x00000007f7241b98> (a
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:186)
at
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2043)
at
java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:104)
at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:32)
at
java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1068)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:722)

   Locked ownable synchronizers:
- None

"http-bio-8080-exec-5" daemon prio=10 tid=0x00007f68b8006800 nid=0x41b0
waiting on condition [0x00007f690d75b000]
   java.lang.Thread.State: WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for  <0x00000007f7241b98> (a
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:186)
at
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2043)
at
java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:104)
at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:32)
at
java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1068)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:722)

   Locked ownable synchronizers:
- None

"http-bio-8080-exec-4" daemon prio=10 tid=0x00007f68b8005000 nid=0x41af
waiting on condition [0x00007f690d85c000]
   java.lang.Thread.State: WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for  <0x00000007f7241b98> (a
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:186)
at
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2043)
at
java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:104)
at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:32)
at
java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1068)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:722)

   Locked ownable synchronizers:
- None

"http-bio-8080-exec-3" daemon prio=10 tid=0x00007f68b8004000 nid=0x41ae
waiting on condition [0x00007f690db5f000]
   java.lang.Thread.State: WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for  <0x00000007f7241b98> (a
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:186)
at
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2043)
at
java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:104)
at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:32)
at
java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1068)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:722)

   Locked ownable synchronizers:
- None

"http-bio-8080-exec-2" daemon prio=10 tid=0x00007f68b000e000 nid=0x41ab
waiting on condition [0x00007f690d95d000]
   java.lang.Thread.State: WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for  <0x00000007f7241b98> (a
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:186)
at
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2043)
at
java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:104)
at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:32)
at
java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1068)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:722)

   Locked ownable synchronizers:
- None

"ajp-bio-8009-AsyncTimeout" daemon prio=10 tid=0x00007f69184a5000
nid=0x41aa waiting on condition [0x00007f690d160000]
   java.lang.Thread.State: TIMED_WAITING (sleeping)
at java.lang.Thread.sleep(Native Method)
at
org.apache.tomcat.util.net.JIoEndpoint$AsyncTimeout.run(JIoEndpoint.java:148)
at java.lang.Thread.run(Thread.java:722)

   Locked ownable synchronizers:
- None

"ajp-bio-8009-Acceptor-0" daemon prio=10 tid=0x00007f69184a3000 nid=0x41a9
runnable [0x00007f690d261000]
   java.lang.Thread.State: RUNNABLE
at java.net.PlainSocketImpl.socketAccept(Native Method)
at java.net.AbstractPlainSocketImpl.accept(AbstractPlainSocketImpl.java:398)
at java.net.ServerSocket.implAccept(ServerSocket.java:522)
at java.net.ServerSocket.accept(ServerSocket.java:490)
at
org.apache.tomcat.util.net.DefaultServerSocketFactory.acceptSocket(DefaultServerSocketFactory.java:60)
at org.apache.tomcat.util.net.JIoEndpoint$Acceptor.run(JIoEndpoint.java:216)
at java.lang.Thread.run(Thread.java:722)

   Locked ownable synchronizers:
- None

"http-bio-8080-exec-1" daemon prio=10 tid=0x00007f68b8002000 nid=0x41a8
waiting on condition [0x00007f690d362000]
   java.lang.Thread.State: WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for  <0x00000007f7241b98> (a
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:186)
at
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2043)
at
java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:104)
at org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:32)
at
java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1068)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:722)

   Locked ownable synchronizers:
- None

"http-bio-8080-AsyncTimeout" daemon prio=10 tid=0x00007f69184a1800
nid=0x41a7 waiting on condition [0x00007f690d463000]
   java.lang.Thread.State: TIMED_WAITING (sleeping)
at java.lang.Thread.sleep(Native Method)
at
org.apache.tomcat.util.net.JIoEndpoint$AsyncTimeout.run(JIoEndpoint.java:148)
at java.lang.Thread.run(Thread.java:722)

   Locked ownable synchronizers:
- None

"http-bio-8080-Acceptor-0" daemon prio=10 tid=0x00007f691849f800 nid=0x41a6
runnable [0x00007f690e2db000]
   java.lang.Thread.State: RUNNABLE
at java.net.PlainSocketImpl.socketAccept(Native Method)
at java.net.AbstractPlainSocketImpl.accept(AbstractPlainSocketImpl.java:398)
at java.net.ServerSocket.implAccept(ServerSocket.java:522)
at java.net.ServerSocket.accept(ServerSocket.java:490)
at
org.apache.tomcat.util.net.DefaultServerSocketFactory.acceptSocket(DefaultServerSocketFactory.java:60)
at org.apache.tomcat.util.net.JIoEndpoint$Acceptor.run(JIoEndpoint.java:216)
at java.lang.Thread.run(Thread.java:722)

   Locked ownable synchronizers:
- None

"ContainerBackgroundProcessor[StandardEngine[Catalina]]" daemon prio=10
tid=0x00007f691875c800 nid=0x41a5 waiting on condition [0x00007f690e3dc000]
   java.lang.Thread.State: TIMED_WAITING (sleeping)
at java.lang.Thread.sleep(Native Method)
at
org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1508)
at java.lang.Thread.run(Thread.java:722)

   Locked ownable synchronizers:
- None

"Timer-0" daemon prio=10 tid=0x00007f68c4a93800 nid=0x41a4 in Object.wait()
[0x00007f690da5e000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x00000007f7abdda0> (a java.util.TaskQueue)
at java.util.TimerThread.mainLoop(Timer.java:552)
- locked <0x00000007f7abdda0> (a java.util.TaskQueue)
at java.util.TimerThread.run(Timer.java:505)

   Locked ownable synchronizers:
- None

"GC Daemon" daemon prio=10 tid=0x00007f691866b000 nid=0x419e in
Object.wait() [0x00007f690eb3c000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x00000007836c8508> (a sun.misc.GC$LatencyLock)
at sun.misc.GC$Daemon.run(GC.java:117)
- locked <0x00000007836c8508> (a sun.misc.GC$LatencyLock)

   Locked ownable synchronizers:
- None

"Service Thread" daemon prio=10 tid=0x00007f69180f0800 nid=0x419b runnable
[0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

   Locked ownable synchronizers:
- None

"C2 CompilerThread1" daemon prio=10 tid=0x00007f69180ee800 nid=0x419a
waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

   Locked ownable synchronizers:
- None

"C2 CompilerThread0" daemon prio=10 tid=0x00007f69180eb800 nid=0x4199
waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

   Locked ownable synchronizers:
- None

"Signal Dispatcher" daemon prio=10 tid=0x00007f69180e9000 nid=0x4198
runnable [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

   Locked ownable synchronizers:
- None

"Finalizer" daemon prio=10 tid=0x00007f691809c000 nid=0x4197 in
Object.wait() [0x00007f690fefd000]
   java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x0000000785b731f8> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:135)
- locked <0x0000000785b731f8> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:151)
at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:177)

   Locked ownable synchronizers:
- None

"Reference Handler" daemon prio=10 tid=0x00007f691809a000 nid=0x4196 in
Object.wait() [0x00007f690fffe000]
   java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x0000000785b72da8> (a java.lang.ref.Reference$Lock)
at java.lang.Object.wait(Object.java:503)
at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:133)
- locked <0x0000000785b72da8> (a java.lang.ref.Reference$Lock)

   Locked ownable synchronizers:
- None

"main" prio=10 tid=0x00007f6918009000 nid=0x4190 runnable
[0x00007f6920b89000]
   java.lang.Thread.State: RUNNABLE
at java.net.PlainSocketImpl.socketAccept(Native Method)
at java.net.AbstractPlainSocketImpl.accept(AbstractPlainSocketImpl.java:398)
at java.net.ServerSocket.implAccept(ServerSocket.java:522)
at java.net.ServerSocket.accept(ServerSocket.java:490)
at org.apache.catalina.core.StandardServer.await(StandardServer.java:452)
at org.apache.catalina.startup.Catalina.await(Catalina.java:766)
at org.apache.catalina.startup.Catalina.start(Catalina.java:712)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:322)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:456)

   Locked ownable synchronizers:
- None

"VM Thread" prio=10 tid=0x00007f6918092800 nid=0x4195 runnable

"GC task thread#0 (ParallelGC)" prio=10 tid=0x00007f6918017000 nid=0x4191
runnable

"GC task thread#1 (ParallelGC)" prio=10 tid=0x00007f6918019000 nid=0x4192
runnable

"GC task thread#2 (ParallelGC)" prio=10 tid=0x00007f691801a800 nid=0x4193
runnable

"GC task thread#3 (ParallelGC)" prio=10 tid=0x00007f691801c800 nid=0x4194
runnable

"VM Periodic Task Thread" prio=10 tid=0x00007f69180fb000 nid=0x419c waiting
on condition

JNI global references: 439


2013/3/21 Caldarale, Charles R <Ch...@unisys.com>

> > From: Julien Martin [mailto:balteo@gmail.com]
> > Subject: Re: My use of Spring MVC's DeferredResult class causes Tomcat
> 7.0.35 to crash silently
>
> > The 9th method invocation causes Tomcat to hang. When you issue
> > requests after that, they also "hang".
>
> That's quite different from a crash.  Can you take a thread dump and a
> heap dump?  Using VisualVM or some of the command-line tools, you can
> monitor the JVM and see if anything odd is going on from that perspective.
>
> http://wiki.apache.org/tomcat/FAQ/Troubleshooting_and_Diagnostics
>
> You may have deadlocked threads, you may be out of heap space, you may
> have locked up waiting for a database connection, etc.  The diagnostic
> tools should help you figure it out.
>
>  - Chuck
>
>
> THIS COMMUNICATION MAY CONTAIN CONFIDENTIAL AND/OR OTHERWISE PROPRIETARY
> MATERIAL and is thus for use only by the intended recipient. If you
> received this in error, please contact the sender and delete the e-mail and
> its attachments from all computers.
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: users-help@tomcat.apache.org
>
>

RE: My use of Spring MVC's DeferredResult class causes Tomcat 7.0.35 to crash silently

Posted by "Caldarale, Charles R" <Ch...@unisys.com>.
> From: Julien Martin [mailto:balteo@gmail.com] 
> Subject: Re: My use of Spring MVC's DeferredResult class causes Tomcat 7.0.35 to crash silently

> The 9th method invocation causes Tomcat to hang. When you issue
> requests after that, they also "hang".

That's quite different from a crash.  Can you take a thread dump and a heap dump?  Using VisualVM or some of the command-line tools, you can monitor the JVM and see if anything odd is going on from that perspective.

http://wiki.apache.org/tomcat/FAQ/Troubleshooting_and_Diagnostics

You may have deadlocked threads, you may be out of heap space, you may have locked up waiting for a database connection, etc.  The diagnostic tools should help you figure it out.

 - Chuck


THIS COMMUNICATION MAY CONTAIN CONFIDENTIAL AND/OR OTHERWISE PROPRIETARY MATERIAL and is thus for use only by the intended recipient. If you received this in error, please contact the sender and delete the e-mail and its attachments from all computers.


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


Re: My use of Spring MVC's DeferredResult class causes Tomcat 7.0.35 to crash silently

Posted by Julien Martin <ba...@gmail.com>.
Chuck and Daniel,

Thanks for replying. I'll try and provide the information requested.

   - The 9th method invocation causes Tomcat to hang. When you issue
   requests after that, they also "hang".
   - Here is the connector info:

 <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />

 <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />


   - Jvm version:

java version "1.7.0_15"
Java(TM) SE Runtime Environment (build 1.7.0_15-b03)
Java HotSpot(TM) 64-Bit Server VM (build 23.7-b01, mixed mode)


   - My app is 1.6 compatible.
   - Platform type and version: Ubuntu 12.10


   - APR: I just connect to tomcat through port 8080

Please don't hesitate to tell me if the information provided is not
sufficient.

Regards,

Julien.


2013/3/21 Caldarale, Charles R <Ch...@unisys.com>

> > From: Daniel Mikusa [mailto:dmikusa@vmware.com]
> > Subject: Re: My use of Spring MVC's DeferredResult class causes Tomcat
> 7.0.35 to crash silently
>
> > Can you define "crash" a little better?  Is the Tomcat process still
> > running?  If so, is it answering any requests?  If so, what happens
> > if you send a request to this resource?  Do you get a 4xx / 5xx error?
> > Does it hang?
>
> > Also, what does your <Connector/> look like?
>
> And provide the bare minimum of environmental information:
>
>     exact JVM version
>     platform type and version
>     using APR or not
>
>  - Chuck
>
>
> THIS COMMUNICATION MAY CONTAIN CONFIDENTIAL AND/OR OTHERWISE PROPRIETARY
> MATERIAL and is thus for use only by the intended recipient. If you
> received this in error, please contact the sender and delete the e-mail and
> its attachments from all computers.
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: users-help@tomcat.apache.org
>
>

RE: My use of Spring MVC's DeferredResult class causes Tomcat 7.0.35 to crash silently

Posted by "Caldarale, Charles R" <Ch...@unisys.com>.
> From: Daniel Mikusa [mailto:dmikusa@vmware.com] 
> Subject: Re: My use of Spring MVC's DeferredResult class causes Tomcat 7.0.35 to crash silently

> Can you define "crash" a little better?  Is the Tomcat process still 
> running?  If so, is it answering any requests?  If so, what happens 
> if you send a request to this resource?  Do you get a 4xx / 5xx error?
> Does it hang?

> Also, what does your <Connector/> look like?

And provide the bare minimum of environmental information:

    exact JVM version
    platform type and version
    using APR or not

 - Chuck


THIS COMMUNICATION MAY CONTAIN CONFIDENTIAL AND/OR OTHERWISE PROPRIETARY MATERIAL and is thus for use only by the intended recipient. If you received this in error, please contact the sender and delete the e-mail and its attachments from all computers.


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


Re: My use of Spring MVC's DeferredResult class causes Tomcat 7.0.35 to crash silently

Posted by Daniel Mikusa <dm...@vmware.com>.
On Mar 21, 2013, at 4:46 PM, Julien Martin wrote:

> Hello,
> 
> I have the following Spring MVC 3.2 code (it uses the DeferredResult
> class<http://static.springsource.org/spring/docs/3.2.2.RELEASE/javadoc-api/org/springframework/web/context/request/async/DeferredResult.html>
> ):
> 
> @RequestMapping(value = "getMessages", method = RequestMethod.GET,
> produces = "application/json")
>    @ResponseBody
>    public DeferredResult<List<Message>> getMessages(@RequestParam
> final Long senderId) {
>        final Long recipientId = memberService.retrieveCurrentMember().getId();
>        final String messageRequestKey = new
> StringBuilder().append(senderId).append(":").append(recipientId).toString();
>        final DeferredResult<List<Message>> deferredResult = new
> DeferredResult<List<Message>>(null, Collections.emptyList());
>        messageRequests.put(messageRequestKey, deferredResult);
> 
>        deferredResult.onCompletion(new Runnable() {
>            @Override
>            public void run() {
>                messageRequests.remove(messageRequestKey);
>            }
>        });
> 
>        List<Message> unReadMessages =
> messageService.findUnreadMessages(senderId, recipientId);
>        if (!unReadMessages.isEmpty()) {
>            deferredResult.setResult(unReadMessages);
>        }
>        return deferredResult;
>    }
> 
> This method is polled continuously by an ajax call and it
> systematically *causes
> Tomcat to crash upon the 9th method invocation*. Note that Tomcat crashes
> without any error message.

Can you define "crash" a little better?  Is the Tomcat process still running?  If so, is it answering any requests?  If so, what happens if you send a request to this resource?  Do you get a 4xx / 5xx error?  Does it hang?

Also, what does your <Connector/> look like?

Dan

> 
> *I would be very grateful if someone could help me determine the reason why
> this code exhibits this behavior, perhaps by giving me tips on how to debug
> the app/tomcat.*
> 
> Regards,
> 
> Julien.


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