Uploaded image for project: 'EJB 3.0'
  1. EJB 3.0
  2. EJBTHREE-1807

StatefulTreeCache removal task can't handle already removed beans

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Critical Critical
    • 1.1.5
    • 1.1.4
    • core
    • None

      [JBoss] 01:42:41,348 ERROR [SerialSessionBean] problem removing SFSB thread
      [JBoss] javax.ejb.NoSuchEJBException: Could not find Stateful bean: ag2g4z-q52gwe-ftdr0t7i-1-ftdrio8f-2th
      [JBoss] at org.jboss.ejb3.cache.tree.StatefulTreeCache.remove(StatefulTreeCache.java:216)
      [JBoss] at org.jboss.ejb3.cache.tree.StatefulTreeCache$RemovalTimeoutTask.run(StatefulTreeCache.java:739)

      Presumably the NoSuchEJBException happens because a request thread has removed it while the removal task is looping.

      Problem is the NoSuchEJBException terminates that loop of the RemovalTimeoutTask. And an entry is left behind in the StatefulTreeCache.beans map (question: why??) that will cause the next loop of the task to try the same thing – and fail again. Effect is bean removal comes to a halt.

      To-dos:

      1) RemovalTimeoutTask needs to catch errors on each remove() call and not let them prevent handling of other beans.
      2) Need to ensure the StatefulTreeCache.beans map is cleaned up properly.

      See also http://hudson.qa.jboss.com/hudson/job/as5-soak-ejb3-buddy-async-failover/7/console-perf01/ and related reports.

              bstansbe@redhat.com Brian Stansberry
              bstansbe@redhat.com Brian Stansberry
              Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

                Created:
                Updated:
                Resolved: