94 views

Description

Table alters via update set sometimes do not invalidate cache correctly on other nodes. The table descriptor cache for the affected table must be invalidated manually in order to correct the issue. If the alter is a column creation, this can result in the column not being visible on some nodes. If the alter is a column drop, this can cause SQL syntax errors on some nodes such as the one below:

"Syntax Error or Access Rule Violation detected by database (Unknown column 'task0.u_sla_response' in 'field list')"

Steps to Reproduce

Any table-altering change committed via update set is susceptible to this issue. It seems to be correlated with user activity on other nodes at the time of the commit, but this is not confirmed.

Workaround

Flush the table descriptor cache for the affected table by running this script from the Scripts - Background module:

GlideTableManager.invalidateTable('table_name');
GlideCacheManager.flushTable('table_name');

NOTE: As a last resort, you can use gs.invalidateCache(); but this will degrade performance on the instance.


Related Problem: PRB1294784

Seen In

There is no data to report.

Intended Fix Version

Madrid

Safe Harbor Statement

This "Intended Fix Version" information is meant to outline ServiceNow's general product direction and should not be relied upon in making a purchasing decision. The information provided here is for information purposes only and may not be incorporated into any contract. It is not a commitment, promise, or legal obligation to deliver any material, code, or functionality. The development, release, and timing of any features or functionality described for our products remains at ServiceNow's sole discretion.

Associated Community Threads

There is no data to report.

Article Information

Last Updated:2018-09-14 09:00:10
Published:2018-08-13