If a Stateful Session Bean is accessed and then goes into passivation and an exception occurs, the next call to get the SFSB gets stuck in an infinite loop looking for the SFSB key in this class: ejb3/src/main/java/org/jboss/as/ejb3/cache/impl/backing/PassivatingBackingCacheImpl.java It appears PassivateTask is scheduled with a thread pool, it attempts the passivation and logs the exception that occurs, but the SFSB key does not appear to be removed when passivation fails, this results in the infinite loop above. ./src/main/java/org/jboss/as/ejb3/cache/spi/impl/PassivateTask.java
I presume this is free to take Brad?
If a SFSB fails to passivate it should not be destroyed. (Though this is allowed by spec.) This might become a configuration option in the future. Thus bug is purely about the infinite loop that occurs.
PR: https://github.com/jbossas/jboss-eap/pull/2580 In the end I decided not to destroy the bean but call postActivate() and leave it active instead. Asked Paul for review.
Tomas Hofman <thofman> updated the status of jira WFLY-5496 to Coding In Progress
Verified with EAP 6.4.5.CR1. The newly added PassivationSucceedsUnitTestCase fails intermittently, there will be a separate BZ to resolve it.
Retroactively bulk-closing issues from released EAP 6.4 cumulative patches.