Details
-
- Environment:
- -
Issue Links
| Depends | |||
|---|---|---|---|
|
|
|
||
Activity
| Field | Original Value | New Value |
|---|---|---|
| Assignee | Mathieu Carrolle [ mcarrolle ] | |
| Fix Version/s | 5.3.0 [ 10338 ] | |
| Priority | Critical [ 2 ] |
| Description |
The following error occurs when the JBI message processor thread pool is exhausted, and no more messages is processed:
{code} Exception in thread "petals-bc-soap -JBI Acceptor Thread #2" java.lang.StackOverflowError at sun.misc.Unsafe.compareAndSwapInt(Native Method) at java.util.concurrent.locks.AbstractQueuedSynchronizer.compareAndSetState(AbstractQueuedSynchronizer.java:537) at java.util.concurrent.locks.ReentrantLock$NonfairSync.lock(ReentrantLock.java:183) at java.util.concurrent.locks.ReentrantLock.lock(ReentrantLock.java:262) at java.util.concurrent.ThreadPoolExecutor.addIfUnderMaximumPoolSize(ThreadPoolExecutor.java:718) at java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:657) at java.util.concurrent.ThreadPoolExecutor$DiscardOldestPolicy.rejectedExecution(ThreadPoolExecutor.java:1813) at java.util.concurrent.ThreadPoolExecutor.reject(ThreadPoolExecutor.java:767) at java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:658) at java.util.concurrent.ThreadPoolExecutor$DiscardOldestPolicy.rejectedExecution(ThreadPoolExecutor.java:1813) at java.util.concurrent.ThreadPoolExecutor.reject(ThreadPoolExecutor.java:767) at java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:658) at java.util.concurrent.ThreadPoolExecutor$DiscardOldestPolicy.rejectedExecution(ThreadPoolExecutor.java:1813) at java.util.concurrent.ThreadPoolExecutor.reject(ThreadPoolExecutor.java:767) at java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:658) at java.util.concurrent.ThreadPoolExecutor$DiscardOldestPolicy.rejectedExecution(ThreadPoolExecutor.java:1813) ... {code} |
The following error occurs when the JBI message processor thread pool is exhausted, and no more messages is processed:
{code} Exception in thread "petals-bc-soap -JBI Acceptor Thread #2" java.lang.StackOverflowError at sun.misc.Unsafe.compareAndSwapInt(Native Method) at java.util.concurrent.locks.AbstractQueuedSynchronizer.compareAndSetState(AbstractQueuedSynchronizer.java:537) at java.util.concurrent.locks.ReentrantLock$NonfairSync.lock(ReentrantLock.java:183) at java.util.concurrent.locks.ReentrantLock.lock(ReentrantLock.java:262) at java.util.concurrent.ThreadPoolExecutor.addIfUnderMaximumPoolSize(ThreadPoolExecutor.java:718) at java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:657) at java.util.concurrent.ThreadPoolExecutor$DiscardOldestPolicy.rejectedExecution(ThreadPoolExecutor.java:1813) at java.util.concurrent.ThreadPoolExecutor.reject(ThreadPoolExecutor.java:767) at java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:658) at java.util.concurrent.ThreadPoolExecutor$DiscardOldestPolicy.rejectedExecution(ThreadPoolExecutor.java:1813) at java.util.concurrent.ThreadPoolExecutor.reject(ThreadPoolExecutor.java:767) at java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:658) at java.util.concurrent.ThreadPoolExecutor$DiscardOldestPolicy.rejectedExecution(ThreadPoolExecutor.java:1813) at java.util.concurrent.ThreadPoolExecutor.reject(ThreadPoolExecutor.java:767) at java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:658) at java.util.concurrent.ThreadPoolExecutor$DiscardOldestPolicy.rejectedExecution(ThreadPoolExecutor.java:1813) ... {code} Reproducer, with a service proxy based on the BC SOAP - configure the BC SOAP with: {code} <ns2:acceptor-pool-size>2</ns2:acceptor-pool-size> <ns2:processor-pool-size>2</ns2:processor-pool-size> <ns2:processor-max-pool-size>4</ns2:processor-max-pool-size> {code} - using SOAPUI, send several request concurrently (~15 requests should be sufficient to get the error |
| Status | New [ 10000 ] | Open [ 10002 ] |
| Assignee | Christophe DENEUX [ cdeneux ] |
| Status | Open [ 10002 ] | In Progress [ 10003 ] |
| Status | In Progress [ 10003 ] | Resolved [ 10004 ] |
| Resolution | Fixed [ 1 ] |
| Link |
This issue blocks |
| Description |
The following error occurs when the JBI message processor thread pool is exhausted, and no more messages is processed:
{code} Exception in thread "petals-bc-soap -JBI Acceptor Thread #2" java.lang.StackOverflowError at sun.misc.Unsafe.compareAndSwapInt(Native Method) at java.util.concurrent.locks.AbstractQueuedSynchronizer.compareAndSetState(AbstractQueuedSynchronizer.java:537) at java.util.concurrent.locks.ReentrantLock$NonfairSync.lock(ReentrantLock.java:183) at java.util.concurrent.locks.ReentrantLock.lock(ReentrantLock.java:262) at java.util.concurrent.ThreadPoolExecutor.addIfUnderMaximumPoolSize(ThreadPoolExecutor.java:718) at java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:657) at java.util.concurrent.ThreadPoolExecutor$DiscardOldestPolicy.rejectedExecution(ThreadPoolExecutor.java:1813) at java.util.concurrent.ThreadPoolExecutor.reject(ThreadPoolExecutor.java:767) at java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:658) at java.util.concurrent.ThreadPoolExecutor$DiscardOldestPolicy.rejectedExecution(ThreadPoolExecutor.java:1813) at java.util.concurrent.ThreadPoolExecutor.reject(ThreadPoolExecutor.java:767) at java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:658) at java.util.concurrent.ThreadPoolExecutor$DiscardOldestPolicy.rejectedExecution(ThreadPoolExecutor.java:1813) at java.util.concurrent.ThreadPoolExecutor.reject(ThreadPoolExecutor.java:767) at java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:658) at java.util.concurrent.ThreadPoolExecutor$DiscardOldestPolicy.rejectedExecution(ThreadPoolExecutor.java:1813) ... {code} Reproducer, with a service proxy based on the BC SOAP - configure the BC SOAP with: {code} <ns2:acceptor-pool-size>2</ns2:acceptor-pool-size> <ns2:processor-pool-size>2</ns2:processor-pool-size> <ns2:processor-max-pool-size>4</ns2:processor-max-pool-size> {code} - using SOAPUI, send several request concurrently (~15 requests should be sufficient to get the error |
The following error occurs when the JBI message processor thread pool is exhausted, and no more message is processed:
{code} Exception in thread "petals-bc-soap -JBI Acceptor Thread #2" java.lang.StackOverflowError at sun.misc.Unsafe.compareAndSwapInt(Native Method) at java.util.concurrent.locks.AbstractQueuedSynchronizer.compareAndSetState(AbstractQueuedSynchronizer.java:537) at java.util.concurrent.locks.ReentrantLock$NonfairSync.lock(ReentrantLock.java:183) at java.util.concurrent.locks.ReentrantLock.lock(ReentrantLock.java:262) at java.util.concurrent.ThreadPoolExecutor.addIfUnderMaximumPoolSize(ThreadPoolExecutor.java:718) at java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:657) at java.util.concurrent.ThreadPoolExecutor$DiscardOldestPolicy.rejectedExecution(ThreadPoolExecutor.java:1813) at java.util.concurrent.ThreadPoolExecutor.reject(ThreadPoolExecutor.java:767) at java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:658) at java.util.concurrent.ThreadPoolExecutor$DiscardOldestPolicy.rejectedExecution(ThreadPoolExecutor.java:1813) at java.util.concurrent.ThreadPoolExecutor.reject(ThreadPoolExecutor.java:767) at java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:658) at java.util.concurrent.ThreadPoolExecutor$DiscardOldestPolicy.rejectedExecution(ThreadPoolExecutor.java:1813) at java.util.concurrent.ThreadPoolExecutor.reject(ThreadPoolExecutor.java:767) at java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:658) at java.util.concurrent.ThreadPoolExecutor$DiscardOldestPolicy.rejectedExecution(ThreadPoolExecutor.java:1813) ... {code} Reproducer, with a service proxy based on the BC SOAP - configure the BC SOAP with: {code} <ns2:acceptor-pool-size>2</ns2:acceptor-pool-size> <ns2:processor-pool-size>2</ns2:processor-pool-size> <ns2:processor-max-pool-size>4</ns2:processor-max-pool-size> {code} - using SOAPUI, send several request concurrently (~15 requests should be sufficient to get the error |
| Description |
The following error occurs when the JBI message processor thread pool is exhausted, and no more message is processed:
{code} Exception in thread "petals-bc-soap -JBI Acceptor Thread #2" java.lang.StackOverflowError at sun.misc.Unsafe.compareAndSwapInt(Native Method) at java.util.concurrent.locks.AbstractQueuedSynchronizer.compareAndSetState(AbstractQueuedSynchronizer.java:537) at java.util.concurrent.locks.ReentrantLock$NonfairSync.lock(ReentrantLock.java:183) at java.util.concurrent.locks.ReentrantLock.lock(ReentrantLock.java:262) at java.util.concurrent.ThreadPoolExecutor.addIfUnderMaximumPoolSize(ThreadPoolExecutor.java:718) at java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:657) at java.util.concurrent.ThreadPoolExecutor$DiscardOldestPolicy.rejectedExecution(ThreadPoolExecutor.java:1813) at java.util.concurrent.ThreadPoolExecutor.reject(ThreadPoolExecutor.java:767) at java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:658) at java.util.concurrent.ThreadPoolExecutor$DiscardOldestPolicy.rejectedExecution(ThreadPoolExecutor.java:1813) at java.util.concurrent.ThreadPoolExecutor.reject(ThreadPoolExecutor.java:767) at java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:658) at java.util.concurrent.ThreadPoolExecutor$DiscardOldestPolicy.rejectedExecution(ThreadPoolExecutor.java:1813) at java.util.concurrent.ThreadPoolExecutor.reject(ThreadPoolExecutor.java:767) at java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:658) at java.util.concurrent.ThreadPoolExecutor$DiscardOldestPolicy.rejectedExecution(ThreadPoolExecutor.java:1813) ... {code} Reproducer, with a service proxy based on the BC SOAP - configure the BC SOAP with: {code} <ns2:acceptor-pool-size>2</ns2:acceptor-pool-size> <ns2:processor-pool-size>2</ns2:processor-pool-size> <ns2:processor-max-pool-size>4</ns2:processor-max-pool-size> {code} - using SOAPUI, send several request concurrently (~15 requests should be sufficient to get the error |
The following error occurs when the JBI message processor thread pool is exhausted, and no more message is processed:
{code} Exception in thread "petals-bc-soap -JBI Acceptor Thread #2" java.lang.StackOverflowError at sun.misc.Unsafe.compareAndSwapInt(Native Method) at java.util.concurrent.locks.AbstractQueuedSynchronizer.compareAndSetState(AbstractQueuedSynchronizer.java:537) at java.util.concurrent.locks.ReentrantLock$NonfairSync.lock(ReentrantLock.java:183) at java.util.concurrent.locks.ReentrantLock.lock(ReentrantLock.java:262) at java.util.concurrent.ThreadPoolExecutor.addIfUnderMaximumPoolSize(ThreadPoolExecutor.java:718) at java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:657) at java.util.concurrent.ThreadPoolExecutor$DiscardOldestPolicy.rejectedExecution(ThreadPoolExecutor.java:1813) at java.util.concurrent.ThreadPoolExecutor.reject(ThreadPoolExecutor.java:767) at java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:658) at java.util.concurrent.ThreadPoolExecutor$DiscardOldestPolicy.rejectedExecution(ThreadPoolExecutor.java:1813) at java.util.concurrent.ThreadPoolExecutor.reject(ThreadPoolExecutor.java:767) at java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:658) at java.util.concurrent.ThreadPoolExecutor$DiscardOldestPolicy.rejectedExecution(ThreadPoolExecutor.java:1813) at java.util.concurrent.ThreadPoolExecutor.reject(ThreadPoolExecutor.java:767) at java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:658) at java.util.concurrent.ThreadPoolExecutor$DiscardOldestPolicy.rejectedExecution(ThreadPoolExecutor.java:1813) ... {code} Reproducer, with a service proxy based on the BC SOAP - configure the BC SOAP with: {code} <ns2:acceptor-pool-size>2</ns2:acceptor-pool-size> <ns2:processor-pool-size>2</ns2:processor-pool-size> <ns2:processor-max-pool-size>4</ns2:processor-max-pool-size> {code} - using SOAPUI, send several requests concurrently (~15 requests should be sufficient to get the error |
| Status | Resolved [ 10004 ] | Open [ 10002 ] |
| Resolution | Fixed [ 1 ] |
| Status | Open [ 10002 ] | In Progress [ 10003 ] |
| Status | In Progress [ 10003 ] | Resolved [ 10004 ] |
| Fix Version/s | 5.1.4 [ 10328 ] | |
| Resolution | Fixed [ 1 ] |
| Transition | Status Change Time | Execution Times | Last Executer | Last Execution Date | |||||||||
|
|
|
|
|
|||||||||
|
|
|
|
|
|||||||||
|
|
|
|
|
|||||||||
|
|
|
|
|
|||||||||
|
|
|
|
|
|||||||||
|
|
|
|
|

The JBI message processor thread pool defines a rejection policy discarding the oldest request. IMO, it is more efficient to reject the message that can be processed, because the service consumer receives a fault instead of a timeout. If a time out occurs, we will never looking for a problem in the sizing of the pool.