diff options
-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 |