Issue #2511 has been updated by Markus Roberts.
It had been a low priority test isolation problem until Sam Rowe experienced the problem it in testing 0.25 (see the second half of http://projects.reductivelabs.com/issues/2550#note-7, also reproduced above). At that point I raised the priority and began working on it for 0.25. Problem is, I can't come up with a plausible path for type/file.rb to be reloaded. There are a number of outlandish ways, that it might happen since things are being autoloaded, required from strings, and stuff gets evaled, etc. but nothing compelling. > Of course, another option is just to put all of the parameter definitions > back into file.rb, or use 'load' instead of 'require' > in file.rb so that if it does happen to get reloaded it also reloads all of > its parameters. Yeah, that handles it for type/file, and it doesn't appear that any other types are using that trick. Switching to load seems like a load impact safety net fix. I like that better than any of the ones I'd come up with. Hmm. But it does mean we could have multiple structurally equivalent but distinct File types floating around (although only one would be directly denotable at ), and I'm not sure how that would play out with things like defaults and comparisons. -- Markus ---------------------------------------- Bug #2511: Sporadic and spurious "invalid parameter" errors http://projects.reductivelabs.com/issues/2511 Author: Markus Roberts Status: Accepted Priority: High Assigned to: Markus Roberts Category: unknown Target version: 0.25.0 Complexity: Unknown Affected version: 0.25.0rc1 Keywords: Under certain orderings large numbers (>100) of tests will fail with messages similar to this: <pre> 44) Puppet::Error in 'Puppet::Resource::Catalog when compiling when creating a relationship graph should not write graph files if the catalog is not a host cata log' Invalid parameter source(:source) ./lib/puppet/util/errors.rb:51:in `fail' ./lib/puppet/type.rb:418:in `[]' ./spec/../lib/puppet/type/file.rb:278:in `validate' ./lib/puppet/type.rb:1908:in `initialize' ./spec/../lib/puppet/type/file.rb:400:in `initialize' ./spec/unit/resource/catalog.rb:713:in `new' ./spec/unit/resource/catalog.rb:713: ./spec/monkey_patches/add_confine_and_runnable_to_rspec_dsl.rb:22:in `run' ./spec/monkey_patches/add_confine_and_runnable_to_rspec_dsl.rb:17:in `each' ./spec/monkey_patches/add_confine_and_runnable_to_rspec_dsl.rb:17:in `run' </pre> The common factor in each case being the "Invalid parameter" messages and the first five lines of the stack trace. That this is order dependent has been confirmed by making the problem appear on a fresh, unmodified copy of 0.25.0rc1 by simply touching spec files to force test execution error and then making the problem go away by touching one of the spec files again to force a different ordering. -- You have received this notification because you have either subscribed to it, or are involved in it. To change your notification preferences, please click here: http://reductivelabs.com/redmine/my/account --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Puppet Bugs" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/puppet-bugs?hl=en -~----------~----~----~----~------~----~------~--~---
