IBM Support

On Linux MSC VP process may show huge memory consumption due to a bug in PAM shared library

Troubleshooting


Problem

You are running Informix on Linux and you have configured PAM in a way to use nss_ldap shared libraries for Informix authentication. You noticed that there is a huge increase in memory consumption. That is caused by a bug in nss_ldap package that leads to memory leak in MSC VP process if PAM is enabled.

Symptom

The main symptom is a huge memory consumption shown for MSC VP process.

Cause

The problem was first encountered by users of CentOS 5.5. However it is possible that other Linux distributions are also vulnerable to that problem.

The following known bug in nss_ldap package that leads to memory leak:

httр s://zid-lux1.uibk.ac.at/linux/rpm2html/centos/5/os/i386/CentOS/nss_ldap-253-49.el5.i386.html

Quote:

Wed Dec 01 2010 Nalin Dahyabhai <nalin@redhat.com> - 253-34
- link nss_ldap and pam_ldap with -z nodelete so that memory allocated by
library dependencies which is lost at unload doesn't leak, for the sake
of applications which call PAM for authentication many times over (Mark
Goodwin, #511238)
- fix some memory leaks in pam_ldap (upstream #326,#333, part of #511238)

Diagnosing The Problem

The problem can be easily spotted by running 'ps aux' command. For example:


[root@linux16 ~]# ps aux | grep -E "((oninit)|(USER))"
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 8330 0.0 0.0 61156 804 pts/6 S+ 12:26 0:00 grep -E ((oninit)|(USER))
informix 21983 2.0 0.9 581812 466412 ? S< Nov29 175:24 oninit
root 21995 0.0 0.0 581812 6864 ? S< Nov29 0:00 oninit
root 21996 0.0 0.0 579556 5436 ? S< Nov29 1:00 oninit
root 22001 0.0 0.0 579556 5284 ? S< Nov29 0:14 oninit
root 22009 0.0 0.1 581608 92688 ? S< Nov29 5:27 oninit
root 22019 0.1 52.0 26314576 25750744 ? S< Nov29 14:14 oninit
root 22025 0.0 0.0 579556 4096 ? S< Nov29 0:00 oninit
root 22030 0.0 0.0 579556 21184 ? S< Nov29 5:22 oninit
root 22031 0.0 0.1 581608 51224 ? S< Nov29 1:39 oninit
root 22036 0.0 0.0 581608 34100 ? S< Nov29 1:19 oninit
root 22037 0.0 0.0 581608 31368 ? S< Nov29 1:11 oninit
root 22038 0.0 0.0 581608 31896 ? S< Nov29 0:36 oninit
root 22039 0.0 0.0 581608 26944 ? S< Nov29 0:25 oninit
root 22040 0.0 0.0 581608 25948 ? S< Nov29 0:18 oninit

In above example oninit process with PID 22019 shows unreasonably high memory consumption.

If we check the 'onstat -g glo' command output, we'll see that this PID belongs to MSC VP:

Individual virtual processors:
vp pid class usercpu syscpu total Thread Eff
1 21983 cpu 9465.58 640.74 10106.32 10476.46 96%
2 21995 adm 0.06 0.42 0.48 0.00 0%
3 21996 lio 6.04 51.59 57.63 435.09 13%
4 22001 pio 0.95 13.18 14.13 68.56 20%
5 22009 aio 140.30 173.37 313.67 1787.06 17%
6 22019 msc 701.98 112.72 814.70 2650.62 30%
7 22025 fifo 0.00 0.02 0.02 0.02 100%
8 22030 soc 137.11 173.53 310.64 NA NA
9 22031 aio 40.07 56.60 96.67 1406.35 6%
10 22036 aio 29.34 47.42 76.76 1299.37 5%
11 22037 aio 23.37 45.26 68.63 1257.27 5%
12 22038 aio 14.28 21.28 35.56 796.32 4%
13 22039 aio 9.03 15.97 25.00 689.36 3%
14 22040 aio 5.96 12.27 18.23 619.22 2%
tot 10574.07 1364.37 11938.44

The next step is to check whether the version of nss_ldap package that is in use is older than 253-49 or not.
To check that please check the installed version by running "rpm -q nss_ldap" command.

Resolving The Problem

Upgrade nss_ldap and all relevant packages to the latest available version.

[{"Product":{"code":"SSGU8G","label":"Informix Servers"},"Business Unit":{"code":"BU053","label":"Cloud & Data Platform"},"Component":"Not Applicable","Platform":[{"code":"PF016","label":"Linux"}],"Version":"11.5;11.7;11.70","Edition":"Developer;Growth;Innovator;Ultimate","Line of Business":{"code":"","label":""}}]

Document Information

Modified date:
03 June 2021

UID

swg21621943