Upgrading the server

Older Helix Core applications continue to work with newer versions of Helix Core server. However, to enable your users to benefit from the features introduced in subsequent versions of the server, you must upgrade the server.

This chapter describes how to upgrade an existing installation for connected clients. For information on how to install a server that supports clients who want to work disconnected, see the "Installation" chapter of Using Helix Core Server for Distributed Versioning.

The examples in this chapter apply to both Windows and Linux/macOS installations.

Upgrade status

To check on the status of upgrade steps on a single server, use p4 upgrades

To check on the status of the specified upgrade step on a server and its upstream servers, use p4 upgrades -g

The Helix Core server log file might contain information about upgrade status. To see the location, use the p4 configure show P4LOG command. By default, the location is P4ROOT/log for Windows and /opt/perforce/servers/<server-instance>/logs/log for a Linux package installation.

Windows upgrade

You can perform an upgrade manually or by using the installer. Most customers find it convenient to use the installer.

If you are upgrading manually and running the Windows service (p4s.exe), make sure that the binary is also updated by copying p4d.exe to p4s.exe.

Before you upgrade

  1. Make sure that your license file is current.

  2. Back up your Helix Server installation. See Backup procedure.

  3. Read the release notes associated with your upgraded installation.

  4. If running the Helix Versioning Engine as a service (p4s.exe) and upgrading manually rather than using the Windows installer, make sure that binary is also updated by copying p4d.exe to p4s.exe.

Linux upgrade

Host with multiple versions

It is possible for more than one Helix Core Server to run on the same Linux host.

Version management

If the server has been installed using a package, and you want to prevent unintended upgrades to a higher version, consider pinning or locking the version:

APT policy with Pin more /etc/apt/preferences.d/p4d
Package: helix-p4d
Pin: version 2019.2.*
Pin-Priority: 1000
Yum with versionlock

See https://www.cyberciti.biz/faq/centos-redhat-fedora-yum-lock-package-version-command/

The --exclude directive allows for wildcards, whereas the yum versionlock command will not allow patch upgrades.

Alternatively, you can install a specific base package in a way that allows the package manager to automatically install the latest patch. For example,

apt-get install helix-p4d-base-r19.2
sudo update-alternatives --config helix-p4d

If you want to allow for version differences between the p4d servers running on the same Linux host, you can use Helix Core Server Control (p4dctl) and set the version for each specific server. For example,

  • on server1, you might update the execute parameter in the p4dctl config to point to /opt/perforce/sbin/p4d.23.1
  • on server2, you might update the execute parameter in the p4dctl config to point to /opt/perforce/sbin/p4d.22.2

If the server is managed by p4dctl

If the server was created by configure-helix-p4d.sh, and therefore managed by Helix Core Server Control (p4dctl), where sections of this guide mention upgrading the database using p4d -xu, use this command instead:

p4dctl exec -t p4d <service name> -- -xu

This ensures the -xu is run with the correct user and environment. For more information, see exec in p4dctl commands.

Before you upgrade

  1. Make sure that your license file is current.

  2. Back up your Helix Server installation. See Backup procedure.

  3. If you have an installation of Helix Core Git Connector, upgrade your Git Connector installation before upgrading your Helix Core servers. See Upgrading Git Connector.

  4. Read the release notes associated with your upgraded installation.

  5. If you are upgrading from a Helix Server prior to 2019.1 and have a large number of ktext files (+k and +ko text files with RCS keyword expansion), contact Perforce Support for guidance on making the upgrade process faster.