Jira (PUP-1414) In Passenger, statements in a module outside class survive past node and affect other nodes
Title: Message Title Henrik Lindberg updated an issue Puppet / PUP-1414 In Passenger, statements in a module outside class survive past node and affect other nodes This will eventually be adressed by requiring that everything is defined in its proper namespace. That will then raise an error if autoloaded code sets things where it should not. Note this ticket is for Passenger and will probably just sink to the bottom of the backlog until the core problem is fixed. Ping Eric Sorenson - close this now? Change By: Henrik Lindberg Fix Version/s: PUP 4.y Add Comment This message was sent by Atlassian JIRA (v6.4.14#64029-sha1:ae256fe) -- You received this message because you are subscribed to the Google Groups "Puppet Bugs" group. To unsubscribe from this group and stop receiving emails from it, send an email to puppet-bugs+unsubscr...@googlegroups.com. To post to this group, send email to puppet-bugs@googlegroups.com. Visit this group at https://groups.google.com/group/puppet-bugs. For more options, visit https://groups.google.com/d/optout.
Jira (PUP-1414) In Passenger, statements in a module outside class survive past node and affect other nodes
Title: Message Title Henrik Lindberg updated an issue Puppet / PUP-1414 In Passenger, statements in a module outside class survive past node and affect other nodes Change By: Henrik Lindberg Team: Puppet Developer Support Add Comment This message was sent by Atlassian JIRA (v6.4.14#64029-sha1:ae256fe) -- You received this message because you are subscribed to the Google Groups "Puppet Bugs" group. To unsubscribe from this group and stop receiving emails from it, send an email to puppet-bugs+unsubscr...@googlegroups.com. To post to this group, send email to puppet-bugs@googlegroups.com. Visit this group at https://groups.google.com/group/puppet-bugs. For more options, visit https://groups.google.com/d/optout.
Jira (PUP-1414) In Passenger, statements in a module outside class survive past node and affect other nodes
Title: Message Title Henrik Lindberg updated an issue Puppet / PUP-1414 In Passenger, statements in a module outside class survive past node and affect other nodes Change By: Henrik Lindberg Scrum Team: Language Add Comment This message was sent by Atlassian JIRA (v6.3.10#6340-sha1:7ea293a) -- You received this message because you are subscribed to the Google Groups Puppet Bugs group. To unsubscribe from this group and stop receiving emails from it, send an email to puppet-bugs+unsubscr...@googlegroups.com. To post to this group, send email to puppet-bugs@googlegroups.com. Visit this group at http://groups.google.com/group/puppet-bugs. For more options, visit https://groups.google.com/d/optout.
Jira (PUP-1414) In Passenger, statements in a module outside class survive past node and affect other nodes
Title: Message Title Henrik Lindberg commented on an issue Re: In Passenger, statements in a module outside class survive past node and affect other nodes The freeze_main setting is supposed to ward off this evil - but it is broken, see PUP-2394. Having freeze_main on by default would be the stricter setting here, together with PUP-2695 to deny merging code in other classes (which can probably lead to the same weird behavior as described above). Add Comment Puppet / PUP-1414 In Passenger, statements in a module outside class survive past node and affect other nodes Consider this configuration with two nodes and two modules, running in Passenger: site.pp: {noformat} node A { # don't include foo } node B { include foo } {noformat} modules/foo/manifests/init.pp: {noformat} include bar class foo {} {noformat} modules/bar/manifests/init.pp: {noformat} class bar { notify { whee!: } } {noformat} ... This message was sent by Atlassian JIRA (v6.1.4#6159-sha1:44eaede) -- You received this message because you are subscribed to the Google Groups Puppet Bugs group. To unsubscribe from this group and stop receiving emails from it, send an email to
Jira (PUP-1414) In Passenger, statements in a module outside class survive past node and affect other nodes
Title: Message Title Andrew Parker updated an issue Puppet / PUP-1414 In Passenger, statements in a module outside class survive past node and affect other nodes Change By: Andrew Parker Considerthisconfigurationwithtwonodesandtwomodules,runninginPassenger:site.pp: {noformat} nodeA{#don'tincludefoo}nodeB{includefoo} {noformat} modules/foo/manifests/init.pp: {noformat} includebarclassfoo{} {noformat} modules/bar/manifests/init.pp: {noformat} classbar{notify{whee!:}} {noformat} Thereisaproblemofsortsinthisconfiguration-theincludebarstatementisoutsidetheclass.nodeAcanretrieveitscatalogasmanytimesasitlikes,anditwillneverincludethemodulesnorproduceanynotify.whennodeBretrievesitscatalog,itwillloadthefoomodulebecauseitwillloadtheincludestatementintoitstopscope.That'sokay.However,whenrunninginPassenger,nodeAwillnow*also*includethefoomodule,becauseit'scachedtopscopeaswell.Notonlydoesthismeanwegettwoentirelydifferentcatalogsdependingonwhenwerun,butifpassengerhasthreads,itcanproducedifferentanswersdependingonwhichthreadyougetaresponsefrom.OncetheBnodehastalkedtoathread,thenitwillalwaysproducetheincorrectcatalog.Ofcourse,thisisaconfigurationmistake,andnotintentional.However,Ifeelthatataminimum,atop-levelstatementinsideamodulepathincludedfileshouldproduceawarning-preferably,aparseerror.Alternately,itshouldonlyaffectthenodewhichisloadingthatmoduleinsomecapacity.Thereisnowayafilewhichanodeisn'tevenloadingshouldbeabletoaffectitsconfiguration!ThatiswhyIfeelthisisabugandnotsimplyadon'tmakethatmistakesituation.Thevariability,ifnothingelse,isabug. Add Comment This message was sent by Atlassian JIRA (v6.1.4#6159-sha1:44eaede) -- You received this message because you are subscribed to the
Jira (PUP-1414) In Passenger, statements in a module outside class survive past node and affect other nodes
Title: Message Title Andrew Parker commented on an issue Re: In Passenger, statements in a module outside class survive past node and affect other nodes The fix for this should be that when include x is performed in topscope it produces a warning. If strict mode is enabled it should be an error. This is a larger problem for any kind of code in modules that is in topscope. In all of those cases the same warning/error logic needs to be applied. Add Comment Puppet / PUP-1414 In Passenger, statements in a module outside class survive past node and affect other nodes Consider this configuration with two nodes and two modules, running in Passenger: site.pp: {noformat} node A { # don't include foo } node B { include foo } {noformat} modules/foo/manifests/init.pp: {noformat} include bar class foo {} {noformat} modules/bar/manifests/init.pp: {noformat} class bar { notify { whee!: } } {noformat} ... This message was sent by Atlassian JIRA (v6.1.4#6159-sha1:44eaede) -- You received this message because you are subscribed to the Google Groups Puppet Bugs group. To unsubscribe from this group and stop receiving
Jira (PUP-1414) In Passenger, statements in a module outside class survive past node and affect other nodes
Title: Message Title Karl Mueller commented on an issue Re: In Passenger, statements in a module outside class survive past node and affect other nodes Yes, that's correct as far as I know. The seriousness of the problem is that it can a) affect nodes outside of what you think you have configured (normal configuration scope does not protect you, and b) it happens silently - not that it happening at all is a good thing. At least it should print a warning - if not outright fail in 3.x puppet. I don't feel like it should wait for 4.x. You can really mess up your entire cluster with one bad line in a module that's not even used anywhere but a single node. Add Comment Puppet / PUP-1414 In Passenger, statements in a module outside class survive past node and affect other nodes Consider this configuration with two nodes and two modules, running in Passenger: site.pp: {noformat} node A { # don't include foo } node B { include foo } {noformat} modules/foo/manifests/init.pp: {noformat} include bar class foo {} {noformat} modules/bar/manifests/init.pp: {noformat} class bar { notify { whee!: } } {noformat} ... This message was sent by Atlassian JIRA (v6.1.4#6159-sha1:44eaede)
Jira (PUP-1414) In Passenger, statements in a module outside class survive past node and affect other nodes
Title: Message Title Andrew Parker updated an issue Puppet / PUP-1414 In Passenger, statements in a module outside class survive past node and affect other nodes I think this is occurring because of the coding being loaded into known_resource_types and being available to run, which then happens regardless of whether the file that it came from should have been evaluated. We should fix this in the new evaluator in some manner. Add Comment This message was sent by Atlassian JIRA (v6.1.4#6159-sha1:44eaede) -- You received this message because you are subscribed to the Google Groups Puppet Bugs group. To unsubscribe from this group and stop receiving emails from it, send an email to puppet-bugs+unsubscr...@googlegroups.com. To post to this group, send email to puppet-bugs@googlegroups.com. Visit this group at http://groups.google.com/group/puppet-bugs. For more options, visit https://groups.google.com/groups/opt_out.
Jira (PUP-1414) In Passenger, statements in a module outside class survive past node and affect other nodes
Title: Message Title Karl Mueller created an issue Puppet / PUP-1414 In Passenger, statements in a module outside class survive past node and affect other nodes Issue Type: Bug Affects Versions: 3.4.1, 3.3.0 Assignee: Unassigned Components: DSL Created: 10/Jan/14 2:53 AM Environment: Puppet 3.4.1 (and earlier). Ruby 1.9.3. Passenger 4.0.xx Priority: Normal Reporter: Karl Mueller Consider this configuration with two nodes and two modules, running in Passenger: site.pp: node A { # don't include foo } node B { include foo } modules/foo/manifests/init.pp: include bar class foo {} modules/bar/manifests/init.pp: class bar { notify { whee!: } } There is a problem of sorts in this configuration - the include bar statement is outside the class. node A can retrieve its catalog as many times as it likes,