[chef] Re: Re: Re: Re: Re: Re: Re: Template being updated every chef run


Chronological Thread 
  • From: "John E. Vincent (lusis)" < >
  • To:
  • Subject: [chef] Re: Re: Re: Re: Re: Re: Re: Template being updated every chef run
  • Date: Mon, 15 Oct 2012 12:32:05 -0400

This is a ruby thing and not a Chef thing per se. Until 1.9 ruby hash
objects, for instance, did not preserve insert order. While I've
rarely run into this edge case inside Chef, if you think it's going to
be an issue you can perform sorting yourself on the result. I'm not
sure if Chef's search support allows solr ordering off the top of my
head.

I would highly suspect, however, that this is not the case here. I
would consider REALLY pouring over the logs and seeing if something
else is changing the file earlier in the recipe. I just ran into this
recently where I had one recipe changing a files permissions
(incorrectly as a side effect of a different operation) and another
recipe changing them BACK. The end result was the file had the proper
permissions but the issue was that they were being undone earlier in
the run.

It's also possible there's an edge case somewhere where a file or
template operation isn't atomic but again I'd go for the previous
explanation of something ELSE changing it earlier in the run.


On Mon, Oct 15, 2012 at 12:09 PM, Tim Smith 
< >
 wrote:
> I've had issues in the past with searches that return nodes.  The list of
> nodes won't come back in the same order every time and the template will
> write out on every run.  You want to make sure to sort any array of
> hostnames returned by search.
>
> From: Daniel DeLeo 
> < >
> Reply-To: 
> " "
>  
> < >
> Date: Monday, October 15, 2012 9:01 AM
> To: 
> " "
>  
> < >
> Subject: [chef] Re: Re: Re: Re: Re: Template being updated every chef run
>
>
> On Monday, October 15, 2012 at 8:28 AM, Alfredo Palhares wrote:
>
> Excerpts from Daniel Condomitti's message of Mon Oct 15 16:31:05 +0200 2012:
>
> Can you also paste the recipe? Specifically the variables block that's
> setting @pager. If you're just passing an object (other than a string) its
> ID would be changing each time (which may be detected as a change in the
> template to be outputted, I'm not sure how it determines if it has changed)
> but results in the same output since it's just calling .to_s on it.
>
> That actually makes sense, but i tried to just hardcode the strings, and
> even just placing it on the
> template so it never changes. Still happens.
>
> Do you have another resource in your chef run or external process that is
> changing the file?
>
> If you create a ruby_block resource to puts %x{ls -halp file} before your
> template resource, does it say what you expect?
>
> Also, if you use Chef 10.14, you can run with -Fdoc -lfatal and you should
> see a content diff.
>
> --
> Daniel DeLeo
>



Archive powered by MHonArc 2.6.16.

§