SR-D24900 · Issue 503875
Security update for RequestMap error logging
Resolved in Pega Version 8.4
In HttpAPI, the RequestMap contains Cookie information. In error conditions, this map gets logged. An update has been made to ensure that the Cookie value is not logged if there is an error.
SR-D27644 · Issue 497614
Uploaded attachments will receive a unique name to prevent overwriting
Resolved in Pega Version 8.4
An issue with an incorrect file being attached to a work object was traced to overlapping processes. When files are uploaded, they are first saved to common HDD directory and then read into memory and deleted from the HDD area. Files will overwrite other file carrying the same name, which is a problem if the first file is not completely uploaded and is waiting in the common directory and some other file with the same name is uploaded on top of it. To resolve this, an update has been made to ensure file names are appended with a unique identifier to distinguish between files carrying the same names and keep them from overwriting each other.
SR-D28083 · Issue 512937
DeleteOrphanStaticContent CacheConfigID populated on node startup
Resolved in Pega Version 8.4
The pzDeleteOrphanStaticContent activity which triggers to clear cache was unable to clear the files in the static content folder and in the database when the files were more than one week old. In order to correctly cleanup old static content, pzAsmCacheConfigID must be populated in py_sys_statusnodes. However, when SystemNodesDAO was introduced to populate pr_sys_statusnodes, pzAsmCacheConfigID was not populated. To resolve this, pzAsmCacheConfigID is now populated on node startup when node information is added to pr_sys_statusnodes.
SR-D28184 · Issue 497168
Verbose debug logging removed from LockUtils
Resolved in Pega Version 8.4
Verbose debug logging that had been added to the "LockUtils" class to print when the lock was acquired or released and include the associated stacktrace has now been removed as it interfered with diagnosing locking issues when threads were getting blocked.
SR-D28538 · Issue 502058
Corrected requestor status flag for direct map
Resolved in Pega Version 8.4
Numerous "Unable to create requestor" alerts were logged. This was traced to an error in HttpAPI where after retrieving the requestor from the internal requestor map directly, the requestor creation status flag was not set properly. This caused last action to post that alert instead of the correct notice of "existing requestor retrieved". This has been resolved so the flag reflects the correct status.
SR-D31066 · Issue 502254
Improved performance for "Show-HTML" in a grid with numerous controls
Resolved in Pega Version 8.4
‘Show-HTML’ was taking an excessive amount of time to render a UI for grid with a large number of controls. This was traced to the handling for generating and clearing markup creating an exponential growth situation, and has been resolved by modifying the system to remove redundant copies of a string in the markup string buffer.
SR-D31259 · Issue 502024
Passivation restoration will not continually re-queue on failure
Resolved in Pega Version 8.4
When an operator record was passivated with the Access Groups it had at that time, during restoration it attempted to validate it even if it had been removed. In this case, an Access Group with RuleSets and the Rule-Application to match was created and added to an operator record, then changes were made and the access group was removed from the operator record. The requestor was passivated and saved to the pr_sys_context table, and when the system tried to restore the requestor (the connected browser was left open), it started throwing exceptions because the access group it was trying to use no longer existed. The system continued to retry until a new session was started or the row was deleted from the pr_sys_context and the pr_page_store manually to remove the offending requestor that was now invalid. To resolve this, a layer has been added within the Passivation Daemon to better handle this failure case. NodeRequestorMgt has been updated to catch the PRRuntimeException explicitly and not re-queue activations that fail due to their root cause being an invalid configuration exception. By targeting only PRRuntimeExceptions which wrap InvalidConfigurationExceptions, this will fix this specific issue without impact to other cases.
SR-D33491 · Issue 511728
Code fragment removed to resolve CookieDisabledException
Resolved in Pega Version 8.4
After upgrade, a CookieDisabledException occurred after a post activity was invoked in the single sign-on (SSO) authentication service. This was traced to the site using the deprecated flag "redirectguests" as part of SSO-based login for mashup usecases. This flag was used to check if a cookiedisabled exception was thrown or not, and if there was no cookie, if a requestor was authenticated in first request. However, the flag has been removed as part of work done to omit the Cookie support check on Mobile App UAs. Code that supported the use of this flag remained after that work and led to the exception being generated, but has now been removed as well.
SR-D37980 · Issue 512436
Data page triggered from SLA reloads per interaction
Resolved in Pega Version 8.4
After configuring an SLA goal activity which takes one parameter from a thread-level data page with 'Reload once per interaction' checked and the source of the datapage was a data transform which used pyWorkPage.pyID to set a property value, goals were not updated as expected. If multiple cases reached their SLA goal at the same time, the first case ID was being sent as a parameter to the goal activity for all of the other case IDs. For example, if case 1, case 2, and case 3 reached their goal at the same time, the case 1 ID was passed as the goal activity parameter to case 2 and case 3. This was traced to multiple items that were getting processed in a single agent run picking up the stale data present in data page because it was not being cleared, and has been resolved by removing the Read-Only data pages after every item that is processed, ensuring that it will be reloaded the next time the data page is triggered.
SR-D38392 · Issue 510242
Daemon management agent count now includes startup agents
Resolved in Pega Version 8.4
A mismatch was observed in the agent counts given by daemon management and admin studio, with the daemon management API populating an agent count that was less than the agent count shown in admin studio. This was due to Daemon management considering only running agents excluding startup ( i.e, "Next Run Time" as not null). As startup agents and agents which have thrown exceptions do not hold any value for "Next Run Time", they were not considered. To make this count more consistent, the management Daemon will return the agent count of all running agents including startup agents.