Status: Accepted
Owner: [email protected]
Labels: Type-Defect Priority-Medium Component-SLEE SubComponent-SLEE-Core
Version-2.3.1 Release-Type-FINAL SLEE-2.3.1.FINAL
New issue 2313 by [email protected]: SLEE: Sbb entity is detached from
AC, but receives event right after
http://code.google.com/p/mobicents/issues/detail?id=2313
Reported in mobicents-public:
http://groups.google.com/group/mobicents-public/browse_thread/thread/479a1e569a0d8ebe
First a clarification, this issue is possible with pure JAIN SLEE specs! In
concrete, if an sbb entity is handling an event for AC X and detaches from
AC Y, it may happen that an event from AC Y is routed to the sbb entity
before the actual detach is committed, this is possible because the specs
do not mandate that events in different ACs are serialized for the same sbb
entity.
Anyway, Mobicents enforces such sbb entity serialization, which means it
should not happen.
Problem: When the event router gets the sbb entities attached to the AC, to
deliver the event, it gets the sbb entity that detached in the concurrent
tx, and when it tries to load it gets blocked till that other tx commits
(sbb entity serialization in action), but when it finally gets the sbb
entity, it does not check if the attachment really exists.
Proposed solution: Crosscheck in the sbb entity state that the AC is
attached (the attach relation is present in both "entities"), checking
again in the AC won't tell it's detached, cause the AC was already loaded
into the tx. If the Ac is not in attachements of the sbb entity then skip
the sbb entity for event routing.