pcp
[Top] [All Lists]

Re: Containers analysis with PCP

To: Nathan Scott <nathans@xxxxxxxxxx>
Subject: Re: Containers analysis with PCP
From: "Frank Ch. Eigler" <fche@xxxxxxxxxx>
Date: Wed, 11 Feb 2015 14:45:41 -0500
Cc: PCP <pcp@xxxxxxxxxxx>
Delivered-to: pcp@xxxxxxxxxxx
In-reply-to: <1930031505.1820911.1423537012392.JavaMail.zimbra@xxxxxxxxxx>
References: <2100915892.5240937.1422867358164.JavaMail.zimbra@xxxxxxxxxx> <768474811.5242777.1422867576642.JavaMail.zimbra@xxxxxxxxxx> <y0m7fvr3tem.fsf@xxxxxxxx> <1602407544.1781133.1423528333125.JavaMail.zimbra@xxxxxxxxxx> <20150210023410.GE25151@xxxxxxxxxx> <1930031505.1820911.1423537012392.JavaMail.zimbra@xxxxxxxxxx>
User-agent: Mutt/1.4.2.2i
Hi -

> > [...]
> > Please check closer.  Nothing appears to have changed about container
> > naming policy or mechanism (pmdas still store it as char*'s,
> > resolution still done repeatedly and ambiguously), which represented
> > the bulk of the concern.
> 
> I understood your concern, but I was then and remain now unconvinced
> of any genuine issues there.  

Perhaps this will help.
Consider the following situation:

% docker run --name=SUBSTRING1 --hostname=FOO1 -i --rm sleep $RANDOM &
% docker run --name=SUBSTRING2 --hostname=FOO2 -i --rm sleep $RANDOM &
% docker run --name=SUBSTRING3 --hostname=FOO3 -i --rm sleep $RANDOM &
% ... and more, coming and going

... while pcp monitoring:

pmval --container=SUBSTRING pmcd.hostname  
                            # but current pmda code (?) appears to work once, 
then
                            # cache the result, even if no containers at all 
stay running

pmval --container=SUBSTRING network.interface.inet_addr
                            # but current pmda code crashes 
     pmcd(31340) Error: ClientLoop: error sending Conn ACK PDU to new client 
IPC protocol failure
     pmcd(31340) Info: CleanupAgent ...
     Cleanup "linux" agent (dom 60): protocol failure for fd=18, exit(0)


Since the code doesn't run well here, I'm unable to show an actual
transcript.  But one can read code (e.g., up and down the call chain
from container_enter_namespaces() in pmdas/linux).  So, according to
the current code/design, which of those SUBSTRING*y containers, coming
& going constantly, are pmval instances supposed to track?  With the
container-name-lookup being done *at every fetch*, it's a coin toss -
and that is absurd. (More cases were outlined in the January
comments.)

Using container-name substrings as though they were a reliable &
persistent identifier is an error.


> Arguing about it then, as now, is sure to be counter-productive, and
> time is precious.

This is unacceptable.


- FChE

<Prev in Thread] Current Thread [Next in Thread>