DB2 purescale Install GPL Error

by Jun 27, 2016

GPL Compile Problem

When you try to install DB2 pureScale on Linux platform (RHEL or SLES), you may receive the error.

ERROR: A missing Linux package is preventing the compilation of the IBM General Parallel File System (GPFS) Portability Layer (GPL) module. The required packages for this compilation include the following: “gcc, binutils, cpp, gcc-c++, and kernel-source”. Ensure the packages are installed and re-run the DB2 installer.

ERROR: An error occurred while compiling IBM General Parallel File System (GPFS) Portability Layer (GPL) on host “purescale.zinox.com”. Return code “10”. GPL compilation log file location “/tmp/compileGPL.log.010”. The GPFS file system cannot be mounted properly until the GPL module is successfully compiled on this host. For details, see the specified GPL compilation log. After fixing the problems shown in the log file, re-run the DB2 installer. For information regarding the GPFS GPL module compile, see DB2 Information Center.

Compiling GPL :…….Failure
ERROR: A major error occurred while installing “DB2 Server Edition ” on this computer. The installation cannot continue. If the problem persists contact your technical service representative.

Unfortunately the db2prereqcheck does not detect the kernel abnormality mainly because the developers writing the db2prereqcheck code did not anticipate that such kernel broken update issues could prop-up.

However the fix is simple.

The GPL Compile error on Linux is a pain point and this occurs mainly due to broken kernel update. For example, you build the machine and as soon as it is on internet or connected to the install / update repository, it tries to update the system or you do “yum update” and before it finishes, the machine is either rebooted or shutdown.

Check before you install

DB2 pureScale is not DB2 but it is much more than DB2. It is GPFS + RSCT + TSA and when a clustering solution is implemented, it has more steps and care needs to be taken compared to a install on a single machine.

Make sure that you run db2prereqcheck at least for the following:

 	db2prereqcheck -l -p
 	db2prereqcheck -l -hl node01,node02,node03
 	db2prereqcheck -u
 	db2prereqcheck -nm <netnames>
        db2prereqcheck -dl <shared disk names>
 	db2prereqcheck -tb_dev <tiebreaker disk>
 	db2prereqcheck -adapter_list <adapter_list_filename>

Additional Checks

As I mentioned that db2prereqcheck is not enough to detect broken kernel updates, so do the following checks.

Login as root on all machines.

# cd /lib/modules/`uname -r` –> Make sure this exists and the sym link is not broken.

The above check is not enough. Also check the following sym link and make sure that it is not broken.

# cd /lib/modules/`uname -r`/build –> Make sure this exists and the sym link is not broken.

If above 2 checks pass, you have a chance that GPL compile may succeed. It is not yet guaranteed but you have a chance. It may also happen that db2 install may incorrectly say that the GPL compile was successful but in fact it was not. How do you know?

After db2_install (./db2install -p SERVER -f PURESCALE) process is complete and before you run db2icrt to create pureScale instance, run this test:

# ls -l /lib/modules/`uname -`/build
-rw-r--r--  1 root root  424539 May  9  2012 knem.ko
drwxr-xr-x  4 root root    4096 Aug  1  2012 mlnx-ofa_kernel
-rw-r--r--  1 root root 2761956 Dec 10 19:21 mmfs26.ko
-rw-r--r--  1 root root 2713675 Dec 10 19:21 mmfslinux.ko
drwxr-xr-x. 2 root root    4096 May  9  2012 qlgc-qla2xxx
-rw-r--r--  1 root root  831534 Dec 10 19:21 tracedev.ko
# cd /lib/modules/`uname -r`/extra
# ls -l
-rw-r--r-- 1 root root 3484342 Jun 26 20:16 mmfs26.ko
-rw-r--r-- 1 root root  551598 Jun 26 20:16 mmfslinux.ko
-rw-r--r-- 1 root root   68704 Jun 26 20:16 tracedev.ko

If you see that no files exist in either build or extra folders, the GPL process failed to compile the GPL. Why did this happen?

Again, it is broken processes on your Linux system and is an indication that SAs were very busy doing other things than paying attention to your system.

This happens when you have a kernel version different than the version of the kernel-source (SLES) or kernel-devl (RHEL).

Request your ever-busy SA to check the

# yum list kernel kernel-devel

And, chances are that both have different versions with a result that GPL failed. But, again poor db2preqcheck failed to detect it. Hopefully, in future, the db2prereqcheck will get better and SAs will do their job better.

Once the kernel-devel is fixed, run db2_install again and make sure that you are able to see the GPL output in the ls -l /lib/modules/`uname -`/build