SR-C58201 · Issue 402953
Hazelcast thread locking improved
Resolved in Pega Version 8.1.1
The system was hanging after attempting Hazelcast locking. Tracing showed threads that seemed to be waiting for the system lock to become available so that they could acquire a database lock. This was caused by an implementation issue in LockUtils that did not wait to ensure that the distributed map's lock was released if it wasn't yet available. To correct this, debug logging has been added to the "LockUtils" class which will print when the lock is acquired or released along with the associated stacktrace. In addition, a wait function has been added to the Distributed Map lock to improve the timing between release and grab.
INC-170721 · Issue 658959
Stricter criteria set for reusing an SSAExecutionContext
Resolved in Pega Version 8.5.5
After a Strategy was configured with an existing Proposition Filter and the Explain Results box was unchecked, executing the strategy resulted in the error "Stack is empty, cannot pop any more frames". Investigation showed that the SSAExecutionContext object was reused across the two criteria evaluation in Proposition Filter rule: this works well as long as the input is the same across the two evaluations. However, the SSAExecutionContext object also stashed a reference to a PublicAPI object which became stale in the second evaluation and caused the empty stack issue for the given scenario. This has been resolved by providing stricter criteria in deciding when an SSAExecutionContext can be reused or not in the case of Proposition Filter rule.