Problem
NetBackup on Windows is built using Microsoft Visual C++ compilers which require current Visual C++ runtime libraries. When you install or upgrade NetBackup on Windows computers, the NetBackup setup may need to account for issues related to Microsoft Visual C++ runtime libraries. This can include new prompts, unsuccessful installation and upgrade, and restart requirements.
Solution
To run Microsoft Visual C++ applications, a Windows computer must have compatible versions of Microsoft Visual C++ runtime libraries. NetBackup requires both the x86 and x64 versions of the Microsoft Visual C++ runtime libraries. Microsoft's utilities for installing these libraries can alter Windows computers such that a restart is required.
The required versions of the Microsoft Visual C++ runtime libraries depend on the NetBackup version:
NetBackup Version | Compiler Version | Microsoft Visual C++ runtime library requirement |
---|---|---|
7.7 - 9.0.0.1 | Visual Studio 2010 | 10.0.40219.1 or later |
9.1 - 10.3.0.1 | Visual Studio 2019 | 14.27.29016.0 or later |
10.4 and later | Visual Studio 2022 | 14.36.32532.0 or later |
Before installing or upgrading NetBackup on Windows computers, Veritas recommends that you install the required Microsoft Visual C++ runtime libraries. The installation of these libraries should take place within a maintenance window when you can safely restart the computer. If the Microsoft Visual C++ runtime library installation utilities indicate a restart is required, Veritas recommends restarting the computer as soon as possible. This restart ensures all applications that rely on Microsoft Visual C++ runtime libraries operate successfully.
The remainder of this article is organized into the following sections:
- Runtime LIbrary Presence: this section describes how to determine the versions of the Microsoft Visual C++ runtime libraries on your computer.
- Installing Runtime Libraries Manually: this section describes how to install Microsoft Visual C++ runtime libraries manually, independent of the NetBackup's setup.
- Preventing Restarting Requirement: this section contains strategies for avoiding restart requirements.
- NetBackup Install and Upgrade Behavior: this section describes how the NetBackup setup may attempt to install Microsoft Visual C++ runtime libraries automatically. If restarts become required, the NetBackup setup may allow you to proceed anyway, with the expectation the restart will occur at a later time.
Runtime Library Presence
To determine the versions of Microsoft Visual C++ runtime libraries present on Windows computers, review the following Microsoft article:
https://learn.microsoft.com/en-us/cpp/windows/redistributing-visual-cpp-files?view=msvc-170
Installing Runtime Libraries Manually
The Microsoft Visual C++ runtime libraries can be installed independent of the NetBackup setup by running the vcredist utilities documented at https://learn.microsoft.com/en-us/cpp/windows/redistributing-visual-cpp-files?view=msvc-170. Users can download the latest versions of these redistributable packages from Microsoft. The exact versions of these utilities required by NetBackup are located on the NetBackup media at:
<media root>\x64\vcredist_x64.exe
<media root>\x64\vcredist_x86.exe
... where <media root> is the location where the ESD images (downloaded files) reside.
Preventing Restart Requirement
In cases when Microsoft Visual C++ runtime libraries cannot be installed prior to executing the NetBackup setup, these steps can reduce the chances of restarts becoming required:
- Stop any third party applications on the Windows computer before running the NetBackup setup.
- If upgrading NetBackup, stop NetBackup before running the NetBackup setup.
- Additionally, on clustered primary servers:
- On the active node, ensure the cluster group is offline by running bpclusterkill –offline.
- On all nodes, stop client services by running bpdown -v -f.
- Additionally, on clustered primary servers:
The restart requirement often results from running processes that are actively using Microsoft Visual C++ runtime libraries. Identifying these processes and taking measures to ensure they are not running at the time Visual C++ runtime libraries are installed can help avoid the restart requirement on other Windows computers in your environment. Beginning with NetBackup 10.4, if the NetBackup setup executes the vcredist utilities, the associated log files are stored at C:\ProgramData\Veritas\NetBackup\InstallLogs. The log files may identify processes actively using Microsoft Visual C++ runtime libraries. Within these log files, search for references to is being used by the following process
. Related messages may look like this:
MSI (s) (24:EC) [11:56:24:213]: Product: Microsoft Visual C++ 2022 X64 Minimum Runtime - 14.36.32532. The file C:\Windows\system32\vcruntime140.dll is being used by the following process: Name: MyProcess , Id 3100.
NetBackup Install and Upgrade Behavior
If a Windows computer already has the Microsoft Visual C++ runtime library versions required by NetBackup, or higher versions, the NetBackup setup does not attempt to install them. Otherwise, the behavior varies across supported installation and upgrade methods. The behavior described below applies to NetBackup 10.4 and later.
Interactive Cases
Prompts related to Visual C++ runtime library requirements can appear early in the NetBackup setup.
If NetBackup processes using Microsoft Visual C++ runtime libraries are found running, the user is prompted to stop NetBackup and retry.
If Microsoft Visual C++ runtime libraries must be installed, the user is asked whether the NetBackup setup should attempt to install them.
If the NetBackup setup attempts to install Microsoft Visual C++ runtime libraries, and Microsoft's vcredist utilities indicate a restart is required, the user is notified and asked if the NetBackup setup should proceed.
Remote Cases
When using the NetBackup setup to target one or more remote computers, if required Microsoft Visual C++ runtime libraries are missing on one or more of the computers, the user is prompted:
If the NetBackup setup continues, installation of the Microsoft Visual C++ runtime libraries will be attempted shortly after the NetBackup setup begins on the remote computer. Following those attempts, if a restart is required, the NetBackup setup ends.
Silent Cases
NetBackup setup is capable of installing Microsoft Visual C++ runtime libraries as part of silent installations and upgrades. The following properties in the silent install scripts for primary, media, and client computers allow you to customize the approach used during silent operations.
STOP_NB_BEFORE_VCREDIST
This property specifies if NetBackup processes should be stopped automatically before the NetBackup setup attempts to update Microsoft Visual C++ runtime libraries using Microsoft's redistributable installers. In some cases, stopping NetBackup processes reduces the chances of a restart being required.
VCREDIST_ATTEMPT_PREFERENCE
This property specifies the approach used on Windows computers where compatible Microsoft Visual C++ runtime libraries are not already present. If set to YES, the NetBackup setup attempts to install Microsoft Visual C++ runtime libraries using Microsoft's redistributable installers. If set to NO, the NetBackup setup halts with an error if a computer does not have the required runtime libraries.
VCREDIST_RESTART_PREFERENCE
This property specifies the approach used if Microsoft Visual C++ runtime libraries were updated and a restart is required to complete the operation. If the option is set to STOP, the NetBackup setup stops. If the option is set to PROCEED, the NetBackup setup proceeds. The computer is not restarted automatically. Veritas recommends performing the required restart as soon as possible.
VxUpdate Cases
Beginning with NetBackup 10.4, Microsoft Visual C++ runtime libraries can not be installed using VxUpdate.
A VxUpdate precheck evaluates whether compatible Microsoft Visual C++ runtime libraries are present on the remote computer. This precheck fails if compatible runtime libraries are not present. In Job Details, failure of the precheck may appear like this:
Feb 27, 2024, 11:10:06 AM - Info RUNCMD (pid=13684) Preparing to execute nbinstallagent on the remote host [mycomputer.mydomain.com]
Feb 27, 2024, 11:10:06 AM - Info RUNCMD (pid=13684) The Java/JRE option is: [match].
Feb 27, 2024, 11:10:07 AM - Info RUNCMD (pid=13684) Starting pre-check operations....
Feb 27, 2024, 11:10:07 AM - Info RUNCMD (pid=13684) This Windows machine has x86 Visual C++ runtime libraries version [14.29.30133.0].
Feb 27, 2024, 11:10:07 AM - Info RUNCMD (pid=13684) This Windows machine has x64 Visual C++ runtime libraries version [14.29.30133.0].
Feb 27, 2024, 11:10:07 AM - Info RUNCMD (pid=13684) This Windows system does not have x86 and x64 Visual C++ runtime libraries [14.36.32532.0] or later. This is required for NetBackup. Aborting.
Feb 27, 2024, 11:10:07 AM - Info RUNCMD (pid=13684) Execution of nbinstallagent on the remote host [mycomputer.mydomain.com] failed.
Feb 27, 2024, 11:10:07 AM - Info RUNCMD (pid=13684) exiting Operation Status: 7301
NOTE:
With NetBackup 10.4 and 10.4.0.1 it has been noticed that the presence of a file or folder named 'Program'
on the root drive where NetBackup is installed causes the above popup to be blank and does not list any process in it. Rename/Remove the file/folder named 'Program' to allow the NetBackup installer to fix this issue. The issue will be addressed in future releases of NetBackup.
Below is an example for reference.
If NetBackup is installed under "C:\Program Files\Veritas"
- and a file named C:\Program
exists, when the installer runs, we get the below popup.
Below is an example of the install logs where we have a combination of the older version binary along with the existence of C:\Program file.
In this scenario, the Install logs reported the following messages. The initial few lines report the mis-match with the required versions (if any exists), and status 193 is due to the existence of the 'C:\Program'
file.
08-07-2024,18:21:47 : Evaluating Visual C++ runtime libraries for [Veritas NetBackup Server.msi].
08-07-2024,18:21:47 : This Windows machine has x86 Visual C++ runtime libraries version [14.29.30133.14].
08-07-2024,18:21:47 : This Windows machine has x64 Visual C++ runtime libraries version [14.40.33810.14].
08-07-2024,18:21:47 : This machine does not have required versions of Visual C++ runtime library components.
08-07-2024,18:21:47 : Existing NetBackup version [10.3.0.1] uses Microsoft's 2015-2022 family of compilers.
08-07-2024,18:21:47 : Failed to identify running NetBackup processes: status code [193].
08-07-2024,18:21:47 : Proceeding as though one or more NetBackup processes may be running.
08-07-2024,18:38:07 : User was prompted about NetBackup processes conflicting with Visual C++ runtime library installation.