INC-209387 · Issue 706151
Security updates
Resolved in Pega Version 8.7.2
Security updates have been made relating to rulesets using allow lists, checks for Java code injections, SAML-based SSO code, and supporting SFTP as part of the validation in the pxValidateURL rule.
INC-210346 · Issue 709711
Check added to ensure Job scheduler executed only once
Resolved in Pega Version 8.7.2
When Node A and Node B woke up at the same time to start executing the job scheduler, both were attempting to update the "now processing" node ID with their ID but only Node A succeeded. This caused Node B to generate a "lock already held" exception, then Node B would try to release the lock and update "now processing" node ID. If Node A released the lock before Node B tried to, then Node B updated the "now processing" nodeID and executed the scheduler, causing it to be run twice. This double-run has been resolved by adding a check for whether the job scheduler has been executed recently before starting it.
INC-211917 · Issue 709323
Scheduled-item operations performed in shared context
Resolved in Pega Version 8.7.2
Scheduled items were not getting processed either by DelayedItemsDataFlowService data flow or by reverting to the pzDelayedQueueProcessorSchedule Job Scheduler, and the number of scheduled items in the pr_sys_delayed_queue table continued to grow even though DelayedItemsDataFlowService showed the processed record count to be increasing. Because the Admin Studio portal was not equipped to show the scheduled record count for the tenant layer in a multi-tenant environment, only the scheduled record count for the shared layer was shown. This has been resolved by updating the system to perform scheduled-item operations in shared context.
INC-213502 · Issue 711796
Updated context handling for DxAPI Perform Assignment lock
Resolved in Pega Version 8.7.2
The DxAPI Perform Assignment was generating the error "ValidationMessage:Unable to unlock GROUP-DISPUTES-WORK". This has been resolved by adding an update to ensure proper context is set for getting an additional lock handle.
INC-213610 · Issue 708114
Job Scheduler explicitly unlocked after nodes restart
Resolved in Pega Version 8.7.2
If a job scheduler was in running state and the utility nodes were restarted, the background processing nodes were not coming up and resuming as expected and PersistentJobCleanupFactory:PresentMembersJobCleanup was throwing a stale execution exception. Investigation showed locks were not being removed from the database for the job scheduler when the restart was performed (noted in pegadata.pr_sys_locks table), preventing further runs. This has been resolved by adding an explicit lock removal process for this condition.
INC-213763 · Issue 708110
Job Scheduler explicitly unlocked after nodes restart
Resolved in Pega Version 8.7.2
If a job scheduler was in running state and the utility nodes were restarted, the background processing nodes were not coming up and resuming as expected and PersistentJobCleanupFactory:PresentMembersJobCleanup was throwing a stale execution exception. Investigation showed locks were not being removed from the database for the job scheduler when the restart was performed (noted in pegadata.pr_sys_locks table), preventing further runs. This has been resolved by adding an explicit lock removal process for this condition.
INC-213821 · Issue 708314
QueueProcessor timeout made configurable
Resolved in Pega Version 8.7.2
Queue Processor timeouts were causing thread interruptions, causing items to be processed more than once. To resolve this, the QueueProcessor kafka-write timeout has been made configurable via the DASS Pega-Engine:queueprocessor/dataset/write/timeoutMs
INC-215937 · Issue 713771
Added exception handling for PageGroup alerts
Resolved in Pega Version 8.7.2
Queue items were going to the broken queue if there was an issue fetching the alert configuration from the Queue Processor rule. The error "java.lang.IllegalArgumentException: Alert id cannot be blank" was seen. This has been resolved by adding exception handling while gathering alerts from PageGroup so that a malformed alert configuration will not cause overall failure of a processed message, but instead an empty alert will be returned if configuration-data is corrupted.
INC-217781 · Issue 714183
JobScheduler updated to better handle DST change
Resolved in Pega Version 8.7.2
If a job scheduler was set to run on a weekly basis between 1 AM CET and 3 AM CET, the DST time change caused the job scheduler to skip that week. During DST, there is one 23-hour day in the year, and if execution time is set to that missing hour the system was throwing an IllegalArgumentException for the non-existent date. This has been resolved by adding a check that verifies whether a given date does exist; if it does not exist, the system will postpone execution time by one hour.
INC-218340 · Issue 714661
Override added to delete records for a stream dataset after processing
Resolved in Pega Version 8.7.2
Kafka data was accumulating for a Stream data set due to huge volume of inbound calls. This has been resolved by adding support to override pyDeletedProcessed through a DASS in order to remove the records for a particular stream dataset (topic) as soon as they are processed by Pega.