[lxc-devel] lxc_monitord - monitor exiting
S.Çağlar Onur
caglar at 10ur.org
Sat May 4 04:01:45 UTC 2013
Hi all,
I think I understand why I'm confused before while chasing another bug.
This is what I'm seeing right now.
* I patched lxc_monitord.c with following
diff --git a/src/lxc/lxc_monitord.c b/src/lxc/lxc_monitord.c
index e76af71..59f1e9d 100644
--- a/src/lxc/lxc_monitord.c
+++ b/src/lxc/lxc_monitord.c
@@ -373,6 +373,7 @@ int main(int argc, char *argv[])
}
if (lxc_monitord_create(&mon)) {
+ NOTICE("create failed");
goto out;
}
@@ -398,6 +399,7 @@ int main(int argc, char *argv[])
NOTICE("no clients for 30 seconds, exiting");
break;
}
+ NOTICE("clients %d", mon.clientfds_cnt);
}
lxc_mainloop_close(&mon.descr);
* I started 10 containers using go bindings
[caglar at qgq:~/Project/lxc/examples] sudo ./concurrent_start
Starting the container (3)...
Starting the container (2)...
Starting the container (4)...
Starting the container (0)...
Starting the container (1)...
Starting the container (8)...
Starting the container (7)...
Starting the container (6)...
Starting the container (5)...
Starting the container (9)...
* Then started to stop them 1 by 1 using lxc-stop
[caglar at qgq:~/Project/lxc/examples] sudo lxc-stop -n 0
[caglar at qgq:~/Project/lxc/examples] sudo ./list
0 (STOPPED)
1 (RUNNING)
2 (RUNNING)
3 (RUNNING)
4 (RUNNING)
5 (RUNNING)
6 (RUNNING)
7 (RUNNING)
8 (RUNNING)
9 (RUNNING)
[caglar at qgq:~/Project/lxc/examples] date && sudo ./list
Fri May 3 23:57:14 EDT 2013
0 (STOPPED)
1 (STOPPED)
2 (STOPPED)
3 (STOPPED)
4 (STOPPED)
5 (STOPPED)
6 (STOPPED)
7 (STOPPED)
8 (STOPPED)
9 (RUNNING)
bleach (STOPPED)
* lxc-monitord is still around after ~10min
[caglar at qgq:~/Project/lxc/examples] ps aux | grep /usr/bin/lxc-monitord
caglar 1170 0.0 0.0 13580 940 pts/3 S+ 23:57 0:00 grep
--color=auto /usr/bin/lxc-monitord
root 29997 0.0 0.0 15000 744 ? Ss 23:47 0:00
/usr/bin/lxc-monitord /var/lib/lxc 5
[caglar at qgq:~/Project/lxc/examples] date
Fri May 3 23:57:52 EDT 2013
* And lastly here is what lxc-monitord.log shows
[caglar at qgq:~/Project/lxc(clone)] tail -f /var/lib/lxc/lxc-monitord.log
lxc-monitord 1367639242.631 NOTICE lxc_monitord - monitoring lxcpath
/var/lib/lxc
lxc-monitord 1367639242.633 NOTICE lxc_monitord - create failed
lxc-monitord 1367639242.633 NOTICE lxc_monitord - create failed
lxc-monitord 1367639242.636 NOTICE lxc_monitord - create failed
lxc-monitord 1367639242.639 NOTICE lxc_monitord - create failed
lxc-monitord 1367639242.643 NOTICE lxc_monitord - create failed
lxc-monitord 1367639242.643 NOTICE lxc_monitord - create failed
lxc-monitord 1367639242.651 NOTICE lxc_monitord - create failed
lxc-monitord 1367639242.654 NOTICE lxc_monitord - create failed
lxc-monitord 1367639242.665 NOTICE lxc_monitord - create failed
lxc-monitord 1367639242.678 NOTICE lxc_monitord - create failed
lxc-monitord 1367639242.681 NOTICE lxc_monitord - create failed
lxc-monitord 1367639242.681 NOTICE lxc_monitord - create failed
lxc-monitord 1367639242.682 NOTICE lxc_monitord - create failed
lxc-monitord 1367639242.707 NOTICE lxc_monitord - create failed
lxc-monitord 1367639242.710 NOTICE lxc_monitord - create failed
lxc-monitord 1367639242.710 NOTICE lxc_monitord - create failed
lxc-monitord 1367639242.722 NOTICE lxc_monitord - create failed
lxc-monitord 1367639242.733 NOTICE lxc_monitord - create failed
lxc-monitord 1367639242.831 NOTICE lxc_monitord - create failed
lxc-monitord 1367639274.071 NOTICE lxc_monitord - clients 9
lxc-monitord 1367639323.928 NOTICE lxc_monitord - clients 9
lxc-monitord 1367639372.862 NOTICE lxc_monitord - clients 9
lxc-monitord 1367639444.107 NOTICE lxc_monitord - clients 9
lxc-monitord 1367639474.130 NOTICE lxc_monitord - clients 9
lxc-monitord 1367639504.133 NOTICE lxc_monitord - clients 9
lxc-monitord 1367639534.161 NOTICE lxc_monitord - clients 9
lxc-monitord 1367639564.190 NOTICE lxc_monitord - clients 9
lxc-monitord 1367639594.209 NOTICE lxc_monitord - clients 9
lxc-monitord 1367639624.223 NOTICE lxc_monitord - clients 9
lxc-monitord 1367639654.256 NOTICE lxc_monitord - clients 9
lxc-monitord 1367639684.287 NOTICE lxc_monitord - clients 9
lxc-monitord 1367639714.317 NOTICE lxc_monitord - clients 9
lxc-monitord 1367639744.347 NOTICE lxc_monitord - clients 9
lxc-monitord 1367639774.370 NOTICE lxc_monitord - clients 9
lxc-monitord 1367639804.396 NOTICE lxc_monitord - clients 9
lxc-monitord 1367639834.426 NOTICE lxc_monitord - clients 9
lxc-monitord 1367639864.456 NOTICE lxc_monitord - clients 9
lxc-monitord 1367639894.486 NOTICE lxc_monitord - clients 9
On Fri, Apr 26, 2013 at 4:52 PM, S.Çağlar Onur <caglar at 10ur.org> wrote:
> Yeah, I think you all correct and I'm just confused - probably direct
> effect of lack of caffeine. And no, it's not complicating something for me,
> it's working great. I just want to make sure that I'm wrong :)
>
>
> On Fri, Apr 26, 2013 at 4:37 PM, Dwight Engen <dwight.engen at oracle.com>wrote:
>
>> On Fri, 26 Apr 2013 22:07:22 +0200
>> Stéphane Graber <stgraber at ubuntu.com> wrote:
>>
>> > On 04/26/2013 09:42 PM, S.Çağlar Onur wrote:
>> > > Hey Dwight,
>> > >
>> > > I'm observing following behavior with staging tree and just wanted
>> > > to make sure that what I'm seeing is the expected;
>> > >
>> > > * Initially nothing runs
>> > >
>> > > [caglar at qgq:~/Projects/lxc/examples] sudo ./list
>> > > bankai (STOPPED)
>> > > bleach (STOPPED)
>> > > zangetsu (STOPPED)
>> > >
>> > > * I start one container using the API
>> > >
>> > > [caglar at qgq:~/Projects/lxc/examples] sudo ./start -name zangetsu
>> > > Starting the container...
>> > >
>> > > [caglar at qgq:~/Projects/lxc/examples] sudo ./list
>> > > bankai (STOPPED)
>> > > bleach (STOPPED)
>> > > zangetsu (RUNNING)
>> > >
>> > > * monitord starts as expected but exits after 30 seconds later
>> > > (although container is still running);
>> > >
>> > > [caglar at qgq:~/Projects/lxc-upstream(staging)] tail -f
>> > > /var/lib/lxc/lxc-monitord.log
>> > > lxc-monitord 1367004858.616 NOTICE lxc_monitord - monitoring
>> > > lxcpath /var/lib/lxc
>> > > lxc-monitord 1367004888.677 NOTICE lxc_monitord - no clients
>> > > for 30 seconds, exiting
>> > > lxc-monitord 1367004888.677 NOTICE lxc_monitord - monitor
>> > > exiting
>> > >
>> > > [caglar at qgq:~/Projects/lxc/examples] sudo ./list
>> > > bankai (STOPPED)
>> > > bleach (STOPPED)
>> > > zangetsu (RUNNING)
>> > >
>> > > [caglar at qgq:~/Projects/lxc/examples] ps aux | grep monitord
>> > > caglar 28404 0.0 0.0 7240 624 pts/54 S+ 15:34 0:00
>> > > tail -f /var/lib/lxc/lxc-monitord.log
>> > > caglar 29037 0.0 0.0 9436 948 pts/0 S+ 15:38 0:00
>> > > grep --color=auto monitord
>> > > [caglar at qgq:~/Projects/lxc/examples]
>> > >
>> > > I'm asking cause I was under the impression that lxc-monitord will
>> > > keep running as long as there is a container. Am I wrong?
>> >
>> > I believe the monitor will get spawned the first time something needs
>> > it (lxc-monitor/lxc-wait) and exit 30s after the last client
>> > disconnects. It'll then be respawned the next time lxc-monitor or
>> > lxc-wait is started again that container.
>>
>> Yep Stéphane, that is correct. Also note that the monitord is per
>> lxcpath, not per container.
>>
>> Çağlar, you may have been slightly confused because if you start a
>> container in daemon mode through the API, the API does an internal
>> lxc_wait() and thus a monitord will get spawned when you first start a
>> container, but will go away ~30 seconds afterwards.
>>
>
>
>
> --
> S.Çağlar Onur <caglar at 10ur.org>
>
--
S.Çağlar Onur <caglar at 10ur.org>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.linuxcontainers.org/pipermail/lxc-devel/attachments/20130504/5e3e40be/attachment.html>
More information about the lxc-devel
mailing list