[Lxc-users] unstoppable container

Daniel Lezcano daniel.lezcano at free.fr
Mon Aug 30 11:08:55 UTC 2010


On 08/30/2010 12:40 PM, Papp Tamás wrote:
>
> Daniel Lezcano wrote, On 2010. 08. 30. 11:26:
>> Hmm, too bad :) I was about to ask you some informations about the
>> processes of the containers.
>
> Well, I was happy too early.
>
>> If that happens again, can you check/report the following :
>>
>>   * the content of the tasks file in the cgroup directory ?
>
> Killing lxc-start make the container disappear only from lxc-ls's output.

Yes, right. lxc-ls does look for an abstract af_unix socket, so when 
lxc-start disappears, the socket disappears too.

> In the tasks file I saw three processes: udevd, init and one more, which
> I don't remember. I killed them all, but the cgroup still exists.

The cgroup is removed by lxc-start, but this is not a problem, because 
it will be removed (if empty), when running lxc-start again.

>>   * the state of the processes of the containers (stopped or not)
>
> I don't know, what do you mean on stopped. Is there any available?

Sorry, I meant "stopped" in a unix process semantic way (zombie, 
stopped, running, uninterruptible, ...)

The command is :

lxc-ps --lxc -axf

Where the output is like:

CONTAINER    PID TTY      STAT   TIME COMMAND
ubuntu2     6705 ?        Ss     0:00 /sbin/init
ubuntu2     6805 ?        Ss     0:00 dbus-daemon --system --fork
ubuntu2     6857 ?        Sl     0:00 /usr/sbin/console-kit-daemon 
--no-daemon
ubuntu2     6966 ?        Ss     0:00 dhclient3 -e IF_METRIC=100 -pf 
/var/run/dhclient.eth0.pid -lf /var/lib/dhcp3/dhclient.eth0.leases eth0


The interesting information is the STAT column.

Usually, there is a mechanism used in lxc to kill -9 the process 1 of 
the container (which wipes out all the processes of the containers) when 
lxc-start dies.

So if you still have the processes running inside the container but 
lxc-start is dead, then:
   * you are using a 2.6.32 kernel which is buggy (this mechanism is 
broken).
  or/and
  * there are processes in 'T' states within the container

>>   * and the state of the lxc-start process ( cat /proc/<pid>/stack )
>
> Well, next time.
>
>> Was the lxc-stop blocked ?
>
> Nope.
>
> Now, I could stop it. I could remove the containers directory, then copy
> there a new install tarball. After that, lxc-destroy, than start, then
> stop and finally I'm happy again.
>
> But I'm afraid this won't help you to debug it:(

Maybe you have a kernel trace in /var/log/messages ...

Thanks for reporting the problem.

  -- Daniel





More information about the lxc-users mailing list