R.I. --

>> I'm not sure that the "how it got in there" part is irrelevant (for
>> instance, I'd like if you could confirm that state.yaml shows
>> type=>absent on a node that has not been upgraded, and note the

> yes, all my nodes have it - before upgrading.  and people on IRC also
> has it without upgrading

Thanks.  :(   I'd been hoping for a different answer but hey, you take what
you can get.

 * Today you enable auditing, state.yaml gets the audit properties all is
> fine.
>  * 6 months later you disable auditing - now the audit properties remain
> but are
>   orphaned as we're not purging them
>  * you now change the desired state of the file in manifests, maybe with a
> new mode
>  * 1 year on you enable auditing.
>
> Due to the orphaned data you're now comparing the audited state of the
> first
> bullet point - the orphaned data - rather than the last state of the file
> since
> we didnt record this data in the inbetween time and we didnt purge the
> unmanaged
> data.  We shouldnt record the data when auditing is off cos its a perf hit,
> so we
> should purge audit data for resources that arent audited.
>
> In this scenario, you'll get notifies and incorrect audit notification,
> you'll be
> told audited information has changed rather than the more correct new
> audited data
> is gathered.
>

Yep.


>
> > The how that :type got in there doesnt matter right now what matters
> > is a few
> > people on IRC confirmed they have similar bogus data in their
> > state.yaml and
> > so we should focus on the 2nd issue and that is how do we make
> > puppets handling
> > of state.yaml more robust so that old bugs that dumped unexpected or
> > incompatible
> > data into it doesnt impact new versions causing them to send
> > unexpected notifies.
> >
> >
>

> > version), but I agree that a borked state.yaml shouldn't cause a
> > node to panic and go into spin mode. The question is, how do we
> > detect it -- that is, how do we distinguish it from "correct"
> > information?
>
> I think we need to know what we record in unaudited state.  For example
> with file if I delete my state.yaml that has these entries all that I see
> in it then is :checked and :synced.  So when you are not auditing this
> is all the information you should have for file.  Anything else should go
>
> This is the only way I believe a transition from unaudited -> audited ->
> unaudited -> audited can ever work reliably as above
>

This is a pretty big design issue (and comes down to my "how do distinguish
the cases: stale data vs. actual changes?" question), and I'd be surprised
if we don't have an answer for it in hand.  I just don't happen to know what
it is at the moment.  We'll need to not only tell if you *are* auditing but
if you *were* auditing "on the most recent run" (but we don't want a few
minute's dalliance with puppet apply to wipe out all your auditing
information either)...

Guess what I'll probably be looking into this morning?

-- M
-----------------------------------------------------------
When in trouble or in doubt, run in circles,
scream and shout. -- 1920's parody of the
maritime general prudential rule
------------------------------------------------------------

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Developers" group.
To post to this group, send email to puppet-dev@googlegroups.com.
To unsubscribe from this group, send email to 
puppet-dev+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/puppet-dev?hl=en.

Reply via email to