Loading...
Loading...
When forms with large volumes of historical data are loaded for the first time, the system may run out of memory and crash due to excessive usage from journal fields (e.g., comments, work notes) during Activity Stream history set creation. This OutOfMemoryError does not occur every time but is more likely when other processes are consuming memory and a record with many journal entries is opened, especially if the property glide.history_set.pull_journal_entries_from_journal_table is disabled or missing.
Steps to reproduce: Note: The following script is intended for testing purposes only. Since it adds 8,000 comments to an Incident, please run it ONLY on a sub-production or test environment, NOT IN PRODUCTION . 1. Verify that the property glide.history_set.pull_journal_entries_from_journal_table is either not present in the instance or is explicitly set to false. 2. Create a test Incident and record its sys_id. 3. Run the following script in "Scripts-Background" to add multiple comments and work notes to the test Incident. for (var i = 0; i < 4000; i++) { var gr = new GlideRecord('incident'); if (gr.get(<sys_id_of_incident>)) { // Append a random comment gr.comments = generateRandomText(1000); // smaller for safety gr.work_notes = generateRandomText(1000); gr.update(); } } function generateRandomText(length) { var characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789 '; var result = ''; var charactersLength = characters.length; for (var i = 0; i < length; i++) { result += characters.charAt(Math.floor(Math.random() * charactersLength)); } return result; } 4. Open the Incident form and observe the load time, noting any slowness caused by memory contention. Additional Observation: 1. Enable the property glide.history_set.pull_journal_entries_from_journal_table by setting its value to true. 2. Delete all sys_history_set records for the test Incident created by the above script (filter using id = <incident_sys_id>). 3. Observe that the history set is generated more efficiently.
This problem is currently under review. To receive notifications when more information is available, subscribe to this Known Error article by clicking the Subscribe button at the top right of the article. Meanwhile, please apply the following workaround.
Steps: In the Navigation filter, search for sys_properties.list. In the System Property list view, click the NEW button. A new form will open. Fill in the fields as follows: Name: glide.history_set.pull_journal_entries_from_journal_table Type: True | False Value: true Click Submit to save the record. FAQ: 1. What happens when the property is set to true? A. When enabled, the system truncates journal field values exceeding 4,000 characters before storing them in heap memory for comparison. This reduces memory usage and helps prevent contention issues. 2. Under what conditions is this issue more likely to occur? A. The issue is more likely when: A form with extensive history is opened for the first time, triggering the full activity stream to be generated. The system is processing a high volume of journal entries from the sys_journal_field or sys_audit tables. The property glide.history_set.pull_journal_entries_from_journal_table is set to false, requiring the system to compare data across both tables.
PRB1938364
Click on a version to see all relevant bugs
ServiceNow Integration
Learn more about where this data comes from
Bug Scrub Advisor
Streamline upgrades with automated vendor bug scrubs
BugZero Enterprise
Wish you caught this bug sooner? Get proactive today.