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
-~----------~----~----~----~------~----~------~--~---

Reply via email to