2.6.16-rc5-mm2 - yet another memory leak...

Valdis.Kletnieks at vt.edu Valdis.Kletnieks at vt.edu
Mon Mar 6 20:18:05 UTC 2006


On Mon, 06 Mar 2006 14:18:47 EST, Steve Grubb said:
> On Sunday 05 March 2006 19:38, Valdis.Kletnieks at vt.edu wrote:
> > Yet another leak - this time it seems to be the audit_socketcall()
> > in sys_socketcall().
> 
> I've been looking through the code and don't see the leak. audit_free_context
> calls audit_free_aux which appears to do the right thing. Does anyone else 
> see the leak?

I wonder if the problem is that audit_free_context() never gets hit for some
things.  I didn't get warm and fuzzies about the fact that *all* calls to
sys_socketcall() end up hitting it - a few lines later we have a huge switch:

                case SYS_SOCKET:
                case SYS_BIND:
                case SYS_CONNECT:
                case SYS_LISTEN:
                case SYS_ACCEPT:
                case SYS_GETSOCKNAME:
                case SYS_GETPEERNAME:
                case SYS_SOCKETPAIR:
                case SYS_SEND:
                case SYS_SENDTO:
                case SYS_RECV:
                case SYS_RECVFROM:
                case SYS_SHUTDOWN:
                case SYS_SETSOCKOPT:
                case SYS_GETSOCKOPT:
                case SYS_SENDMSG:
                case SYS_RECVMSG:
                default:

Does one of these paths manage to escape hitting the cleanup, because it doesn't
do anything that's LSPP auditable?

> > (Meta-question - why am I tripping over all these leaks?)
> 
> Cause no one else is testing like you. How are you finding the leaks? More 
> people could watch for these if you tell us what you are doing. BTW, thanks 
> for pointing them out.

I build the kernel on my laptop, I boot it, and after a few hours, I see
a growing number in /proc/meminfo for slab, and a matching odd entry in
/proc/slabinfo.  That's why I don't understand why I've hit 3 leaks of
this magnitude - is everybody else testing this code running it for just
short tests on BHI (Big Honkin' Iron) hardware, rather than trying to stay
up for a weekend on a laptop class box?

I've been up and running for an hour, and I got this:

% grep size-32 /proc/slabinfo
size-32           118052 118104     44   84    1 : tunables   32   16    0 : slabdata   1406   1406      0 : globalstat  138932 118052  1407    1          0    1    0    0 : cpustat 640001   9763 530408   1305
% echo "size-32 0 0 0" >| /proc/slabinfo 
% dmesg -c -s 16000000 > /tmp/f2
% ls -l /tmp/f2
8736 -rw-r--r-- 1 root root 8929222 Mar  6 14:36 /tmp/f2
% grep ' obj ' /tmp/f2 | cut -f2 -d: | sort | uniq -c | sort -nr | head
 105187  c02e72b2 <sys_socketcall+0x4d/0x186>
   8412  c01da799 <cond_insertf+0xb5/0x10d>
   4949  c01d5007 <ebitmap_read+0xc1/0x1ce>
   2136  c01d52b2 <hashtab_insert+0x64/0xc3>
   1873  c01d795f <policydb_read+0x2b9/0xbbe>
   1454  c01d72ea <type_read+0x1e/0xde>
   1153  c01cf596 <selinux_file_alloc_security+0x25/0x47>
    353  c0151a85 <cache_alloc_refill+0x35c/0x59f>
    288  c01d67e0 <perm_read+0x1e/0xcf>
    268  c018c5c4 <sysfs_create_link+0x4a/0xda>

And in the 20 minutes I spent composing this mail, it's grown:

% grep size-32 /proc/slabinfo 
size-32           146496 146496     44   84    1 : tunables   32   16    0 : slabdata   1744   1744      0 : globalstat  168336 146496  1745    1          0    1    0    0 : cpustat 779819  11855 643828   1365

Yowza.



-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 228 bytes
Desc: not available
URL: <http://listman.redhat.com/archives/linux-audit/attachments/20060306/1c6bcacf/attachment.sig>


More information about the Linux-audit mailing list