Helsinki Patch 3 Hot Fix 6

Helsinki Patch 3 Hot Fix 6 provides fixes for the Helsinki release.

For Helsinki Patch 3 Hot Fix 6:
Build date: 09-27-2016_1256
Build tag: glide-helsinki-03-16-2016__patch3-hotfix6-09-23-2016

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.

Fixed problem in Helsinki Patch 3 Hot Fix 6

Problem Short description Description Steps to reproduce

User Interface (UI)

PRB713397

Safari 10.0.1 redirects users to UI11 When a user logs into their Fuji, Geneva and Helsinki instances from Safari version 10.0.1, they are redirected to UI11 instead of UI16.
  1. Set user agent string to: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_1) AppleWebKit/602.2.7 (KHTML, like Gecko) Version/10.0.1 Safari/602.2.7".
  2. Log in to the instance.

UI11 appears.

User Interface (UI)

PRB692216

KB0597917

Safari 10.x in MacOS Sierra sends users to UI11

When a user logs into certain versions of a Fuji, Geneva, and Helsinki instance using Safari 10.0 (Mac Sierra beta version), they are redirected to UI11/U14.

The user agent off of the new Safari 10 is: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12) AppleWebKit/602.1.38 (KHTML, like Gecko) Version/10.0 Safari/602.1.38".

Refer to the listed Known Error KB article for details.

User Interface (UI)

PRB713556

Using AMB Client on the parent frame from the contained frame causes a memory leak in IE11 In Geneva and forward in Internet Explorer 11, the iexplore.exe process consumes more and more memory with each page load, constituting a memory leak. The memory leak stems from the asynchronous message bus that powers many live features in UI16. When this feature is used on pages containing iframes, there is a bug in Internet Explorer 11 that causes the browser to maintain unnecessary information in memory. The fix works around the Internet Explorer 11 memory leak by handling the message bus connections differently.
  1. Open an instance using Internet Explorer 11.
  2. Open the task manager to observe Internet Explorer memory usage.
  3. Navigate to an incident form.
  4. Use the arrow keys on the top right to move between incident forms.

Notice Internet Explorer memory usage continues to climb by 10 - 20 megabytes per page. If you continue to navigate between pages Internet Explorer will crash after going through a large number of forms.

Problem Short description Description

Persistence

PRB711226

Database pool sweeper job causes hanging database connection

The database connection hangs, due to a concurrent execution on the same database connection by a database pool sweeper thread and a thread handling regular transactions.

If this occurs upon cache loading, it can cause an incomplete cache to be built (e.g. TableDescriptor). This can surface as various symptoms:
  • Banner text shows as the word "null" (invalid table name: sys_script)
  • System uses UI15 for all users when they expect UI16 (invalid table name "sys_user_preference")
  • Node unreachable, blank page, 401's etc. (invalid field name "sys_scope.scope")
  • Fields display as the field name instead of field labels (invalid table name: sys_documentation)
  • Integrations receiving HTTP 401 (invalid table name: sys_user)
  • Users unexpectedly logged out after logging in (invalid table name: sys_user)

These issues are always preceded by a series of SEVERE errors during the GlideSweep on threads that are being "cleaned." The errors are preceded by a warning message similar to the following:

com.glide.db.pool.DBPoolSweeperJobStatus@15cd039 WARNING ***
WARNING *** caught error involving method getWarnings on
connection 4
Steps to reproduce

This issue occurs because of a data race between a thread which is retrieving rows from a streaming result set, and another performing database sweeper operations, specifically checking for active connections and warnings.

The stack traces for the two threads will be similar to the following:

Thread 1
java.net.SocketInputStream.socketRead0(Native Method)
…
java.net.SocketInputStream.read(SocketInputStream.java:170)
…
org.mariadb.jdbc.internal.common.packet.RawPacket.nextPacket(RawPacket.java:82)
org.mariadb.jdbc.internal.common.packet.SyncPacketFetcher.getRawPacket(SyncPacketFetcher.java:67)
org.mariadb.jdbc.internal.common.queryresults.StreamingSelectResult.next(StreamingSelectResult.java:85)
Thread 2
java.io.BufferedInputStream.read(BufferedInputStream.java:336)
…
org.mariadb.jdbc.internal.common.packet.RawPacket.nextPacket(RawPacket.java:82)
org.mariadb.jdbc.internal.common.packet.SyncPacketFetcher.getRawPacket(SyncPacketFetcher.java:67)
org.mariadb.jdbc.internal.mysql.packet.MySQLRowPacket.getRow(MySQLRowPacket.java:86)
org.mariadb.jdbc.internal.common.queryresults.StreamingSelectResult.next(StreamingSelectResult.java:107)
org.mariadb.jdbc.internal.common.queryresults.StreamingSelectResult.close(StreamingSelectResult.java:123)
org.mariadb.jdbc.MySQLStatement.execute(MySQLStatement.java:282)
…
com.glide.db.pool.DBConfigurationControllerSweeperJob.checkWarnings(DBConfigurationControllerSweeperJob
  .java:2
…

Fixes included with Helsinki Patch 3 Hot Fix 6

* 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.