On Thursday, May 19, 2016 at 4:39:03 AM UTC-5, James Denton wrote: > > Hi Greg > > Thanks for the reply, its strange that this is fairly intermittent (works > for a couple of hours then fails with the error). I have other puppet > classes that also inherit from a base class but these do not fail. The > differance between this class and the others that work is that the class > show above declares parameters before inheriting the base class. > > "Worth double-checking that the ENC data doesn't change when the error > occurs (if you can catch it)" > > How can I do this (if possible)? > > Thanks! > > On Tuesday, May 17, 2016 at 5:47:37 PM UTC+1, Greg Sutcliffe wrote: >> >> It's almost certainly a problem within your puppet code. Foreman only >> sends a list of classes (and parameters, together called the ENC data) to >> Puppet, which then deals with compiling the catalog, eg: >> >> classes: >> apache: >> ssh: >> loglevel: debug >> syslog: >> >> And so forth. That's generally pretty static; in which case the issue is >> likely that what Puppet is evaluating for the ENC data supplied by Foreman >> is changing. >> >> Worth double-checking that the ENC data doesn't change when the error >> occurs (if you can catch it), at which point you can rule out Foreman >> entirely. >> >> Greg >> > I am experiencing very similar issues. In my case I am using an approved module from puppet forge, saz-rsyslog. And I am not writing any declarations of any kind. Everything is done in The Foreman.
I have had a detailed discussion on the puppet-users mail list about my issue: Issue with module from forge - Duplicate declaration Class[Rsyslog] https://groups.google.com/d/topic/puppet-users/0JHrMGuo8YQ/discussion We came to a point in this discussion thread that first points at an issue with the saz-rsyslog module, but also *may* point at a possible issue with The Foreman. Here is the issue I submitted with the saz-rsyslog forge module: Duplicate Declaration Class[Rsyslog] with The Foreman as ENC during catalog compilation #237 https://github.com/saz/puppet-rsyslog/issues/237 The *possible* issue with The Foreman is that under certain and uncommon circumstances The Foreman can sometimes build a catalog in which subclasses can be declared before their parent class. With a some kind of unrelated fact/parameter change in The Foreman, or after just waiting, this issue will resolve itself. In this thread you are discussing an intentional declaration. But in my issue (see my puppet-user thread) the declaration is unintentional. And we think that under uncommon circumstances we cannot determine, The Foreman as ENC causes the rsyslog::client subclass to be declared before the rsyslog class. Not only is it unintentional, but my specific environment (1 primary and 3 secondary masters puppet servers with The Foreman Proxy) shows that it can happen on one secondary-node, and not at all on another secondary-master. And then hours later this scenario can flip. And at the same time a third secondary-master puppet server under The Foreman Proxy server does not ever experience the issue. The issue is never experienced with the primary-master puppet server, to which is also the primary The Foreman server. So perhaps it points to an issue with a The Foreman Proxy server? ... I do not know. Having subclasses declared before the parent class seems to not be an issue with many other puppet modules. So that points at an issue with the saz-rsyslog module - to which I submitted an issue with the puppet-module author. However, looking back at The Foreman, I wonder if it is not the intention that The Foreman as ENC would under these undetermined circumstances declare a subclass before the parent class, and then 8-12 hours later change to have the parent class declared before the subclass. Something is causing that subclass to be declared first in the catalog, and that cause may be independent to The Foreman alone - after tracing out the results I have experienced. Keep in mind, if we know this is the issue, I have installed a The Foreman Proxy server with secondary-master puppet servers that NEVER have this issue. Would this suggest that the issue is with my configuration, and not internally to The Foreman? And if so, where would I look to track down this issue? If this is not a configuration issue, is this an allowed or intended action of The Foreman as I have described - seemingly randomly ordering declaration of classes and subclasses? I appreciate any leads to help track down this issue I have been experiencing for many months. -RG -- You received this message because you are subscribed to the Google Groups "Foreman users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at https://groups.google.com/group/foreman-users. For more options, visit https://groups.google.com/d/optout.
