MID Server Upgrade fails if the temp directory of the JVM is changed to a path including spaces (to try to avoid antivirus/security blocking temp folder during upgrade)


Description

Some customers may have antivirus/security solutions that rely on locking down the "temp" folder/forcing antivirus scans when files/folders are placed there.  These checks can prevent the MID Server from upgrading, and so customers change the JVM temp folder.

In general for java applications, customers can change the JVM temp folder location for normal MID operations by adding the following in wrapper-override.conf:

"wrapper.java.additional.2=-Djava.io.tmpdir={my non scanned folder location here}" 

However, if this path has spaces in it, then the upgrade fails.

Steps to Reproduce

  1. Install MID server on a windows machine.
  2. Install Anti-virus software.
    1. Note that %temp% folder is not excluded from Anti-virus scan.
    2. \agent folder on the MID server is Excluded from Scanning.
  3. Change MID temp location to some file in MID Server's "agent" folder.
    1. e.g.: agent\MID Temp
    2. Change the wrapper-override.conf file to point to this new Temp Location:
      wrapper.java.additional.2=-Djava.io.tmpdir=./MID Temp

The auto-upgrade of the MID server will fail because the upgrade will not support changing temp directory location to one that has spaces in. 

The wrapper log will not include the upgrade log, because that copying is done by the upgrade service, which doesn't run. 

If a different TEMP folder was used, all that is seen in the glide-dist-upgrade.log is:

ERROR  | wrapperm | 2020/08/13 09:47:53.126 | The ServiceNow Platform Distribution Upgrade (mid-prod) service is not installed - The specified service does not exist as an installed service. (0x424)

If the antivirus/security software blocks the normal temp folder, you might see this in the glide-dist-upgrade.log: 

ERROR  | wrapperm | 2020/07/22 16:12:39.125 | The ServiceNow Platform Distribution Upgrade (mid-prod) service is not installed - The specified service does not exist as an installed service. (0x424)
STATUS | wrapper  | 2020/07/22 16:12:41.610 | --> Wrapper Started as Console
STATUS | wrapper  | 2020/07/22 16:12:41.626 | Java Service Wrapper Standard Edition 64-bit 3.5.40
STATUS | wrapper  | 2020/07/22 16:12:41.626 |   Copyright (C) 1999-2019 Tanuki Software, Ltd. All Rights Reserved.
STATUS | wrapper  | 2020/07/22 16:12:41.626 |     http://wrapper.tanukisoftware.com
STATUS | wrapper  | 2020/07/22 16:12:41.626 |   Licensed to ServiceNow, Inc. for MID Upgrade
STATUS | wrapper  | 2020/07/22 16:12:41.626 | 
WARN   | wrapper  | 2020/07/22 16:12:53.205 | Child process: Java version: timed out
FATAL  | wrapper  | 2020/07/22 16:12:53.205 | Failed to resolve the version of Java.
STATUS | wrapper  | 2020/07/22 16:12:53.424 | <-- Wrapper Stopped

Workaround

This problem has been fixed, as part of the fix for PRB1396562. If you are able to upgrade, review the Fixed In or Intended Fix Version fields to determine whether any versions have a planned or permanent fix.

See this KB for the Fix Targets: KB0861153 MID Server Upgrade log shows error for "The ServiceNow Platform Distribution Upgrade (xxx) service is not installed - The specified service does not exist as an installed service", that does not break anything.


Related Problem: PRB1422003