Bug 1293016

Summary: [GSS](6.4.z) EJB Passivation can fail from StackOverflowError with no message logged
Product: [JBoss] JBoss Enterprise Application Platform 6 Reporter: Brad Maxwell <bmaxwell>
Component: EJBAssignee: Tomas Hofman <thofman>
Status: CLOSED CURRENTRELEASE QA Contact: Jan Martiska <jmartisk>
Severity: high Docs Contact:
Priority: high    
Version: 6.4.6CC: david.lloyd, dpospisi, jbilek, jtruhlar, lakagwu, thofman
Target Milestone: CR1   
Target Release: EAP 6.4.7   
Hardware: Unspecified   
OS: Unspecified   
URL: https://github.com/jbossas/jboss-eap/pull/2666
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
: 1301624 (view as bug list) Environment:
Last Closed: 2017-01-17 12:00:13 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 1279552, 1301624    

Description Brad Maxwell 2015-12-19 07:01:19 UTC
The call stack is below. There are some catches in some of the calls, but none are catching any of these and logging it.  The StackOverflowError is thrown up, but PassivateTask is running in a separate thread, so it appears the exception is thrown up to the JDK classes below and is never logged.

We need to catch Throwable at some point and log a message, also need to make sure that we are taking the correct action when it occurs since it failed to passivate.

java.lang.Throwable
    java.lang.Error
        java.lang.VirtualMachineError
            java.lang.StackOverflowError

org.jboss.as.ejb3.cache.spi.impl.FilePersistentObjectStore.store(FilePersistentObjectStore.java:262)
 	at org.jboss.as.ejb3.cache.spi.impl.FilePersistentObjectStore.store(FilePersistentObjectStore.java:57)
 	at org.jboss.as.ejb3.cache.impl.backing.SimpleBackingCacheEntryStore.passivate(SimpleBackingCacheEntryStore.java:162)
 	at org.jboss.as.ejb3.cache.impl.backing.SerializationGroupMemberContainer.passivate(SerializationGroupMemberContainer.java:299)
 	at org.jboss.as.ejb3.cache.impl.backing.SerializationGroupMemberContainer.passivate(SerializationGroupMemberContainer.java:51) - What is this?
 	at org.jboss.as.ejb3.cache.impl.backing.PassivatingBackingCacheImpl.passivate(PassivatingBackingCacheImpl.java:199)
 	at org.jboss.as.ejb3.cache.impl.backing.PassivatingBackingCacheImpl.passivate(PassivatingBackingCacheImpl.java:58)
 	at org.jboss.as.ejb3.cache.spi.impl.PassivateTask.run(PassivateTask.java:46)
 	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
 	at java.util.concurrent.FutureTask.run(FutureTask.java:262)
 	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:178)
 	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:292)
 	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:744)

Comment 8 Dominik Pospisil 2016-02-16 09:26:28 UTC
dev-acking - PR ready, no upstream

Comment 9 Jiří Bílek 2016-03-03 13:02:46 UTC
Verified with EAP 6.4.7.CP.CR2.

Comment 10 Petr Penicka 2017-01-17 12:00:13 UTC
Retroactively bulk-closing issues from released EAP 6.4 cumulative patches.