View Source

h5. Overview

The Rollup Patch installer is a cumulative patch, and is a step closer to the "continuous deployment" method of updating. The patch installer is intended to be used independent of Technical bulletins, though some Technical Bulletins may depend upon the Rollup Patch already having been applied, and some of the code we supplied in Technical bulletins originally may be superseded in a given version of the Rollup Patch. Generally, we recommend applying the rollup patch first, then looking at the Technical bulletins and applying them as needed. The rollup only includes code, not data or configuration, and does no scripted updates, so for some things you will still need the Technical Bulletins, as they can apply scripted updates and make configuration changes.

The rollup patch installer *does* make database schema updates, so you will need to have a valid postgres user password for the database (see Prerequisites, below). It is not necessary to run the patch installer on a database-server-only installation of GroundWork.

Since it is a cumulative patch, you need only install the latest version - there is no need to install each version of it sequentially. The Rollup Patch Installer is also reversible - it makes a backup of everything it changes, and you can use a simple process to reverse the updates it makes.

If you install two or more sequential rollups and need to roll them back, simply apply the rollback scripts in the reverse order of the rollup patches. {note} If you installed patch 4111, there is an extra step. See below. {note}


h5. Prerequisites

* You will need a short downtime window, as the Rollup Patch Installer stops all GroundWork services for update.
* You will also need {{root}} user access to the GroundWork server.
* You will need to know the *postgres user password* for the database server, usually. Not all patch installers involve database changes, and so it's not always required, but be ready in case it is needed.

h5. Considerations

If you have several GroundWork servers in a parent-child configuration, you may run the rollup on any server in any order. Note that it will interrupt monitoring briefly when you apply or roll back.

h5. Installation Steps

{attachments:patterns= groundwork-7.2.2-gw4125-patch-install.run}

{note} You MUST have the postgres user password available before running this patch\!{note}
# Transfer the Rollup Patch installer to your GroundWork server, and place it in an empty directory.
# Log in to the command line on the GroundWork server and become {{root}} in that directory
# Type:
{noformat}
chmod +x groundwork-7.2.2-gw4125-patch-install.run
./groundwork-7.2.2-gw4125-patch-install.run
{noformat}
The installer will stop GroundWork services, ask for the db user password, then patch and restart the groundwork services.


h5. Rollback Steps

Hopefully you will not need to roll the changes back. If you have any issue after the patch, please let GroundWork Support know as soon as you can. We do extensively test each change, and we do integration and system tests on each Rollup, but we recognize you may need to get back to where you were.

Note that no configuration files will be altered or rolled back, that is up to you to control. Also, when you install a patch, the previous patch state is saved in a directory under /usr/local/groundwork/backup-gwNNNN, where NNNN is the prior patch level. That's the directory you will use to roll back with this procedure.

# Log in to the command line on the GroundWork server and become {{root.}}
# Change to the backup directory, named for the prior patch level, e.g.:
{noformat}
cd /usr/local/groundwork/backup-gw4114
{noformat}
# Execute the rollback script:
{noformat}
./restore-backup.sh
{noformat}
You will once again need to provide the postgres user password.


h6. If You Installed Patch 4111

If you have installed patch 4111, which was briefly available, it contains a flaw that must be addressed with a command to correct table ownership. This is *only* necessary if you installed patch 4111. You can do this step at any time including before or after applying 4118 or 4122.
The symptom that this is necessary is evident as failure to do backups and a similar error when you try to do a build instance:
{noformat}
Backup error(s): Problem(s) backing up files and/or database to:
/usr/local/groundwork/core/monarch/backup/2019-04-30_22-16-38/
Error: Got exit status 1 from backup command.
pg_dump.bin: [archiver (db)] query failed: ERROR: permission denied for relation patch_4109_service_instance
pg_dump.bin: [archiver (db)] query was: LOCK TABLE public.patch_4109_service_instance IN ACCESS SHARE MODE
{noformat}
So to fix in place, as root, and with the knowledge of the postgres user password at hand, type these two lines
{noformat}
source /usr/local/groundwork/scripts/setenv.sh
echo "ALTER TABLE public.patch_4109_service_instance OWNER TO monarch;" | psql monarch
{noformat}
You will be prompted for the postgres user password.

h5. What is fixed in this version?

The details of what issues and features are changed in this version of the rollup patch are detailed [here|DOC721:GWME-7.2.1-00 version 4125 Rollup Patch Details].

The details of all prior rollup patches are explained at [https://kb.groundworkopensource.com/display/DOC721/GWME-7.2.1-00+version+4122+Rollup+Patch+Details|GWME-7.2.1-00 version 4122 Rollup Patch Details] and older sibling pages.