Updating Exadata Database Server Software
Updating Exadata Database Server Software
Updating Exadata Database Server Software
dbnodeupdate.sh and dbserver.patch.zip: Updating Exadata Database Server Software using the
DBNodeUpdate Utility and patchmgr (Doc ID 1553103.1)
In this Document
Main Content
Quick link to the download
Requirements and Support
Running the dbnodeupdate.sh/patchmgr Utility
Running dbnodeupdate.sh via sudo
Running dbnodeupdate.sh via sudo
Information to collect for RCA
Collecting RCA for Oracle Linux 5 to Oracle Linux 5 or Oracle Linux 6 to Oracle Linux 6 updates
For regular prereq checks or updates failing (when the system is still bootable)
For updates or rollbacks that caused the system to become non-bootable
Collecting RCA for Oracle Linux 5 to Oracle Linux 6 updates
System rolled back automatically
System where auto rollback did not kick in automatically
OL5-OL6 phases
Troubleshooting
References
APPLIES TO:
MAIN CONTENT
NOTE: Starting Exadata 12.2.1.1.0 dbnodeupdate.zip is no more available as a separate download. Exadata Database Node
Updates should be applied using patchmgr. The dbserver.patch.zip file contains a special version of patchmgr used to orchestrate
dbnodeupdate in updating Exadata Databases Nodes. dbnodeupdate.zip is still available in the dbserver.patch.zip file for those who
prefer manual execution the conventional way.
IMPORTANT: Starting release 5.170209 by default the patchmgr/dbnodeupdate.sh script does not remove Exadata rpms that are
known to fail the yum dryrun during pre-req check time. If you want to be sure to rely on precheck output then run precheck with
the additional flag to allow rpm modifications but do understand that this is might be making changes to your system that are not
expected at this time. This new default behavior makes sure no rpms are removed at precheck time but will rather generate a script
with rpms that would have been removed. The operator can then decide if removing any of these rpms at prereq check would
impact the system and optionally post-pone removal of these rpms until the actual planned maintenance window. It is
recommended to run the prereq check with the flags to allow making changes within a maintenance window right before the actual
updating. Known (not custom) conflicting rpms will be always removed when running the update regardless.
Flags:
For running patchmgr and allowing it to make changes at prereq time, add flag: -modify_at_prereq
For running patchmgr and not allowing it to make changes at prereq time, add flag: -nomodify_at_prereq (default)
1 of 15 5/4/17, 9:05 AM
Document 1553103.1 https://support.oracle.com/epmos/faces/DocumentDisplay?_adf.ctrl-stat...
For running dbnodeupdate and allowing it to make changes at prereq time, add flag: -M
For running dbnodeupdate and not allowing it to make changes at prereq time, add flag: -N (default)
dbnodeupdate.zip standalone (patch 16486998) cannot be downloaded anymore but can still be found inside dbserver.patch.zip
Download dbserver.patch.zip as p21634633_12*_Linux-x86-64.zip, which contains dbnodeupdate.zip and patchmgr for dbnodeupdate
orchestration via patch 21634633
Find the Oracle Exadata update bits for the release you need in note 888828.1
NOTE: dbnodeupdate.sh/dbserver.patch.zip support ANY Exadata hardware version (v1, v2, X2-*, X3-*, X4-*, X5-*). See the
specific Exadata Storage Server release README to see if the update you want to apply is supported for your hardware
version. The dbnodeupdate.sh utility requires you to be on Exadata release 11.2.2.4.2 (running on OL 5.5 or later)
NOTE: In case of an issue with the environment being updated, it is advised to collect var/log/cellos/dbnodeupdate.log and the
diag file that corresponds with your run (for example: var/log/cellos/dbnodeupdate.060114093556.diag, where 060114093556 is
your runid) - then upload the files to your SR or bug.
Introduction
The 'DB Node Update Utility' (dbnodeupdate.sh) (and also dbnodeupdate orchestrated by patchmgr in dbserver.patch.zip) automates all the
steps and checks to update Oracle Exadata database servers to a new Exadata release and replaces manual steps. The dbnodeupdate.sh
utility includes the latest best practices and workarounds for known issues.
Precheck + Updating database servers running Exadata releases later than 11.2.2.4.2 on Oracle Linux 5.5 or later
Rolling back updates
Post-Patching (or Post-Rollback steps) (relinking the Oracle homes, enabling Grid Infrastructure to start)
Addressing, fixing or working around known issues
A shortened list of some of the functionality provided by the dbnodeupdate.sh utility as follows:
2 of 15 5/4/17, 9:05 AM
Document 1553103.1 https://support.oracle.com/epmos/faces/DocumentDisplay?_adf.ctrl-stat...
The 'dbserver.patch.zip' file - See Quick links for downloading the 'DB Node Update Utility'
Any upgrade either via dbnodeupdate or patchmgr requires a repository with the Exadata rpms for the release being updated to. This
repository can be one of the following:
1. A web based repository. Example: http://yum-repo.us.oracle.com/yum/unknown/EXADATA/dbserver/11.2_save/latest/x86_64/
2. 'a file based repository' (zip file with Exadata ISO in it)
NOTE: When using an http location as yum repository, it is expected that the repository is populated before starting the actual upgrade.
See My Oracle Support note 1473002.1 for instructions on building a repository manually (when not using the zip file or ISO image
within the zip file)
Determine the required Oracle Exadata release listed in My Oracle Support note 888828.1
When running in orchestration mode (patchmgr) you can unzip and run patchmgr as root or non root from any Linux system.
When running dbnodeupdate, unzip the dbnodeupdate.zip within the dbserver.patch.zip on the target node
2. Use a zip-file with an ISO image (not relevant when using a yum repository via http)
When using a zip file with an ISO image in it, it can be picked up by the dbnodeupdate.sh/patchmgr utility specifying the path. This is
the alternative approach when not using http.
When using patchmgr the zip file should be stored on the driving node
When using dbnodeupdate the zip file should be stored on the target node
NOTE: By default dbnodeupdate.sh/patchmgr makes backups (provided the database servers have the standard lvm's in use and free
space available in the default volume group).
Because running backups takes time, it is possible to make the backup before the outage. When this is done or when backups are made
manually with another tool, use the a flag to be sure no new backups are made at update time. For updates from Oracle Linux 5 to
Oracle Linux 6, the backup is mandatory and cannot be skipped.
3 of 15 5/4/17, 9:05 AM
Document 1553103.1 https://support.oracle.com/epmos/faces/DocumentDisplay?_adf.ctrl-stat...
The dbnodeupdate.sh utility must be run as the root user on the target server. It's recommended to run the dbnodeupdate.sh/patchmgr
session using the Linux 'screen' or 'vnc' utility such that when a network problem breaks the connection to the server the patching session
continues. The patchmgr utility can be run as root or non-root user from any Linux server other than the node that will be updated.
Note: The 'screen utility' should be used by JAWS, WindowEyes and other screen reader users.
Note: for instructions how to run the patchmgr/dbnodeupdate see the tool's help (-h) or refer to the Oracle Exadata Maintenance Guide.
See the Exadata maintenance guide or patchmgr online help for usage.
Examples:
Prereq check (may remove or pre-update rpms we know of that need to be removed):
Updating:
Rollback:
NOTE: dbgroup specifies a file with all dbnodes to be updated. The node driving the update should not be added to the the file.
Also in the above example the http address can be replaced by iso.zip file location using -iso_repo instead of -yum_repo
NOTE:
Regular Oracle Exadata Database Server and Cell updates such as described in document 888828.1 can only be applied when the
date-stamp of the target release is newer than the date-stamp of the release currently running. Updates from images running a release
with a date-stamp newer than the target release will be blocked.
For example: Updates from 12.1.1.1.2.150411 to 12.1.2.1.0.141206.1 are blocked because 12.1.1.1.2 (with timestamp 150411) has a
date-stamp newer than 12.1.2.1.0 (141206), even while Exadata release 12.1.2.1.0 seems to be more recent than 12.1.1.1.2. When
situations like this happen, it's recommended to find a maintenance release with a newer date-stamp for that same major release.
4 of 15 5/4/17, 9:05 AM
Document 1553103.1 https://support.oracle.com/epmos/faces/DocumentDisplay?_adf.ctrl-stat...
dbnodeupdate.sh can be executed via sudo. Perform the following steps to setup sudoers:
# visudo
Add the following entry to the bottom of the sudoers file to allow the oracle user to run dbnodeupdate as root :
# mkdir -p /u01/stage/patch/dbnodeupdate
# cp dbnodeupdate.zip /u01/stage/patch/dbnodeupdate
# cd /u01/stage/patch/dbnodeupdate
# unzip dbnodeupdate.zip
To verify the correct setup run dbnodeupdate in prereq check mode as oracle:
$(oracle) cd /u01/stage/patch/dbnodeupdate
$(oracle) sudo ./dbnodeupdate.sh -u -l http://my-yum-repo/yum/EngineeredSystems/exadata/dbserver/12.1.2.1.3
/base/x86_64/ -v
NOTE: The above setup requires the entire content of /u01/stage/patch/dbnodeupdate to be owned by root.
A new version of dbnodeupdate would need to be placed in the same location as specified by sudoers.
Collecting RCA for Oracle Linux 5 to Oracle Linux 5 or Oracle Linux 6 to Oracle Linux 6 updates
Oracle Linux 5 to Oracle Linux 5 are updates from releases < 12.1.2.1.0 to < 12.1.2.1.0
Oracle Linux 6 to Oracle Linux 6 are updates from releases 12.1.2.1.0 to > 12.1.2.1.0
For regular prereq checks or updates failing (when the system is still bootable)
1. /var/log/cellos/dbnodeupdate.log
2. /var/log/cellos/dbnodeupdate.<runid>.diag (where runid is the run-id f your failing dbnodeupdate session)
See section 'System where auto rollback did not kick in automatically'
5 of 15 5/4/17, 9:05 AM
Document 1553103.1 https://support.oracle.com/epmos/faces/DocumentDisplay?_adf.ctrl-stat...
When an error occurs at update time auto-rollback should kick in. When this happens console shows the following message on screen (this
is only a snippet):
ATTENTION:
The update to 12.1.2.1.0 has failed. Auto rollback has prepared and completed rollback preparations
After rollback completes the database node should reboot and when logging back on the the system the 'imageinfo' command should show
the release as before the failed update. Now before re-attempting the update first do an RCA.
Kernel version: 2.6.39-400.243.1.el6uek.x86_64 #1 SMP Wed Nov 26 09:15:35 PST 2014 x86_64
Image version: 11.2.3.3.1.140529.1
Image activated: 2015-01-13 09:26:19 -0800
Image status: success
System partition on device: /dev/mapper/VGExaDb-LVDbSys2
Collect all logging from the active and inactive system partition:
If after auto rollback the system partitions is /dev/mapper/VGExaDb-LVDbSys2 the inactive system partition is /dev/mapper
/VGExaDb-LVDbSys1
If after auto rollback the system partitions is /dev/mapper/VGExaDb-LVDbSys1 the inactive system partition is /dev/mapper
/VGExaDb-LVDbSys2
In the following example, the inactive system partition is LVDbSys2 (change LVDbSys2 for LVDbSy1 if your system has a different inactive
partition)
1. Dump console history (as soon as possible after the failing update): ipmitool -H <ilom-hostname> -U root -P password sunoem cli
'show /SP/console/history' > /var/log/cellos/serialconsole.<hostname>.txt
2. # mkdir -p /mnt/LVDbSys2
3. # mount /dev/mapper/VGExaDb-LVDbSys2 /mnt/LVDbSys2
4. # tar cvf /root/var_log_LVDbSys1_LVDbSys2.tar /var/log /mnt/LVDbSys2/var/log /.ol6_upgrade* /mnt/LVDbSys2/.ol6_upgrade*
5. # gzip -f /root/var_log_LVDbSys1_LVDbSys2.tar
6. # umount /mnt/LVDbSys2
1. sundiag
/opt/oracle.SupportTools/sundiag.sh (see document 761868.1)
2. sosreport
See How To Collect an Sosreport on Oracle Linux document 1500235.1
See How to Collect sosreport under Rescue Mode document 1928852.1
3. ILOM snapshot
/opt/oracle.SupportTools/sundiag.sh snapshot (see document 761868.1)
*Note: before re-attempting the update re-collect these diag files again.
When auto rollback didn't not kick in and the system is not booting properly, use the steps in "How to recover from a failed Exadata DB
Server update or rollback document 1952372.1" then manually collect the files as follows:
1. Dump console history (as soon as possible after the failing update): ipmitool -H <ilom-hostname> -U root -P password sunoem cli
'show /SP/console/history' > /var/log/cellos/serialconsole.<hostname>.txt (note, if not possible to run on the problematic host, run
the command from another host)
2. # mkdir /mnt/LVDbSys1
3. # mkdir /mnt/LVDbSys2
4. # mount /dev/mapper/VGExaDb-LVDbSys1 /mnt/LVDbSys1
5. # mount /dev/mapper/VGExaDb-LVDbSys2 /mnt/LVDbSys2
6. # tar cvf /root/var_log_LVDbSys1_LVDbSys2.tar /mnt/LVDbSys1/var/log /mnt/LVDbSys2/var/log /mnt/LVDbSys1/var/log
/.ol6_upgrade* /mnt/LVDbSys2/.ol6_upgrade*
7. # gzip -f /root/var_log_LVDbSys1_LVDbSys2.tar
8. # umount /mnt/LVDbSys1
6 of 15 5/4/17, 9:05 AM
Document 1553103.1 https://support.oracle.com/epmos/faces/DocumentDisplay?_adf.ctrl-stat...
9. # umount /mnt/LVDbSys2
1. sundiag
/opt/oracle.SupportTools/sundiag.sh (see document 761868.1)
2. sosreport
See How To Collect an Sosreport on Oracle Linux document 1500235.1
See How to Collect sosreport under Rescue Mode document 1928852.1
3. ILOM snapshot
/opt/oracle.SupportTools/sundiag.sh snapshot (see document 761868.1)
*Note: before re-attempting the update re-collect these diag files again.
OL5-OL6 phases
1. Phase Initialize: PREREQ CHECKS, CAPTURE SYSTEM SETTINGS, on OL5 kernel, First reboot
2. Phase Prep: UPGRADE RPM DATADASE, PRESERVE KEY CONFIGURATIONS, on custom OL6 kernel
3. Phase 1: REMOVE CONFLICTING PACKAGES, INITIAL PACKAGE UPGRADES, on custom OL6 kernel, Second reboot
4. Phase 2: REINSTALL INITIAL PACKAGE UPGRADES, UPGRADE KERNEL and DEPS, on OL5 kernel, Third reboot
5. Phase 3: INSTALL EXADATA PACKAGES, on new OL6 kernel
6. Phase 4: EXADATA CONFIGURATIONS, RESTORE PRE-UPGRADE CUSTOMIZATIONS, REMOVE KNOWN OL5 PKGS, Fourth reboot
The different phases also provide reports the user might want to review in case of failure. These are displayed at the console and are also
found in the /var/log/cellos/dbupgrade.log:
In case of failure:
The different phases also provide reports the user might want to review after a succesfull update. These are displayed at the console and
are also found in the /var/log/cellos/dbupgrade.log:
"NOTE: Configuration files saved by this procedure (.pre_OL6_upgrade) have been preserved in:"
"NOTE: Logfiles for this procedure are located at ${v_dbupgrade_logfile}{.log, .trc}"
"NOTE: The /etc/inittab file is mostly deprecated (only the default run level remains)."
"The Exadata specific entries, pre upgrade OL5 /etc/inittab entries have been converted to OL6 configurations."
"The pre upgrade, /etc/inittab is saved here: ${v_active_vol_mount}${v_dbupgrade_upgrade_save_files}/etc
/inittab.pre_OL6_upgrade."
"Non-converted, pre upgrade, /etc/inittab entries, if any, are:"
"--- begin: non-converted inittab entries ---"
"--- end: non-converted inittab entries ---"
"NOTE: The /etc/modprobe.conf file is deprecated."
"The pre upgrade modprobe.conf entries have been migrated to /etc/modprobe.d/exadata.conf."
"NOTE: Files in /etc/modprobe.d/ must have a .conf file extension."
"Any non .conf files in /etc/modprobe.d/ prior to the upgrade have been moved to .config files if possible (no
file over-writes)."
"Non-converted, pre upgrade, /etc/modprobe.d files not moved to a .conf equivalent if any, are:"
"--- begin: non .conf files in /etc/modprobe.d/ ---"
"--- end: non .conf files in /etc/modprobe.d/ ---"
Troubleshooting
7 of 15 5/4/17, 9:05 AM
Document 1553103.1 https://support.oracle.com/epmos/faces/DocumentDisplay?_adf.ctrl-stat...
Check you are on the latest release of the dbnodeupdate or dbserver.patch.zip package
There are two possible error situations when running this script:
1. Errors due to a unexpected configuration or problem on the db server - most often due to customizations
The type of failure seen most often are dependency issues introduced by installation of custom rpms - see the next section.
2. Errors due to bugs in the dbnodeupdate.sh script or the Exadata image
Troubleshooting flow:
The tool prevents against proceeding the update when a certain check, software or firmware version is incorrect. This is to prevent
against failing updates and prevent against unplanned downtime. In such cases it is recommended to fix the issue and re-run the
script.
When it is unclear what needs to be done, when the script fails or when no reboot is initiated:
In case the script stopped before the 'confirmation screen'
At this point no changed are made yet - communicate this to the parties involved.
Did the prereq run succeed ? Research screen output and /var/log/cellos/dbnodeupdate.log for the prereq
See /var/log/cellos/dbnodeupdate.log where the script got stuck
What is the last successful action ? Use screen and /var/log/cellos/dbnodeupdate.log output
Possible unresponsive ILOMS may require a reset when collect of diag does not respond within 10 minutes
Correct possible config issues and re-run the script
Was the right repository used ?
for http repositories check for the right url
for iso repositories check the right iso zip
In case the script stopped after the 'confirmation screen'
Did the backup complete ?
If the backup did complete it is possible to rollback now to reduce downtime ?
if the backup did not complete, was this the cause of the backup script failing ?
see /var/log/cellos/dbnodeupdate.log
see /var/log/cellos/dbserver_backup.log
What did the screen state when it failed, what was the last successful action ? match this with the output in /var/log
/cellos/dbnodeupdate.log
For updates from 11.2.3.1.0 and later:
see /var/log/cellos/dbnodeupdate.log
check if the 'yum update' part did complete also see /var/log/yum.log
see /var/log/cellos/exadata.computenode.post.log, /var/log/messages and /var/log/cellos/exachkcfg.log if no
reboot was initiated
/var/log/cellos/exadata.computenode.post.log file has the output from the /opt/oracle.cellos
/exadata.computenode.post.sh script which is started as post scriptlet from the exadata-
sun-computenode rpm. When there is no timestamp in it that matches your update the script has not
been started. Investigate why via the dbnodeupdate.log file
For updates from 11.2.2.4.2:
see /var/log/cellos/dbnodeupdate.log
see /var/log/cellos/bootstrap.uln.log
Do not reboot a node when the update did not reboot itself
Don't do any manual rollback - follow the dbnodeupdate.sh rollback procedure
When a node is rebooted:
dbnodeupdate.sh completed its work starting the yum update. The yum update did complete.
Nodes not booting may need to open ILOM to see what is going on.
When nothing happends and the ILOM is not in the process of being updated - reset the ILOM and monitor the
boot process
When the node boots in the new image continue with the 'dbnodeupdate.sh -c' steps
Always collect and analyze all logs before re-attempting the update.
When updates or (auto)rollbacks (possibly via dbnodeupdate.sh) fail, an Exadata database server may become unbootable. It can also
happen a database server does boot but fails to load the right modules or libraries after an broken or interrupted update, effectively
making the system unusable. As a result it can happens users and administrators are unable to login to the system, even via the console.
8 of 15 5/4/17, 9:05 AM
Document 1553103.1 https://support.oracle.com/epmos/faces/DocumentDisplay?_adf.ctrl-stat...
MOS document 1952372.1 describes how to recover from a failing update or rollback on an Exadata DB server. This document only
applies to X2 and later DB servers where logical volume management (lvm) is in use and where a backup was made to the inactive
system partition prior the update. This is especially important for updates to Oracle Linux 6 / 12.1.2.1.0.
Dependencies, custom RPM packages and regular Oracle Linux RPM updates
NOTE: The dbnodeupdate.sh utility is a wrapper around the 'yum update' procedure. This means, YUM dependency issues can occur
when custom rpms are installed. If such errors will occur, dbnodeupdate.sh will detect this during prereq. When the dependency check
(yum dryrun) doesn't pass the update will be blocked and the system cannot be updated until the dependency issue is resolved. This
prevents against updates failing half way. The purpose of the dbnodeupdate.sh script is to automate and validate to minimize human
error. When errors happen due to the system (mis)configuration or dependency issues detected, the dbnodeupdate.sh utility can always
be run again after the problem is fixed or the dependency issue is resolved.
Operators are allowed to customize Exadata database servers by updating supplied packages or installing new packages as long as it does
not interfere with Exadata functionality, provided the kernel and InfiniBand packages are not altered. Although customizations are allowed,
they sometimes cause dbnodeupdate.sh to fail during the update because of package dependency problems. Because the failure occurred,
without warning, during update while the system was offline for maintenance, it typically led to extended downtime while the package
dependency problems were understood and rectified. it is recommended to remove custom packages before the update if they are known to
cause dependency failures. The packages can be reinstalled post update.
Each run of the dbnodeupdate.sh utility appends logging to the /var/log/cellos/dbnodeupdate.log file. Each run has a unique 'runid' and this
runid can be found within the dbnodeupdate.log file
The runid can be used to find the starting point in the logfile or to find the related diag file (/var/log/cellos/dbnodeupdate.<runid>.diag.
The diag file is created before the actual updating occurs. This diag file collects the situation 'as is' before the patching. It should provide all
the required information to expidite correction of database server patching problems. Some of the information that is collected :
File : /var/log/cellos/bootstrap.uln.log
File : /var/log/cellos/dbserver_backup.sh.log
File : /var/log/cellos/exadata.computenode.post.log
File : /etc/oratab
File : /etc/sysctl.conf
File : /etc/yum.conf
File : /var/log/cellos/validations.log
File : /boot/grub/grub.conf
File : /var/log/yum.log
File : /var/log/cellos/exachkcfg.log
File : /etc/enterprise-release
File : /etc/exadata/yum/exclusion.lst (post 11.2.3.2.1 only)
File : /etc/exadata/yum/obsolete.lst (post 11.2.3.2.1 only)
File : images.properties
File : issues.properties Output for : /usr/local/bin/imageinfo
Output for : /usr/local/bin/imagehistory
Output for : /usr/sbin/vgdisplay
Output for : /usr/sbin/lvdisplay
Output for : /sbin/vgscan
Output for : df -h
Output for : rpm -qa --qf "%{n}-%{v}-%{r}.%{arch}\n
Output for : ps -ef
Output for : mount
Output for : /opt/oracle.SupportTools/reclaimdisks.sh -check
Output for : /opt/MegaRAID/MegaCli/MegaCli64 -PDList -aALL
Output for : ipmitool sunoem cli 'show /SP/console/history'
More is added in later releases.
9 of 15 5/4/17, 9:05 AM
Document 1553103.1 https://support.oracle.com/epmos/faces/DocumentDisplay?_adf.ctrl-stat...
The above items are minimum requirements for support engineers to diagnose a patching issue.
Revision History
Change
Date
Feb 3 2017 Dbserver patch supports updates starting release 11.2.2.4.2 and later
10 of 15 5/4/17, 9:05 AM
Document 1553103.1 https://support.oracle.com/epmos/faces/DocumentDisplay?_adf.ctrl-stat...
Change
Date
11 of 15 5/4/17, 9:05 AM
Document 1553103.1 https://support.oracle.com/epmos/faces/DocumentDisplay?_adf.ctrl-stat...
Change
Date
12 of 15 5/4/17, 9:05 AM
Document 1553103.1 https://support.oracle.com/epmos/faces/DocumentDisplay?_adf.ctrl-stat...
Change
Date
Nov 12 2015 Added full support and instructions for using sudoers
13 of 15 5/4/17, 9:05 AM
Document 1553103.1 https://support.oracle.com/epmos/faces/DocumentDisplay?_adf.ctrl-stat...
Change
Date
April 14 2015 Released 4.46 - No functional changes, adds support for future releases
14 of 15 5/4/17, 9:05 AM
Document 1553103.1 https://support.oracle.com/epmos/faces/DocumentDisplay?_adf.ctrl-stat...
Change
Date
April 11 2015 Released 4.45a - Adds fix for unpublished bug 20859967
April 8 2015 Released 4.45 - Adds fix for unpublished bug 20708183 and unpublished bug 20812128
Mar 24 2015 Released 4.44 - Adds fix for leap second, unpublished bug 20706647 and bug 20597282.
Supports up to release 12.1.2.1.1
Mar 9 2015 Released 4.40 - Adds fix for unpublished bug 20637355 and pre-req checks for SELinux
Feb 24 2015 Released 4.28 and added -i flag to the documentation which skips relinking and starting of
the stack when in '-c' mode
END
15 of 15 5/4/17, 9:05 AM