diff options
author | David Schmitt <david@dasz.at> | 2010-04-29 17:32:40 +0200 |
---|---|---|
committer | test branch <puppet-dev@googlegroups.com> | 2010-02-17 06:50:53 -0800 |
commit | e119b04f7738f5ffb6b9bf353bb28b3d058302a5 (patch) | |
tree | f711cd2bc6033f374f28b17b366865bd6d036c3e | |
parent | d40e6d4bb6d899000b34422950412e90fb1d69dd (diff) | |
download | puppet-e119b04f7738f5ffb6b9bf353bb28b3d058302a5.tar.gz puppet-e119b04f7738f5ffb6b9bf353bb28b3d058302a5.tar.xz puppet-e119b04f7738f5ffb6b9bf353bb28b3d058302a5.zip |
Avoid setting the timeout before we know which timeout we should set.
Signed-off-by: David Schmitt <david@dasz.at>
-rw-r--r-- | lib/puppet/util/settings.rb | 8 | ||||
-rwxr-xr-x | spec/unit/util/settings.rb | 20 |
2 files changed, 24 insertions, 4 deletions
diff --git a/lib/puppet/util/settings.rb b/lib/puppet/util/settings.rb index b2563e996..82d2d4533 100644 --- a/lib/puppet/util/settings.rb +++ b/lib/puppet/util/settings.rb @@ -308,13 +308,13 @@ class Puppet::Util::Settings def parse raise "No :config setting defined; cannot parse unknown config file" unless self[:config] - # Create a timer so that this file will get checked automatically - # and reparsed if necessary. - set_filetimeout_timer() - @sync.synchronize do unsafe_parse(self[:config]) end + + # Create a timer so that this file will get checked automatically + # and reparsed if necessary. + set_filetimeout_timer() end # Unsafely parse the file -- this isn't thread-safe and causes plenty of problems if used directly. diff --git a/spec/unit/util/settings.rb b/spec/unit/util/settings.rb index 24bd04b27..bf0776fc8 100755 --- a/spec/unit/util/settings.rb +++ b/spec/unit/util/settings.rb @@ -512,6 +512,26 @@ describe Puppet::Util::Settings do @settings.parse @settings[:myarg].should == "" end + + describe "and when reading a non-positive filetimeout value from the config file" do + before do + @settings.setdefaults :foo, :filetimeout => [5, "eh"] + + somefile = "/some/file" + text = "[main] + filetimeout = -1 + " + File.expects(:read).with(somefile).returns(text) + @settings[:config] = somefile + end + + it "should not set a timer" do + EventLoop::Timer.expects(:new).never + + @settings.parse + puts "2", @settings[:filetimeout] + end + end end describe "when reparsing its configuration" do |