Native POSIX Thread Library support is not available

  • 3005397
  • 05-Feb-2008
  • 30-Apr-2012

Environment

Novell SUSE Linux Enterprise Server 9
Novell Open Enterprise Server (Linux based)

Novell Linux Desktop 9
Novell Open Workgroup Suite Small Business Edition (NOWS SBE)

Situation

Symptoms
  • The number of process IDs for an application or binaries has increased dramatically after upgrading glibc, or
  • Installation or deployment of software like IBM Websphere fails with error messages indicating the Native POSIX Thread Library (NPTL) implementation of multithreading is unavailable.
  • The command
    getconf GNU_LIBPTHREAD_VERSION
    returns an output like "linuxthreads-0.10" instead of "NPTL 0.61".

Resolution

Install and enable the glibc package with NPTL support:

  1. Make sure the environment variable LD_ASSUME_KERNEL is not set. Having this variable set can inhibit the use of NPTL.
  2. If the command
    rpm -q --qf "%{DISTRIBUTION}\n" glibc
    produces the output
    SuSE SLES-9 (i586)
    a version of the glibc package is installed that does not include NPTL support; install the i686 version of the glibc package in its place.

Additional Information

Background

Before NPTL support was introduced, Linux systems generally used the "LinuxThreads" implementation of multithreading. This implementation has some technical limitations, so it is generally deprecated in favour of NPTL.

With NPTL, different threads of a single process share that process' PID (process identifier). With LinuxThreads, different threads have separate PIDs. Thus, when a system is switched from NPTL to LinuxThreads threading (e.g. by switching from the i686 glibc package to the i586 one), the number of Process IDs (PIDs) that an application generates may noticeably increase. In one example, an application (e.g. IBM WebSphere) went from 4 PIDs to 58 PIDs. In another, an application (Oracle's GRID) went from 8 PIDs to 96 PIDs.