INC-151185 · Issue 618729
OptimizeForLargeResults flag set in BasicListSpecification to avoid OOM
Resolved in Pega Version 8.4.5
As soon as dedicated indexing started for a data type, the JVM heap occupation went beyond 99 and eventually caused a system crash due to an out of memory error. This was traced to the use of the BasicListSpecification API for retrieving results from the database always having the autocommit mode on, which loaded all instances for indexing into memory and interfered with PostgreSQL's cursors (query encapsulation). This has been resolved by adding an OptimizeForLargeResults flag that will be set to on in the BasicListSpecification activity before fetching the keys from the database.
INC-162649 · Issue 639396
DSS added for handling missing attachments
Resolved in Pega Version 8.4.5
When an S3 repository was configured as storage, some cases were not coming up in search and exception errors were seen in logs for a deleted attachment after every system restart/re-indexing of the search. Investigation showed these case objects were in the broken queue for pyFTSIncrementalIndexer due to a null pointer error encountered when indexing the attachment, and that the attachments were available in the repository but could not be read from the attachment repository during indexing. To resolve this, a new DSS setting has been added which allows selecting one of two behaviors: - Pega-SearchEngine indexing/distributed/fail_on_missing_attachment_file = true : broken item is generated, but with a meaningful error message. This is the default behavior - Pega-SearchEngine indexing/distributed/fail_on_missing_attachment_file = false: case is indexed, but without the problematic attachment. Error message is printed out to the logs.
INC-162649 · Issue 639400
DSS added for handling missing attachments
Resolved in Pega Version 8.7
When an S3 repository was configured as storage, some cases were not coming up in search and exception errors were seen in logs for a deleted attachment after every system restart/re-indexing of the search. Investigation showed these case objects were in the broken queue for pyFTSIncrementalIndexer due to a null pointer error encountered when indexing the attachment, and that the attachments were available in the repository but could not be read from the attachment repository during indexing. To resolve this, a new DSS setting has been added which allows selecting one of two behaviors: * Pega-SearchEngine indexing/distributed/fail_on_missing_attachment_file = true : broken item is generated, but with a meaningful error message. This is the default behavior * Pega-SearchEngine indexing/distributed/fail_on_missing_attachment_file = false: case is indexed, but without the problematic attachment. Error message is printed out to the logs.
INC-160825 · Issue 629368
Search landing page performance improved
Resolved in Pega Version 8.4.5
Performance improvements have been made for the Pega Platform search landing page by implementing timeouts for all requests to ElasticSearch when executing PegaIndexAdminImpl.getIndicesInfo() and changing all requests for single index to requests for all indexes. In addition, SearchUtils.areDummyDocumentsPresent() has been modified to get all 'dummy documents' in case there are duplicate dummy documents in the ElasticSearch indexes.
INC-174756 · Issue 650672
Queue processor correctly moves items to Broken Items
Resolved in Pega Version 8.4.5
When an exception occurred while Queue Processor processed an item, he queue item was not moved to Broken Items. The error " inconsistent datatypes: expected - got CLOB DatabaseException caused by prior exception" was generated. This has been resolved by modifying the NativeSQL builder and NativeSQLBatchExecutor to allow the batch of queries to be retried. Additional changes were also added for Oracle databases to identify the correct column types.
INC-176173 · Issue 654726
Re-indexing correctly triggers old index deletion
Resolved in Pega Version 8.7
There was no request to delete the old index when a new reindexing process was started, resulting in the new data being put into the already existing index. This was traced to a logic flaw which evaluated a condition as false under certain conditions. This 'If' condition has been fixed and simplified so the process responsible for recreating the ElasticSearch index is accessible for the scenario of reindexing an entire index without specifying include or exclude classes.
INC-178663 · Issue 659805
Updated handling for batch indexing cancellation
Resolved in Pega Version 8.7
Entries were seen in the pyBatchindex QP even when indexing was not in progress. Investigation showed that if an exception occurred during the cancel process, the pyStatusWork property in Log-Cluster-FTSIndex instance was not correctly updated and the value remained as CancelInProgress. As a result, SLP silently remained in the state of waiting for the completion of cancel operation. This has been resolved by updating the handling of the cancellation process to ensure the queue is correctly cleared and email notifications are sent as expected.
INC-186782 · Issue 674952
Re-indexing correctly triggers old index deletion
Resolved in Pega Version 8.7
There was no request to delete the old index when a new reindexing process was started, resulting in the new data being put into the already existing index. This was traced to a logic flaw which evaluated a condition as false under certain conditions. This 'If' condition has been fixed and simplified so the process responsible for recreating the ElasticSearch index is accessible for the scenario of reindexing an entire index without specifying include or exclude classes.
INC-159759 · Issue 629623
Report title displayed for empty widget charts
Resolved in Pega Version 8.4.5
Per design if there is no data to be rendered in the chart from a report added in a Widget in any portal, a static image is displayed saying "No Data to Display". However, if there were multiple reports in the Widget it caused confusion on which report was not being displayed because the image did not show the title of the report. To resolve this, an enhancement has been added to modify pzRRChartDiv to display the report Title even when there is no data in it.
INC-145293 · Issue 674901
Additional diagnostic logging added for ElasticSearch startup issues
Resolved in Pega Version 8.7
The PyIndexerState was stuck in Starting status during node initialization. This issue could occur if the filesystem became hung due to network level issue while scanning entries from /etc/mtab, resulting in a lock which was not released correctly. In order to better determine which node entry in a cluster may be responsible for the hang, an update has been made which will use a temporary virtual environment to repeat the part of the initialization phase responsible and generate additional logs for debugging. To activate this, the PegaSearch.Diagnostics logger must be set in DEBUG mode. This duplicated virtual initialization will not interrupt the normal initialization.