All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sukadev Bhattiprolu <sukadev-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>
To: Daniel Lezcano <dlezcano-NmTC/0ZBporQT0dZR+AlfA@public.gmane.org>
Cc: Linux Containers
	<containers-qjLDD68F18O7TbgM5vRIOg@public.gmane.org>,
	Pavel Emelianov <xemul-GEFAQzZX7r8dnm+yROfE0A@public.gmane.org>,
	Linux Kernel Mailing List
	<linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
	andrea-Vyt77T80VFVWk0Htik3J/w@public.gmane.org,
	"Eric W. Biederman"
	<ebiederm-aS9lmoZGLiVWk0Htik3J/w@public.gmane.org>
Subject: Re: pidns memory leak
Date: Tue, 13 Oct 2009 23:15:33 -0700	[thread overview]
Message-ID: <20091014061533.GA23569@us.ibm.com> (raw)
In-Reply-To: <4AD2EBC7.2020109-NmTC/0ZBporQT0dZR+AlfA@public.gmane.org>

Daniel Lezcano [dlezcano-NmTC/0ZBporQT0dZR+AlfA@public.gmane.org] wrote:
> Sukadev Bhattiprolu wrote:
>> Ccing  Andrea's new email id:
>>
>> Daniel Lezcano [dlezcano-NmTC/0ZBporQT0dZR+AlfA@public.gmane.org] wrote:
>>   
>>> Following your explanation I was able to reproduce a simple program   
>>> added in attachment. But there is something I do not understand is 
>>> why  the leak does not appear if I do the 'lstat' (cf. test program) 
>>> in the  pid 2 context.
>>>     
>>
>> Hmm, are you sure there is no leak with this test program ? If I put back
>> the commit (7766755a2f249e7), I do see a leak in all three data structures
>> (pid_2, proc_inode, pid_namespace).
>>   
>
> Let me clarify :)
>
> The program leaks with the commit 7766755a2f249e7 and does not leak  
> without this commit.
> This is the expected behaviour and this simple program spots the problem.
>
> I tried to modify the program and I moved the lstat to the process 2 in  
> the child namespace. Conforming your analysis, I was expecting to see a  
> leak too, but this one didn't occur. I was wondering why, maybe there is  
> something I didn't understood in the analysis.

Hmm, There are two separate dentries associated with the processes.
One in each mount of /proc. The proc dentries in the child container
are freed when the child container unmounts its /proc so you don't see
the leak when the lstat() is inside the container.

When the lstat() is in the root container, it is accessing proc-dentries
from the _root container_ - They are supposed to  be flushed when the task
exits (but the above commit prevents that flush). They should be freed
when the /proc in root container is unmounted - and leak until then ?

Sukadev

WARNING: multiple messages have this Message-ID (diff)
From: Sukadev Bhattiprolu <sukadev@linux.vnet.ibm.com>
To: Daniel Lezcano <dlezcano@fr.ibm.com>
Cc: Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	andrea@cpushare.com, "Eric W. Biederman" <ebiederm@xmission.com>,
	Linux Containers <containers@lists.osdl.org>,
	Pavel Emelianov <xemul@openvz.org>
Subject: Re: pidns memory leak
Date: Tue, 13 Oct 2009 23:15:33 -0700	[thread overview]
Message-ID: <20091014061533.GA23569@us.ibm.com> (raw)
In-Reply-To: <4AD2EBC7.2020109@fr.ibm.com>

Daniel Lezcano [dlezcano@fr.ibm.com] wrote:
> Sukadev Bhattiprolu wrote:
>> Ccing  Andrea's new email id:
>>
>> Daniel Lezcano [dlezcano@fr.ibm.com] wrote:
>>   
>>> Following your explanation I was able to reproduce a simple program   
>>> added in attachment. But there is something I do not understand is 
>>> why  the leak does not appear if I do the 'lstat' (cf. test program) 
>>> in the  pid 2 context.
>>>     
>>
>> Hmm, are you sure there is no leak with this test program ? If I put back
>> the commit (7766755a2f249e7), I do see a leak in all three data structures
>> (pid_2, proc_inode, pid_namespace).
>>   
>
> Let me clarify :)
>
> The program leaks with the commit 7766755a2f249e7 and does not leak  
> without this commit.
> This is the expected behaviour and this simple program spots the problem.
>
> I tried to modify the program and I moved the lstat to the process 2 in  
> the child namespace. Conforming your analysis, I was expecting to see a  
> leak too, but this one didn't occur. I was wondering why, maybe there is  
> something I didn't understood in the analysis.

Hmm, There are two separate dentries associated with the processes.
One in each mount of /proc. The proc dentries in the child container
are freed when the child container unmounts its /proc so you don't see
the leak when the lstat() is inside the container.

When the lstat() is in the root container, it is accessing proc-dentries
from the _root container_ - They are supposed to  be flushed when the task
exits (but the above commit prevents that flush). They should be freed
when the /proc in root container is unmounted - and leak until then ?

Sukadev

  parent reply	other threads:[~2009-10-14  6:15 UTC|newest]

Thread overview: 37+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-10-02 12:27 pidns memory leak Daniel Lezcano
2009-10-02 12:27 ` Daniel Lezcano
     [not found] ` <4AC5F198.2070407-NmTC/0ZBporQT0dZR+AlfA@public.gmane.org>
2009-10-06  4:05   ` Sukadev Bhattiprolu
2009-10-06  4:05     ` Sukadev Bhattiprolu
     [not found]     ` <20091006040526.GA22923-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
2009-10-06  8:18       ` Daniel Lezcano
2009-10-06  8:18         ` Daniel Lezcano
     [not found]         ` <4ACAFD6A.3060008-NmTC/0ZBporQT0dZR+AlfA@public.gmane.org>
2009-10-08  3:08           ` Sukadev Bhattiprolu
2009-10-08  3:08             ` Sukadev Bhattiprolu
     [not found]             ` <20091008030828.GA18973-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
2009-10-08  8:11               ` Daniel Lezcano
2009-10-08  8:11                 ` Daniel Lezcano
     [not found]                 ` <4ACD9ECC.90508-NmTC/0ZBporQT0dZR+AlfA@public.gmane.org>
2009-10-09  3:29                   ` Sukadev Bhattiprolu
2009-10-09  3:29                     ` Sukadev Bhattiprolu
     [not found]                     ` <20091009032928.GA2031-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
2009-10-09 13:18                       ` Daniel Lezcano
2009-10-09 13:18                         ` Daniel Lezcano
     [not found]                         ` <4ACF381F.9050808-NmTC/0ZBporQT0dZR+AlfA@public.gmane.org>
2009-10-09 20:38                           ` Sukadev Bhattiprolu
2009-10-09 20:38                             ` Sukadev Bhattiprolu
     [not found]                             ` <20091009203809.GA12230-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
2009-10-09 20:50                               ` Eric W. Biederman
2009-10-09 20:50                                 ` Eric W. Biederman
     [not found]                                 ` <m18wfkl2bf.fsf-+imSwln9KH6u2/kzUuoCbdi2O/JbrIOy@public.gmane.org>
2009-10-10  1:58                                   ` Sukadev Bhattiprolu
2009-10-10  1:58                                     ` Sukadev Bhattiprolu
     [not found]                                     ` <20091010015859.GB11904-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
2009-10-10  2:08                                       ` Eric W. Biederman
2009-10-10  2:08                                         ` Eric W. Biederman
2009-10-09 21:54                           ` Matt Helsley
2009-10-09 21:54                             ` Matt Helsley
2009-10-10  1:32                           ` Sukadev Bhattiprolu
2009-10-10  1:32                             ` Sukadev Bhattiprolu
     [not found]                             ` <20091010013235.GA11904-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
2009-10-12  8:41                               ` Daniel Lezcano
2009-10-12  8:41                                 ` Daniel Lezcano
     [not found]                                 ` <4AD2EBC7.2020109-NmTC/0ZBporQT0dZR+AlfA@public.gmane.org>
2009-10-14  6:15                                   ` Sukadev Bhattiprolu [this message]
2009-10-14  6:15                                     ` Sukadev Bhattiprolu
     [not found]                                     ` <20091014061533.GA23569-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
2009-11-02 21:33                                       ` Andrew Morton
2009-11-02 21:33                                         ` Andrew Morton
2009-11-02 22:38                                         ` Serge E. Hallyn
2009-11-02 22:47                                           ` Andrew Morton
2009-11-03  7:24                                             ` Cedric Le Goater
2009-11-03  8:41                                               ` Eric W. Biederman
2009-11-03  9:24                                                 ` Cedric Le Goater

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20091014061533.GA23569@us.ibm.com \
    --to=sukadev-23vcf4htsmix0ybbhkvfkdbpr1lh4cv8@public.gmane.org \
    --cc=andrea-Vyt77T80VFVWk0Htik3J/w@public.gmane.org \
    --cc=containers-qjLDD68F18O7TbgM5vRIOg@public.gmane.org \
    --cc=dlezcano-NmTC/0ZBporQT0dZR+AlfA@public.gmane.org \
    --cc=ebiederm-aS9lmoZGLiVWk0Htik3J/w@public.gmane.org \
    --cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=xemul-GEFAQzZX7r8dnm+yROfE0A@public.gmane.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.