I just saw a SIGPIPE on a patched cfservd host, so it hasn't solved the 
SIGPIPE issue where connections are terminated during copy transactions. 
This was largely expected though since patch was implemented more to help 
us scale the environment than to fix the issue with data integrity.

On Mon, 13 Jul 2009, Chris Ward wrote:

>
> Hi Mark, we just rolled this change out so we're still in the initial
> stages of gauging its impact.
>
> On Fri, 10 Jul 2009, Mark Burgess wrote:
>
>>
>> Chris, thanks. If you put this back does it solve any of the issues
>> you were having?
>>
>> Chris Ward wrote:
>>>
>>> Turns out there was some code that was removed from cfservd.c in version
>>> 2.2.10, and possibly prior to that version. Adding the following to
>>> cfservd.c returns the ability to turn LastSeen off from within
>>> cfservd.conf:
>>>
>>>
>>> l321:
>>>
>>> if (OptionIs(CONTEXTID,"LastSeen",false))
>>>    {
>>>    LASTSEEN = false;
>>>    }
>>>
>>>
>>> l1840:
>>>
>>>    if (LASTSEEN)
>>>       {
>>>       LastSeen(dns_assert,cf_accept);
>>>       }
>>>
>>>
>>> ~/src/cfengine-2.2.10/src$ diff cfservd.c cfservd.c.lastseen.fixed
>>> 320a321,325
>>>> if (OptionIs(CONTEXTID,"LastSeen",false))
>>>>    {
>>>>    LASTSEEN = false;
>>>>    }
>>>>
>>> 1835c1840,1846
>>> <    LastSeen(dns_assert,cf_accept);
>>> ---
>>>>    if (LASTSEEN)
>>>>       {
>>>>       LastSeen(dns_assert,cf_accept);
>>>>       }
>>>>
>>>> /*   LastSeen(dns_assert,cf_accept); */
>>>>
>>>
>>>
>>>
>>> On Fri, 10 Jul 2009, Chris Ward wrote:
>>>
>>>>
>>>> I've been able to verify that version 2.2.10 of cfservd does not honor
>>>> the
>>>> LastSeen setting. I've tested this out against both libdb-4.2 and
>>>> libdb-4.6. What happens is that with LastSeen set to 'off' (or 'false')
>>>> the cfservd process will create a lastseen db file per client that
>>>> connects, ex. cf_LastSeen.db.host.domain.com. More context is provided
>>>> below from a prior email.
>>>>
>>>> I'm not sure when exactly this bug was introduced, but v2.1.20 of cfservd
>>>> works as expected. That is, if you set LastSeen to 'false' then
>>>> v2.1.20 of
>>>> cfservd will not create a lastseen database file for each client that
>>>> connects to the server. Maybe LastSeen was omitted as being a valid
>>>> option
>>>> in cfservd.conf sometime after 2.1.20?
>>>>
>>>>
>>>> ---------- Forwarded message ----------
>>>> Date: Tue, 30 Jun 2009 10:04:42 -0700
>>>> From: Chris Ward <kr...@facebook.com>
>>>> To: "help-cfeng...@cfengine.org" <help-cfeng...@cfengine.org>
>>>> Subject: cfservd not honoring lastseen?
>>>>
>>>>
>>>> Hi, has anyone else had difficulty in completely turning off the lastseen
>>>> databases on the cfservd side (v2.2.10)? I've added "LastSeen = ( off )"
>>>> to the control section in update.conf, cfagent.conf and even
>>>> cfservd.conf.
>>>> According to the docs this is an option to cfagent, and not cfservd,
>>>> but I
>>>> thought I'd try adding it to cfservd.conf anyway.
>>>>
>>>> So even with this option set to 'off' or 'false' the lastseen database
>>>> files are populated per host on the server side, ex.
>>>> cf_LastSeen.db.$fqdn.
>>>> Running 'cfservd -d0' shows that lastseen is being set to 'off' (see
>>>> below), but if I clear out all the lastseen db files and restart the
>>>> cfservd process they are still populated. Can someone speak to what might
>>>> be instructing cfservd to populate those files? Maybe I'm missing an
>>>> option to either cfservd.conf or cfagent&update.conf?
>>>>
>>>> One interesting debug line is this one (full output below):
>>>>
>>>> GetMacroValue(server,LastSeenExpireAfter): using scope 'server' for
>>>> variable 'LastSeenExpireAfter'
>>>>
>>>> We don't define LastSeenExpireAfter on the client side, but maybe it
>>>> defaults to a value that instructs the server to record lastseen info?
>>>> I've tried setting LastSeenExpireAfter to '0', but that did not prevent
>>>> the server from creating the lastseen dbs.
>>>>
>>>> -Chris
>>>>
>>>>
>>>>
>>>> LVALUE LastSeen
>>>> HandleLVALUE(LastSeen) in action Control Defintions:
>>>> RecordMacroId(LastSeen)
>>>> EQUALS =
>>>> LEFTBRACK
>>>> RVAL-VAROBJ off
>>>> ExpandVarstring( off )
>>>> Add |off| to str, waiting at ||
>>>> Returning varstring (off)
>>>> IsInstallable(any) - true
>>>> Assign variable [LastSeen=off] when any)
>>>> AddMacroValue(server.LastSeen=off)
>>>> ExpandVarstring( off )
>>>> Add |off| to str, waiting at ||
>>>> Returning varstring (off)
>>>> Added Macro at hash address 1309 to object server with value LastSeen=off
>>>> RIGHTBRACK
>>>>
>>>> LastSeen(host.example.domain.com) reg
>>>> IPV4 address
>>>> sockaddr_ntop(10.0.0.100)
>>>> Found address (10.0.0.100) for host host.example.domain.com
>>>> GetMacroValue(server,LastSeenExpireAfter)
>>>> GetMacroValue(server,LastSeenExpireAfter): using scope 'server' for
>>>> variable 'LastSeenExpireAfter'
>>>>
>>>> _______________________________________________
>>>> Help-cfengine mailing list
>>>> help-cfeng...@cfengine.org
>>>> https://cfengine.org/mailman/listinfo/help-cfengine
>>>> _______________________________________________
>>>> Bug-cfengine mailing list
>>>> Bug-cfengine@cfengine.org
>>>> https://cfengine.org/mailman/listinfo/bug-cfengine
>>>>
>>
>> --
>> Mark Burgess
>>
>> -------------------------------------------------
>> Professor of Network and System Administration
>> Oslo University College, Norway
>>
>> Personal Web: http://www.iu.hio.no/~mark
>> Office Telf : +47 22453272
>> -------------------------------------------------
>>
> _______________________________________________
> Bug-cfengine mailing list
> Bug-cfengine@cfengine.org
> https://cfengine.org/mailman/listinfo/bug-cfengine
>
_______________________________________________
Bug-cfengine mailing list
Bug-cfengine@cfengine.org
https://cfengine.org/mailman/listinfo/bug-cfengine

Reply via email to