INC-193153 · Issue 686294
Restored local blocking queue cache
Resolved in Pega Version 8.5.6
After update, it was not possible to bring up secondary VBD nodes after restarting. Investigation traced this to earlier work done to resolve a memory leak issue, in which stale entries for local blocking queues were removed from cache. This resulted in modifying the queue listener logic to use "cache.getQueueIfPresent(jobId)" instead of "cache.getQueue(jobId)". Because the listener was not creating the cache if it was not present and the cache which held the local blocking queue didn't have the entry for the current remote execution job ID, the caller of the remote execution on Node2 ended up in blocking state forever, waiting on the local blocking queue. To resolve this, the code has been updated to ensure the blocking queue is created and stored in the local queue cache before publishing the remote job message.
INC-195580 · Issue 684491
Delay Factor updated to allow values < 1.0
Resolved in Pega Version 8.5.6
After modifying the "Delay factor" parameter on a queue processor rule and and clicking the "Save" button, refreshing the page caused the value of the "Delay factor" parameter to change. This has been resolved by updating the delay calculation strategy to support factors < 1.0.
INC-196447 · Issue 684643
Enhancements added for external Kafka Stream Service
Resolved in Pega Version 8.5.6
To ensure data privacy when using multi-tenant Stream Service hosted on a single Kafka cluster, access will be authorized based on ACLs when a tenant sends direct requests to Kafka. In addition, all Kafka resources (topics and consumer groups) are now able to contain a prefix naming convention which can be used for tenants. This is handled through using a <env name="services/stream/name/pattern" value="{tenant.name}-{environment}-{stream.name}"/> prconfig setting to set the stream name pattern. For example, if the tenant.name is resolved into "companyname", environment into "prod1", and the stream dataset name is pyFTSIncrementalIndexer, then the Topic name created on the external Kafka will be companyname-prod1-pyFTSIncrementalIndexer.
INC-199665 · Issue 692760
Logic added to handle upper/lower case for Content-Type header value
Resolved in Pega Version 8.5.6
After Integrating REST Service with a HTTP/2 header, pzExecuteRestService was throwing a null pointer exception. This was traced to headers not being treated in a case-insensitive manner: the header contained a lower-case 'content-type' while the system was looking for 'Content-Type' (upper-case). To resolve this, logic has been added to check for both 'content-type' and 'Content-Type' keys.
INC-207236 · Issue 706817
QueueProcessor timeout made configurable
Resolved in Pega Version 8.5.6
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-212753 · Issue 707312
Log4j file security vulnerability issue addressed
Resolved in Pega Version 8.5.6
A zero-day vulnerability was identified in the Apache Log4j logging software which could potentially allow malicious actors to take control of organizational networks. Pega has immediately and thoroughly addressed this issue. More information can be found at https://docs.pega.com/security-advisory/security-advisory-apache-log4j-zero-day-vulnerability .
INC-
184212 · Issue 677286
Updated AgentName handling for QueueItemID
Resolved in Pega Version 8.6.4
A report was showing as scheduled but no mail was received when it was supposed to run. Investigation showed this was due to the reports being corrupted, leading to the flow skipping the necessary Queue-For-Agent method. While there was a workaround of doing a "Save As" to create a new version of the report, this has been addressed by setting the agentName before saving to the database to handle missing agentName cases and ensure pyAgentname is always populated when pzQueueItemID is not empty.
INC-195586 · Issue 698861
Updated access group handling for CurrentWorkPool property
Resolved in Pega Version 8.6.4
After update, the pxThread.pxCurrentWorkPool property was not properly populated in App Requestors when the activity was called from Rest service. This was caused by a difference in the authentication check after a security modification, and has been resolved.
INC-197479 · Issue 695025
ClusterAndDBCleaner updated to with with Oracle query limits
Resolved in Pega Version 8.6.4
The pzClusterAndDBCleaner job scheduler was not able to cleanup data in pr_op_data session table due to the delete query formed to clean up this table throwing "ora-01795 maximum number of expressions in a list is 1000 oracle 19c" exception. This has been resolved by splitting requestor IDs into batches of 1000.
INC-197964 · Issue 707875
Engine updated to default to hard references in cache
Resolved in Pega Version 8.6.4
A scheduled campaign executing at midnight was failing with a null pointer error message. Rerunning the same campaign during the day did not encounter any issues. Investigation showed there was a race condition that occurred under heavy load and parallel executions which caused soft references to be garbage collected while a thread was accessing the same soft references. This has been resolved by updating the following DSS so the system will default to using hard references: Ruleset: Pega-Engine Purpose: prconfig/cache/enablesoftreferences/default Value: false