aha. this was it. I had:
package { "bind":
 ensure => "installed"
}


OUTSIDE of the "class site::dns_test {" declaration. Thank you very much 
for the help.

-n


On Wednesday, December 18, 2013 8:52:57 AM UTC-6, jcbollinger wrote:
>
>
>
> On Tuesday, December 17, 2013 2:35:58 PM UTC-6, Nathan Earixson wrote:
>>
>> puppet 3.3.2 on RHEL6
>>
>> If I run puppet on a node:
>> # sudo puppet agent --test --noop
>>
>> I get the following error:
>>
>>
>>
>> *Error: Could not retrieve catalog from remote server: Error 400 on 
>> SERVER: Duplicate declaration: Package[bind] is already declared in file 
>> /etc/puppet/modules/site/manifests/dns_test.pp:4; cannot redeclare at 
>> /etc/puppet/modules/site/manifests/dns.pp:4 on node 
>> bushlnxadm01.chicagobooth.edu 
>> <http://bushlnxadm01.chicagobooth.edu>Warning: Not using cache on failed 
>> catalogError: Could not retrieve catalog; skipping run*
>>
>>
>> That's weird. That node isn't a DNS server and shouldn't even be thinking 
>> about running bind.
>>
>> If I open /etc/puppet/manifests/site.pp and save the file, the error goes 
>> away on next puppet agent run.
>>
>> After about 15 minutes the node starts trying to apply the classes from 
>> */etc/puppet/modules/site/manifests/dns_test.pp 
>> *and after another 5 or so minutes I start getting the duplicate 
>> declaration error again.
>>
>> If I save the manifest the puppet agent command works as expected for 
>> another 15 minutes or so.
>>
>>
>>
>> I can't even begin to think of where to start looking on this. Any 
>> thoughts would be appreciated.
>> This seems to be happening on every node.
>>
>>
>
> Strange caching behavior sometimes results when you have declarations at 
> top level in a manifest other than site.pp or one directly or indirectly 
> 'import'ed by site.pp.  For instance,
>
> <module_path>/my_module/manifests/init.pp:
> ----
> class my_module {
>   # doesn't matter
> }
>
> # Oops:
> include dns_test
>
> # Also oops:
> Class['dns'] -> Class['my_module']
> ----
>
> That sort of thing is very bad form because any declaration at top scope 
> (i.e. outside any class, node, or type definition) applies, in principle, 
> to all nodes, but manifests that are (only) autoloaded are may not actually 
> be evaluated for every node.  The manifest author's intention is often that 
> the top-scope declaration apply only to nodes that declare the class or 
> type associated with the manifest, but that's not the actual semantics.
>
> Behavior much like what you describe can result: everything works as 
> intended when the master first starts, but after a node checks in that 
> declares a certain class or type, nodes that subsequently check in get 
> cached top-scope declarations that were not intended for them.
>
>
> John
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to puppet-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/puppet-users/c7906b74-3be2-443a-b11a-ac379b94f484%40googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to