Loading...
Loading...
Server‑side JavaScript that creates SNC scriptable classes (e.g., new SNC.DiscoveryPortProbeCache()) fail with "RhinoEcmaError: undefined is not a function", causing features that rely on SNC calls to stop working. The problem is caused by the SNC namespace not being available during early scriptable‑class initialization, resulting in the class being dropped from the deferred objects map. As the cause happens on startup, a node that didn't have the issue may have the issue after a node restart, and this won't necessarily coincide with an Upgrade. This has been seen after upgrading to Australia, however Yokohama and Zurich instances could also be affected; The core issue is a latent race condition that has long existed. The errors can be seen as a Warning in the syslog table, and appears only on some of the instance's glide application nodes, which could mean an issue appears intermittent and may not be reproducible on demand. This mostly affects the more mature Plugin-based products that include Java code. The likely products affected and some example symptoms and missing classes are: Discovery Discovery schedules don't complete because Shazzam Probes return nothing, due to having no port probes listed in the payload: <parameter name="port_probe_spec" value="<portprobes></portprobes>"/> SNC.DiscoveryPortProbeCache(); SNC.DiscoveryStatusHandler(); Password Reset User unable to change password This user cannot use the configured Password Reset process Password Enrollment Error: "Cannot set property 'value' of undefined" Error: SNC.PwdExtensionScriptParameter not available. Error=undefined is not a function Error Message : Error running identification processor fb9b36b3bf220100710071a7bf07390b. TypeError: undefined is not a function. SNC.PwdExtensionScriptParameter(); Event Management Impacted services on an Alert are not correct SNC.AlertManager(); global.RedundantAlertsClosing(); global.SlowStepJSManager(); Legacy Workflow/Orchestration sn_automation.AutomationAPI().getNodeLogger();
Upgrade a multi‑node instance from a pre‑Australia release to Australia. Using Discovery as an example, in **Scripts > Background** or a script include, execute a line such as: new SNC.DiscoveryPortProbeCache();` or `new SNC.AlertManager(); Observe the error “*** WARNING *** Evaluator: com.glide.script.RhinoEcmaError: undefined is not a function.”
This problem is currently under review and targeted to be fixed in a future release. Subscribe to this Known Error article to receive notifications when more information will be available. Upgrading to Australia Patch 2 fixes one of the race conditions, but is not the full fix, however it will reduce the risk of this happening. Note: The following workarounds cannot be done by customers themselves. A Support Case will need opening for help with applying the workaound. There are two potential workarounds. Either would need to be applied to each affected node, individually. The lower-impact workaround is to: log in to the affected node as maint (a customer's admin user won't work for this) Run the below script in Scripts - Background Repeat the script a few times if necessary until symptoms are relieved (there is a possibility of parallel threads poisoning the cache while this script is in flight, so it may take more than one attempt). Background script: var dso1 = Packages.com.glide.script.DeferredScriptableObjects.get(); dso1.resetAfterSncSetup(); // resets fDeferredObjects = null dso1.containsKey(""); // force the immediate rebuild on this thread Alternatively, you can restart the affected node(s). Because the core issue is a race condition, it is possible for it to manifest again on restart. It may take more than 1 restart of the node to clear the issue.
PRB1994381
Click on a version to see all relevant bugs
ServiceNow Integration
Learn more about where this data comes from
BugZero Plan
Streamline upgrades with automated vendor bug scrubs
BugZero Prevent
Wish you caught this bug sooner? Get proactive today.