Helsinki Patch 11

The Helsinki Patch 11 release contains fixes to these problems.

Helsinki Patch 11 was released on June 9, 2017.
Build date: 06-05-2017_1744
Build tag: glide-helsinki-03-16-2016__patch11-05-19-2017

ServiceNow QPP targets and patches are immediately available. Users do not need to request an entitlement to schedule an upgrade to these versions. For example, entitlements are not required to upgrade to Helsinki Patch 11 (Q3 2017 QPP target) or Istanbul Patch 8 (patch).

For more information about how to upgrade an instance, see Upgrade to Helsinki.

For more information about the release cycle, see the ServiceNow Release Cycle. For a downloadable, sortable version of Helsinki fixed problems, see KB0598266.

Note: This version is approved for FedRAMP.

Security-related fixes

Helsinki Patch 11 includes fixes for security-related problems that affected certain applications and the ServiceNow platform. We recommend that customers upgrade to this release for the most secure and up-to-date ServiceNow features. For more details on security problems fixed in Helsinki Patch 11, refer to KB0623092.

Notable fixes

The following problems and their fixes are ordered by potential impact to customers, starting with the most significant fixes.
Problem Short description Description Steps to reproduce

UI Components

PRB656644

KB0564218

Font size in TinyMCE HTML editor in Geneva is not consistent with WYSIWYG standard Prior to Geneva, text in the TinyMCE HTML editor defaulted to 10pt. Then, if the text was updated to 10pt through the font size option, it remained the same size as the default one (this is consistent with WYSIWYG). Now in Geneva, the default text starts as (seemingly) 10pt, but if the text is updated to 10pt it looks like it has been updated to 14pt. This is not consistent with WYSIWYG.

Refer to the listed Known Error KB article for details.

Lists

PRB668634

Related lists do not load when glide.ui.list_v3.related_list is set to 'true'
  1. Set the glide.ui.list_v3.related_list system property to true.
  2. Make sure you are in tabbed mode.
  3. Go to the Incident table.
  4. Go to any record.
  5. Ensure you only have one related list on the form.

Notice the related list does not load.

Survey Management

PRB701182

KB0597922

The 'Cancel Expired Assessments' job cancels surveys before the due date if the date format is dd/MM/yyyy If you change the date format of your Helsinki instance to dd/MM/yyyy, the 'Cancel Expired Assessments' Job performs incorrect date comparisons, which causes surveys that are not yet due to be cancelled.

Refer to the listed Known Error KB article for details.

Discovery

PRB725029

CIs are being created with the name [OBJECT OBJECT].[OBJECT OBJECT] Configuration items are being created with the name "[OBJECT OBJECT].[OBJECT OBJECT]"
  1. Connect to a MID server.
  2. Perform Quick Discovery on any of your Windows CIs.

Note that the Discovery log shows "Exactly one match was found in the CMDB: [OBJECT OBJECT].[OBJECT OBJECT]".

All other fixes

Problem Affected plugins Short description Description Steps to reproduce

Authentication

PRB654728

Patching or update results in SAML2 installation exit activation, even though MultiSSO is active

Change Management

PRB718562

KB0621797

Change Management - Standard Change Catalog Some base system record producers have a read-only protection policy that prevents them from being renamed
There are 3 record producers in Change > Standard Change > Standard Change > Template Management:
  • Propose a new Standard Change Template
  • Modify a Standard Change Template
  • Retire a Standard Change Template

These record producers have a read-only protection policy that prevents users from changing the record producer names.

Refer to the listed Known Error KB article for details.

Change Management

PRB704606

Change Management - Standard Change Catalog Standard Change Proposal workflow is not set up correctly

The default Standard Change Proposal workflow has a Run Script activity called Validate Categorization, and the "Success" condition has the following condition:

activity.answer=='Success'

The condition should be: activity.answer == 'success'

The StdChangeUtils script will only return lowercase values.

Contextual Search

PRB725034

Contextual search fails Contextual search fails, and exceptions appear in the logs.
  1. Go to incident.do.
  2. Paste the following string in the Short description field:

    HSRVBWD1 Disk Free: C:\\ 4 % (Free Space) is below the error limit of 5 % in Free Space

The contextual search fails, and exceptions appear in the logs.

Contextual Search

PRB910622

Knowledge Management V3 Relevancy score is getting calculated as -1 when searching select articles from the knowledge homepage.

Knowledge base search is not working as expected. Though search results are ordered by the relevance/rank, records with higher rank are given a relevancy number of -1, which puts them at the very bottom of the search results that can span multiple pages.

This issue occurs on the knowledge reach results page when the property glide.knowman.search.show_relevancy is set to true.

  1. Go to the property glide.knowman.search.show_relevancy and set its value to true (/nav_to.do?uri=sys_properties.do?sys_id=99b08383d713210013ab49547e610307).
  2. Create and publish a knowledge article with the short description "Test of PRB910622 - 07 JUNE 2017 Workflow states EXTERNAL KNOWLEDGE BASE":
  3. Navigate to Knowledge > Create New.
    • Short description: "Test of PRB910622 - 07 JUNE 2017 Workflow states EXTERNAL KNOWLEDGE BASE"
    • Knowledge base: Knowledge
    • Right-click on the header and click Save.
    • Click Publish.
  4. Navigate to Knowledge > Homepage.
  5. Search for "Test of PRB910622 - 07 JUNE 2017 Workflow states EXTERNAL KNOWLEDGE BASE".

Notice that the "Relevancy" value for the knowledge article is -1. If you reduce the search on step 4 for "Test of PRB910622" the issue will no longer be reproducible.

Core Platform

PRB717578

When domain separated is enabled, form caches should key entries more effectively ActionManager (UI actions) should define syscache_ui_action as the private cacheable instead of sys_ui_action. In addition, ActionManager domain selection should retrieve the domain from the record, not the session. Domains for the sys_choice cache should also be implemented correctly.

Core Platform

PRB753517

GlideWrapFactory is using the wrong scope

Core Platform

PRB963801

When a glide_list field is made from choice entries instead of referenced records, forms do not always load completely

glide_list fields are most commonly used to refer to records in another table. For example, the 'watch list' field lists user records ("users") who should be notified about updates to a ticket.

If a glide_list is not configured to reference any table, it gets its values from sys_choice records. Users can configure choices for the field, and then from the table's form, they can select one or more of the choices to be included in the list.

This type of glide_list is susceptible to a concurrency issue with cached choice lists. It works directly with the cached choice list, so if two threads run this same code at the same time, they can corrupt the cached list and lead to NullPointerExceptions, for example. This can break the form that the glide_list is part of.

Core Platform

PRB913389

List field and slushbucket do not retain language translations If a display field is a translated text/field which puts the values into a list field to be displayed in a many to many list, the text/field is not translated. A many to many list will have values in the list that are not translated into the current session language. A many to many list looks like the pop up when you click on the gear wheel in the corner of list.
  1. Navigate to an incident, right-click the header, and click Form layout to add a new field:
    • Name: KB
    • Type: list
    • Refers to: kb_knowledge_base table
  2. Change the language to French.
  3. Navigate to Bases de connaissances > Bases de connaissances. Check that you have a translation for the knowledge base name.
  4. Open an incident, and choose a value for the field KB and save.
  5. In the same incident, click the lock on the KB field > Add/Remove Multiples.
  6. Move one value in French from the left to the right.

    Note the value in the right column is in English, and there are no results when you search in French.

  7. Save.

The value in the KB field is showing in English and not in French.

Discovery

PRB642152

For large discoveries, the logs are filled with errors such as "No discovery source passed to ObjectSource"

Discovery

PRB690012

KB0598562

CIM_ERR_INVALID_PARAMETER: CIM_HostedShare warning is displayed during storage Discovery The warning "CIM_ERR_INVALID_PARAMETER: CIM_HostedShare is displayed during storage discovery" appears when discovering specific CIM servers.

Discovery

PRB709239

KB0622394

Sensor error when processing Windows - Storage : TypeError: Cannot convert null to an object When the ProviderName from the WMI property 'Win32_MappedLogicalDisk.ProviderName' is empty, the 'Windows - 2008 Storage' probe payload, the sensor will get the error: "TypeError: Cannot convert null to an object"

Refer to the listed Known Error KB article for details.

Discovery

PRB718623

Windows credentials with special characters do not work when used by new PowerShell implementation (affects test credential and WinRM) The new PowerShell API, which is used by WinRM and test credential, does not correctly handle Windows credentials where there is a PowerShell-specific special character such as "$" in the username or password. This will cause authentication failures with targets even though the credentials are correctly defined.
  1. Create a windows credential for an associated device that has a special character such as "$" as part of the password.
  2. Run test credential against the device.

Notice the credential test fails, even though this is the correct credential. As part of verifying the credential is correct, running a normal quick discovery on the target (as long as WMI is being used and not WinRM). This should result in a successful authentication and discovery of the device, and there should be an IP affinity created with the credential that failed the test in step 2.

Discovery

PRB725029

KB0622711

Core Automation, com.snc.discovery.ip_based CIs are being created with the name [OBJECT OBJECT].[OBJECT OBJECT] Configuration items are being created with the name "[OBJECT OBJECT].[OBJECT OBJECT]"
  1. Hop on to an instance and connect to a MID server.
  2. Perform Quick Discovery on any of your Windows CIs.

Note that the Discovery log shows "Exactly one match was found in the CMDB: [OBJECT OBJECT].[OBJECT OBJECT]".

Discovery

PRB733653

Linux - Storage sensor for computers with lots of disks will run instance node out of memory and cause a restart Node performance is noticeably affected when running large sensors.

Discovery

PRB905030

KB0622114

Discovery source attribute is not populated for Windows cluster and Hyper-V CI When Discovery creates a 'Windows Cluster' CI in the cmdb_ci_win_cluster table, the sensor does not fill in the discovery_source field as "ServiceNow". It is inserted with empty value. CIs created by Discovery on cmdb_ci_hyper_v_cluster and cmdb_ci_hyper_v_server also have an empty discovery_source as well.

Refer to the listed Known Error KB article for details.

Domain Support

PRB734803

Optimize domain hierarchy change updates Changing a domain hierarchy uses inefficient queries. These should be optimized for scalability and performance.
  1. Create a domain-separated table with many records (e.g. 100 million or more) and assign most of them to the global domain.
  2. To trigger the domain path updater job, change the domain hierarchy.
This takes over 10 minutes to complete, and other operations to the table are blocked.

Domain Support

PRB852436

Forced update on domain record results in unnecessary recalculations of the domain code and path Changing the domain's code and path can potentially turn into an expensive operation that updates millions of records in other tables.

Domain Support

PRB674160

SLA Record domain is not honored when creating new records with the 'sys_domain' value populated When creating a new record with the 'sys_domain' value set to a specific domain, this domain is not honored for picking all the processes/data. Instead, the user domain session is used.

Domain Support

PRB756920

KB0622773

Domain Support Table upgrades and the Domain Hierarchy Validation job that invoke domain path validation on large tables cause database performance issues When the Domain Hierarchy Validation job runs its nightly validation (also seen on table upgrades) on large tables that are domain separated, severe performance issues can occur on the database such as longer response times and semaphore exhaustion across all nodes.

Refer to the listed Known Error KB article for details.

Filters

PRB744029

For instances running Oracle DB, when glide.secondary.query.sysid is set to true, DB errors occur when filtering against tags Queries using the Tags feature return a "column ambiguously defined" error when the glide.secondary.query.sysid property is enabled on an instance using Oracle.

On an instance running Oracle DB:

  1. Set the glide.secondary.query.sysid property to true.
  2. Create some tags from any task record.
  3. Run a query against the tag.

A DB syntax error occurs: "column ambiguously defined".

Incident Management

PRB756822

KB0622353

Incident When a resolved incident is reopened, the Resolved By and Resolved fields are not cleared or updated

When an incident is resolved for the first time, the 'Resolved' and 'Resolved by' fields are populated.

If the incident is reopened, these fields do not get cleared. Then, when the incident is once again moved to the 'Resolved' state, the original 'Resolved' and 'Resolved by' values still persist. These fields are not updated with new values.

Refer to the listed Known Error KB article for details.

Knowledge Management

PRB962869

Knowledge Management V3 Knowledge search text is no longer translatable/translated by default In earlier Helsinki versions, the knowledge search box ("Search Knowledge") on the Knowledge homepage is translated by default. In Helsinki Patch 10 and later releases, the search box says "Search (minimum 3 characters)". This text cannot be translated.

In a Helsinki Patch 10 and later instance, navigate to /$knowledge.do.

The search box has the text "Search (minimum 3 characters)", instead of "Search Knowledge" which is translated by default depending on which language plugin is activated.

Knowledge Management

PRB673022

Knowledge Management V3 Output warning message occurs when opening the New Knowledge Record form without admin role When a non-admin user tries to create a kb_knowledge article, they will notice errors in the logs.

Knowledge Management

PRB829734

Knowledge Management V3 CMS - In Knowledge, the 'Copy permalink' link does not display upon page load of a KB article When a knowledge article is loaded through the CMS, the 'Copy Permalink' and other elements are cut off. These can only be accessed by tabbing through to the bottom of the page.
  1. In an OOB instance, go to the ESS.
  2. Click Knowledge.
  3. Search for an article and click on it.

The "Copy permalink" link does not appear.

Knowledge Management

PRB670593

Knowledge Management V3 In IE11, the scroll bar overwrites the content displayed with Knowledge search from Incidents In IE11, the top-right of kb_view and kb_find pages are covered by IE's scroll bar.
  1. Navigate to Contextual Search > Table Configuration.
  2. Select the incident.
  3. Uncheck active.
  4. Create an incident. In the short description, type system, then select the knowledge book at the end of the field.

Notice the vertical scrollbar overlaps on the far right.

Knowledge Management

PRB754840

Social Q&A Favorite button is broken on Knowledge questions The Favorite button is broken on Knowledge questions. However, the button outline appears when a user hovers over the space next to the back button on the form header.

Live Feed

PRB667106

Oracle DB - Connect/Live Feed throws exception For instances using Oracle DB, Connect/Live Feed throw an exception: "Syntax Error or Access Rule Violation detected by database (ORA-00932: inconsistent datatypes: expected - got CLOB)."

MID Server

PRB671308

KB0598970

Using SFTP to import files specified by relative path often fails

If a user imports data to an instance using SSH File Transfer Protocol and the specified paths are relative, the import often fails. The State in the progress bar shows Complete, but the completion code displays the following error:

com.glide.db.impex.datasource.DataSourceException: java.io.IOException: Problem opening a handle to remote file: Issued_moves.xls

Use SFTP to transfer files or load data into an instance using relative paths.

Persistence

PRB719141

The record watcher fails upon a predicate pair between <x>ISEMPTY and <x>ISNOTEMPTY The record watcher structure is defective when the following two predicates are registered:
  • <field>ISNOTEMPTY
  • <field>ISEMPTY

or, in the general case:

  • <field>=<x>
  • <field>!=<x>

This issue occurs on single-score reports on a dashboard, with Live Update enabled. One counts unassigned incidents, and the other counts assigned incidents. When an incident is assigned, or the assignee is removed, both reports are incremented or decremented via Live Update. The counts are reflected accurately only when the page is refreshed.

  1. Create a single-score report for unassigned incidents.
    • Table: Incident
    • Aggregation: Count
    • Condition: Assigned to is empty
  2. Create a single-score report for assigned incidents.
    • Table: Incident
    • Aggregation: Count
    • Conditions: Assigned to is not empty
  3. Open a PA dashboard and add a tab.
  4. Click Add Content.
  5. Select Reports > Incident, and then the name of the report created in step 2. Add it to the page.
  6. Repeat step 6 for the report created in step 3.
  7. Click Edit, and then the cogwheel on each widget ("Edit Widget"). Check Show real-time updates.
  8. Open the incident list in a separate tab, find an unassigned incident, and add an assignee.

    Observe that the count increases for both widgets (you would expect unassigned to decrease).

  9. Find an assigned incident and remove the assignee.

    Observe that the count decreases for both widgets (you would expect unassigned to increase).

  10. Refresh the dashboard.

Note that counts are now reflected accurately.

Platform Performance

PRB945880

Clicking View Map on a Service Mapping Business Service form triggers cache flush and instance becomes unusable

Platform Security

PRB711306

Contextual Security Excessive number of records on 'sys_user_role_contains' table can cause the RoleManagementListener.java to stall an upgrade - duplicate of PRB626808

Reporting

PRB696928

Interactive filters are broken when glide.ui.escape_all_script is true in canvas/legacy dashboard

Server Side Scripting

PRB634999

Dot-walking through a reference to tags field results in Syntax Error or Access Rule Violation
If a user configure a list to add a dot-walk to the tags field of a reference, the list no longer displays properly. The user receives these listed errors when viewing the list:
  • MySQL: Syntax Error or Access Rule Violation detected by database (Unknown column 'task4.sys_tags' in 'field list')
  • Oracle: Syntax Error or Access Rule Violation detected by database (ORA-00904: "TASK1"."sys_tags": invalid identifier)

Service Desk: Call

PRB724388

KB0598601

Service Desk Call Service Request from a New Call is not created, and the screen is blank if the description is long and contains special characters New Call passes parameters via URL to create Service Requests. If the New Call has long description text that contains special characters and TinyURL is invoked, it fails to encode them. The Service Request is not created, and a blank screen instead of the shopping cart is displayed on the first step of this process.

Refer to the listed Known Error KB article for details.

Service Level Agreement (SLA)

PRB898575

Displaying the 'Repair SLAs' UI action can be slow when a large number of contract SLAs is defined The condition to display (or not display) the UI action link can trigger the compacting or expanding of rows. However, only a count is needed, not the actual records.

Service Level Agreement (SLA)

PRB709382

KB0622898

SLA "Repair SLAs" - Repairing SLAs does not work when SLA Definitions are in domains different than the current one On a domain separated instance where the SLA Definition records have been created/updated to be in specific domains, using "Repair SLAs" will only work if your current session domain is the same as the domain of the Task (or Tasks) that the SLAs are being repaired for.

Refer to the listed Known Error KB article for details.

Service Mapping

PRB832751

Under certain circumstances, Discovery processing is very slow or stuck When Service Mapping discovery is run for multiple services (or all services), the discovery job may slow down due to the service recomputation jobs being processed. As a result, discovery tasks can time out.

Service Mapping

PRB922651

Pattern Debugger: 'Retrieve file' and 'Run Command' from a step inside a library does not work when using variables

An error occurs, and the variable appears to be evaluated as empty. These do work when a constant expression is used (simple string).

For example, if the variable config_directory is "/tmp" and the following is used: $config_directory + "/a.conf", then retrieving the file returns an error. Otherwise, if "/tmp/a.conf" is used, then the file is returned as expected.

  1. Debug some pattern.
  2. From inside a library step, add parse file or parse command step.
  3. Add an expression (path or command) using variables.
  4. Click Retrieve file or Run Command.

An error will appear.

Service Portal

PRB724097

Read-only referenced variables cannot be previewed by users who have read access to the referenced record Clickthrough on reference fields in the Service Portal are disabled, even if the system property glide.sc.variable.reference.clickthrough is set to true.
  1. Go to any catalog item (e.g. Blackberry).
  2. Add a reference variable to the item and point it to a table such as sys_user.
  3. Make the field be read-only via a catalog UI policy dependent on "replacement" variable if "yes" is selected as an option.
  4. In the Service Portal, open the catalog item.
  5. Select a value in the reference field (any user).
  6. Select yes as the "replacement" option. (This will turn the reference field to read-only).

Expected behavior: Even if the field is read-only, the clickthrough property should allow the user to open reference field variables.

Actual behavior: The property is ignored and the reference field clickthrough is disabled via CSS.

Update Sets

PRB963605

Extremely large SysUpdateLog prevents update set from committing Users cannot commit update sets that contain workflows.
  1. Create 200,000 blank sys_variable_value records.
  2. Import a remote update set with a published workflow.
  3. Preview the remote update set.
  4. Commit the remote update set

Expected result: The update set commits with no errors.

Actual result: The Update set does not commit properly and has errors in the localhost log similar to "FAILED TRYING TO EXECUTE ON CONNECTION".

Upgrade Engine Issues

PRB951491

Collision detector loads update names for sys_metadata_delete records, which as a result can run the node low on or out of memory If an instance has a high number of sys_metadata_delete records (e.g. 6 million), the node suffers from performance degradation.

Web Services

PRB733418

KB0621503

SOAP insertMultipleResponse yields inconsistent results when invoked simultaneously
  1. Ensure that the Insert Multiple Web Service plugin is active.

    For more information, see Activate a plugin.

  2. Install a SOAP client such as SoapUI and launch it.
  3. Prepare two requests for https://<instance name>.service-now.com/imp_location.do?WSDL under "insertMultiple" and ensure that pre-emptive authentication is set on both requests.

    imp_location comes with a base system transform map, but any table with a transform map will work.

  4. Execute REQUEST 01.
  5. While REQUEST 01 is still executing and is not complete (very important), at the same time execute REQUEST 02.

Observe that REQUEST 02 completes but the response is empty while REQUEST 01 completes with a good response. Note that REQUEST 01 includes 202 response items.

Fixes included with Helsinki Patch 11

* Unless any exceptions are noted, you can safely upgrade to this release version from any of the versions listed below. These prior versions contain PRB fixes that are also included with this release. Be sure to upgrade to the latest listed patch that includes all of the PRB fixes you are interested in.