Thank you for your feedback.
Form temporarily unavailable. Please try again or contact docfeedback@servicenow.com to submit your comments.
Versions
  • London
  • Kingston
  • Jakarta
  • Istanbul
  • Helsinki
  • Geneva
  • Store
Close

Helsinki Patch 2 Hot Fix 4

Helsinki Patch 2 Hot Fix 4

Helsinki Patch 2 Hot Fix 4 provides fixes for the Helsinki release.

For Helsinki Patch 2 Hot Fix 4:
Build date: 09-15-2016_0757
Build tag: glide-helsinki-03-16-2016__patch2-hotfix4-09-14-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 2 Hot Fix 4

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 2 Hot Fix 4

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