Process Systems Enterprise Limited
email this page print this page
pdf overview

System library updates for running gO:CFD in parallel on RedHat7.x, 8.x

There is a serious bug in the standard C++ library files that are distributed with versions of RedHat prior to around 9.0(?). We are unsure of the exact versions affected, but they certainly include 7.2 and 7.3. This bug causes a deadlock when running gO:CFD (or any other gBA) in parallel on those systems. We have observed the bug being triggered on both SMP and cluster based systems.

You can fix this problem either by avoiding these systems (by installing a more recent version of RedHat), or by upgrading the library using the RPMs collected here. When upgrading you must use RPM version 4.0.4+1 or greater. If the version installed on your system is lower than this you should be able to use the RPM binary included here. Be warned that if you do so, you may have trouble using your standard version of RPM with the packages that you upgrade. The following examples assume you are using the bundled version of RPM. If you are not, replace "bin/rpm" below with "rpm".

Upgrading your system libraries is a risky procedure that could render your system unusable! If you wish to proceed we strongly recommend taking a backup before you start. The following is intended as a guide only. Do not attempt this upgrade without consulting your local system administrator! Process Systems Enterprise disclaims all responsibility for any damage caused by attempting this upgrade.

Firstly, check that there will be no fatal problems with upgrade:

 

> bin/rpm --test -U RPMS/*.rpm

You should see several warnings and conflicts, but no dependency failures:

 

warning:

RPMS/binutils-2.14.90.0.6-3.i386.rpm: V3 DSA 
            signature: NOKEY, key ID 897da07a
file/usr/include/g++-3/std/bastring.cc 
            from install of compat-libstdc++-devel-7.3-2.96.119 
conflicts with file from package libstdc++-devel-2.96-98
file /usr/include/g++-3/std/bastring.h from install 
            of compat-libstdc++-devel-7.3-2.96.119 conflicts with
           file from package libstdc++-devel-2.96-98
file /usr/include/g++-3/std/straits.h from install 
            of compat-libstdc++-devel-7.3-2.96.119 conflicts with
file from package libstdc++-devel-2.96-98
file /usr/include/g++-3/string from install of 
            compat-libstdc++-devel-7.3-2.96.119 conflicts 
            with file from package libstdc++-devel-2.96-98
 vfile /usr/lib/libstdc++-3-libc6.2-2-2.10.0.a 
            from install of compat-libstdc++-devel-7.3-2.96.119 
            conflicts with file from package libstdc++-devel-2.96-98

Next, su into root and perform the upgrade:

 

> su root
> bin/rpm -U --force RPMS/*.rpm

Lastly you will need to delete the version of the library that we ship with gPROMS. This can be found in

$GPROMSHOME/lib/libstdc++-libc6.2-2.so.3
. This file will not be present in future gPROMS distributions (versions 2.3.1 onwards). Please make sure that you have the GPROMSHOME environment variable set, or use the full path to your gPROMS installation!

 

> rm $GPROMSHOME/lib/libstdc++-libc6.2-2.so.3

If you have any questions about this procedure, or anything relating to it, please contact gPROMS support.