[lxc-devel] [PATCH 2/2] daemon: remove pidfile when daemon container is stopped

Qiang Huang h.huangqiang at huawei.com
Mon Jan 20 07:22:31 UTC 2014


On 2014/1/19 8:57, Stéphane Graber wrote:
> On Sat, Jan 18, 2014 at 03:00:00PM +0800, Qiang Huang wrote:
>> This is for bug: https://github.com/lxc/lxc/issues/89
>>
>> When start container with daemon model, the daemon process's
>> father will return back to main in start time, and pidfile
>> is removed then, that's not right.
>> So we store pidfile to lxc_container, and remove it when
>> lxc_container_free.
> 
> That one looks wrong to me, removing the pid file on lxc_container_free
> is wrong. We want the pidfile removed when the background lxc-start
> exits, not whenever a random API client flushes the container from
> memory.
> 
> With your patch, doing something like:
>  - lxc-start -n p1 -d -p /tmp/pid
>  - python3
>      import lxc
>      p1 = lxc.Container("p1")
>      p1 = None

I'm sorry I'm not family with python, can you explain how this would
happen in real world? Thanks.

> 
> Or the equivalent with any binding, or directly in C, will destroy the
> pid file even though the container is clearly still running.

I thought when the backgroud lxc-start exits, it's time for container
to free, because there are no other place to do lxc_contaier_get to
hold the container from freeing.

I must missed something :( , so waiting for your more details.




More information about the lxc-devel mailing list