[Pkg-puppet-devel] [SCM] Puppet packaging for Debian branch, upstream, updated. puppet-0.24.5-rc3-1601-gf8c1b08

James Turnbull james at lovedthanlost.net
Fri Jan 15 09:07:19 UTC 2010


The following commit has been merged in the upstream branch:
commit bd5dc649ad55fc4724cafad99852b825adfde182
Author: Markus Roberts <Markus at reality.com>
Date:   Thu Nov 12 23:30:13 2009 -0800

    Possible workaround for #2824 (MRI GC bug)
    
    This is a moderately ugly workaround for the MRI garbage collection
    bug (see the ticket for details).
    
    I explored several other potential solutions (notably, monkey
    patching the routines that trigger the bug) but none of them were
    satisfactory.  Monkey patching sub, gsub, sub!, gsub!, etc., for
    example, either changes the scoping of $~, $1, etc. in a way that
    could potentially subtly change the meaning of programs or (if you
    are clever) faithfully reproduces the behaviour of MRI--including
    the memory leak.
    
    I decided to go with the standardized and somewhat obnoxious never-
    used optional argument as it was easy to automatically insert and
    should be even easier to automatically find and remove if a better
    fix is developed.  It also should be obtrusive enough to escape
    accidental removal in refactoring.

diff --git a/lib/puppet/application/puppetdoc.rb b/lib/puppet/application/puppetdoc.rb
index 5656112..0a4e0c3 100644
--- a/lib/puppet/application/puppetdoc.rb
+++ b/lib/puppet/application/puppetdoc.rb
@@ -192,7 +192,7 @@ Puppet::Application.new(:puppetdoc) do
         end
     end
 
-    def setup_rdoc
+    def setup_rdoc(dummy_argument=:work_arround_for_ruby_GC_bug)
         # consume the unknown options
         # and feed them as settings
         if @unknown_args.size > 0
diff --git a/lib/puppet/file_serving/base.rb b/lib/puppet/file_serving/base.rb
index 02132e8..a7ab9b6 100644
--- a/lib/puppet/file_serving/base.rb
+++ b/lib/puppet/file_serving/base.rb
@@ -22,7 +22,7 @@ class Puppet::FileServing::Base
     end
 
     # Return the full path to our file.  Fails if there's no path set.
-    def full_path
+    def full_path(dummy_argument=:work_arround_for_ruby_GC_bug)
         (if relative_path.nil? or relative_path == "" or relative_path == "."
             path
         else
diff --git a/lib/puppet/indirector/node/ldap.rb b/lib/puppet/indirector/node/ldap.rb
index 4600a0d..dd8cebf 100644
--- a/lib/puppet/indirector/node/ldap.rb
+++ b/lib/puppet/indirector/node/ldap.rb
@@ -73,7 +73,7 @@ class Puppet::Node::Ldap < Puppet::Indirector::Ldap
 
     # The attributes that Puppet will stack as array over the full
     # hierarchy.
-    def stacked_attributes
+    def stacked_attributes(dummy_argument=:work_arround_for_ruby_GC_bug)
         Puppet[:ldapstackedattrs].split(/\s*,\s*/)
     end
 
diff --git a/lib/puppet/parser/ast/leaf.rb b/lib/puppet/parser/ast/leaf.rb
index b73c781..c8ac6f7 100644
--- a/lib/puppet/parser/ast/leaf.rb
+++ b/lib/puppet/parser/ast/leaf.rb
@@ -101,7 +101,7 @@ class Puppet::Parser::AST
             end
         end
 
-        def to_classname
+        def to_classname(dummy_argument=:work_arround_for_ruby_GC_bug)
             to_s.downcase.gsub(/[^-\w:.]/,'').sub(/^\.+/,'')
         end
 
diff --git a/lib/puppet/provider/service/daemontools.rb b/lib/puppet/provider/service/daemontools.rb
index 2c6c6db..3749f9c 100644
--- a/lib/puppet/provider/service/daemontools.rb
+++ b/lib/puppet/provider/service/daemontools.rb
@@ -45,7 +45,7 @@ Puppet::Type.type(:service).provide :daemontools, :parent => :base do
         attr_writer :defpath
 
         # Determine the daemon path.
-        def defpath
+        def defpath(dummy_argument=:work_arround_for_ruby_GC_bug)
             unless defined?(@defpath) and @defpath
                 ["/var/lib/service", "/etc"].each do |path|
                     if FileTest.exist?(path)
diff --git a/lib/puppet/provider/service/runit.rb b/lib/puppet/provider/service/runit.rb
index b313fc7..b8b444e 100644
--- a/lib/puppet/provider/service/runit.rb
+++ b/lib/puppet/provider/service/runit.rb
@@ -38,7 +38,7 @@ Puppet::Type.type(:service).provide :runit, :parent => :daemontools do
     class << self
         # this is necessary to autodetect a valid resource
         # default path, since there is no standard for such directory.
-        def defpath
+        def defpath(dummy_argument=:work_arround_for_ruby_GC_bug)
             unless defined?(@defpath) and @defpath
                 ["/etc/sv", "/var/lib/service"].each do |path|
                     if FileTest.exist?(path)
diff --git a/lib/puppet/provider/zone/solaris.rb b/lib/puppet/provider/zone/solaris.rb
index 52007bb..b047f69 100644
--- a/lib/puppet/provider/zone/solaris.rb
+++ b/lib/puppet/provider/zone/solaris.rb
@@ -64,7 +64,7 @@ Puppet::Type.type(:zone).provide(:solaris) do
         @property_hash.clear
     end
 
-    def install
+    def install(dummy_argument=:work_arround_for_ruby_GC_bug)
         if @resource[:install_args]
             zoneadm :install, @resource[:install_args].split(" ")
         else
diff --git a/lib/puppet/rails/resource.rb b/lib/puppet/rails/resource.rb
index 12d3211..984bdc0 100644
--- a/lib/puppet/rails/resource.rb
+++ b/lib/puppet/rails/resource.rb
@@ -199,7 +199,7 @@ class Puppet::Rails::Resource < ActiveRecord::Base
         result
     end
 
-    def ref
+    def ref(dummy_argument=:work_arround_for_ruby_GC_bug)
         "%s[%s]" % [self[:restype].split("::").collect { |s| s.capitalize }.join("::"), self.title.to_s]
     end
 
diff --git a/lib/puppet/sslcertificates/ca.rb b/lib/puppet/sslcertificates/ca.rb
index b5a2469..f6bcbc1 100644
--- a/lib/puppet/sslcertificates/ca.rb
+++ b/lib/puppet/sslcertificates/ca.rb
@@ -134,7 +134,7 @@ class Puppet::SSLCertificates::CA
 
     # List certificates waiting to be signed.  This returns a list of hostnames, not actual
     # files -- the names can be converted to full paths with host2csrfile.
-    def list
+    def list(dummy_argument=:work_arround_for_ruby_GC_bug)
         return Dir.entries(Puppet[:csrdir]).find_all { |file|
             file =~ /\.pem$/
         }.collect { |file|
@@ -144,7 +144,7 @@ class Puppet::SSLCertificates::CA
 
     # List signed certificates.  This returns a list of hostnames, not actual
     # files -- the names can be converted to full paths with host2csrfile.
-    def list_signed
+    def list_signed(dummy_argument=:work_arround_for_ruby_GC_bug)
         return Dir.entries(Puppet[:signeddir]).find_all { |file|
             file =~ /\.pem$/
         }.collect { |file|
diff --git a/lib/puppet/type/k5login.rb b/lib/puppet/type/k5login.rb
index 20c0324..5526fda 100644
--- a/lib/puppet/type/k5login.rb
+++ b/lib/puppet/type/k5login.rb
@@ -56,7 +56,7 @@ Puppet::Type.newtype(:k5login) do
         end
 
         # Return the principals
-        def principals
+        def principals(dummy_argument=:work_arround_for_ruby_GC_bug)
             if File.exists?(@resource[:name])
                 File.readlines(@resource[:name]).collect { |line| line.chomp }
             else
diff --git a/lib/puppet/util/subclass_loader.rb b/lib/puppet/util/subclass_loader.rb
index 8776e85..b71ec72 100644
--- a/lib/puppet/util/subclass_loader.rb
+++ b/lib/puppet/util/subclass_loader.rb
@@ -72,7 +72,7 @@ module Puppet::Util::SubclassLoader
     end
 
     # Retrieve or calculate a name.
-    def name
+    def name(dummy_argument=:work_arround_for_ruby_GC_bug)
         unless defined? @name
             @name = self.to_s.sub(/.+::/, '').intern
         end

-- 
Puppet packaging for Debian



More information about the Pkg-puppet-devel mailing list