[jboss-jira] [JBoss JIRA] (JGRP-1663) TimeScheduler3 could spawn too many threads

Igor Mazur (JIRA) jira-events at lists.jboss.org
Fri Jul 19 15:54:26 EDT 2013


    [ https://issues.jboss.org/browse/JGRP-1663?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12791114#comment-12791114 ] 

Igor Mazur commented on JGRP-1663:
----------------------------------

We have quite big cluster with several datacenters and connection between datacenters sometimes fall. And between datacenters we use TCP.

It is probably first time when we got such error. Below a piece of thread dump:

Timer temp thread-19917,global,_index-subscriber tid=20526 [WAITING] [DAEMON]
java.util.concurrent.locks.ReentrantLock.lockInterruptibly()
org.jgroups.blocks.TCPConnectionMap$Mapper.getConnection(Address)
org.jgroups.blocks.TCPConnectionMap.send(Address, byte[], int, int)
org.jgroups.protocols.TCP.send(Address, byte[], int, int)
org.jgroups.protocols.BasicTCP.sendUnicast(PhysicalAddress, byte[], int, int)
org.jgroups.protocols.TP.sendToSingleMember(Address, byte[], int, int)
org.jgroups.protocols.TP.doSend(Buffer, Address, boolean)
org.jgroups.protocols.TP.send(Message, Address, boolean)
org.jgroups.protocols.TP.down(Event)
org.jgroups.protocols.Discovery$1.run()
org.jgroups.util.TimeScheduler3$Task.run()
java.lang.Thread.run()



Timer temp thread-19918,global,_index-subscriber tid=20527 [WAITING] [DAEMON]
java.util.concurrent.locks.ReentrantLock.lockInterruptibly()
org.jgroups.blocks.TCPConnectionMap$Mapper.getConnection(Address)
org.jgroups.blocks.TCPConnectionMap.send(Address, byte[], int, int)
org.jgroups.protocols.TCP.send(Address, byte[], int, int)
org.jgroups.protocols.BasicTCP.sendUnicast(PhysicalAddress, byte[], int, int)
org.jgroups.protocols.TP.sendToSingleMember(Address, byte[], int, int)
org.jgroups.protocols.TP.doSend(Buffer, Address, boolean)
org.jgroups.protocols.TP.send(Message, Address, boolean)
org.jgroups.protocols.TP.down(Event)
org.jgroups.protocols.Discovery$1.run()
org.jgroups.util.TimeScheduler3$Task.run()
java.lang.Thread.run()

                
> TimeScheduler3 could spawn too many threads
> -------------------------------------------
>
>                 Key: JGRP-1663
>                 URL: https://issues.jboss.org/browse/JGRP-1663
>             Project: JGroups
>          Issue Type: Bug
>    Affects Versions: 3.3.3
>            Reporter: Igor Mazur
>            Assignee: Bela Ban
>            Priority: Optional
>             Fix For: 3.4
>
>
> With default timer thread pool settings this code could spawn thousands of threads:
> protected void submitToPool(final Task entry) {
>         try {
>             pool.execute(entry);
>         }
>         catch(RejectedExecutionException rejected) { // only thrown if rejection policy is "abort"
>             Thread thread=timer_thread_factory != null?
>               timer_thread_factory.newThread(entry, "Timer temp thread")
>               : new Thread(entry, "Timer temp thread");
>             thread.start();
>         }
>     }
> On my environment I got 19000 threads.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


More information about the jboss-jira mailing list