Package: puppet
Version: 0.18.4-1
Severity: important

Hi,

I'm finding that running puppetd with a very simple (but possibly
wrong) setup leads to random Ruby back traces and SegVs.  Here is the
setup:

The server ("home.phy.bnl.gov") is run like:

  puppetmasterd --debug

The client ("lycastus.phy.bnl.gov") is run like:

  puppetd --server servername --test

The site.pp file contains:

# site.pp
define remotefile(owner = root, server = "home.phy.bnl.gov", group = root, 
mode, source, backup = false, recurse = false) {
    file {
        $name:
            mode => $mode,
            owner => $owner,
            group => $group,
            backup => $backup,
            source => "puppet://$server/$source"
    }
}

class banner {
        remotefile { "/etc/issue.net": 
                mode => 444, source => "files/issue.net"
        }
}

node lycastus {
        include banner
}
### end site.pp

The fileserver.conf file contains:

### fileserver.conf
[files]
  path /etc/puppet/dist/files
  allow *.phy.bnl.gov

[private]
    path /etc/puppet/dist/nodes/%h
    allow *
### end fileserver.conf

Running the server shows no errors other than some (harmless?) missing
files.  When the client attempts to connect the server gives:

info: Allowing lycastus.phy.bnl.gov(130.199.36.67) trusted access to 
puppetmaster.getconfig
debug: Our client is remote
notice: Compiled configuration for lycastus.phy.bnl.gov in 0.01 seconds
info: Allowing lycastus.phy.bnl.gov(130.199.36.67) trusted access to 
fileserver.describe
debug: mount[files]: Describing /files/issue.net for lycastus.phy.bnl.gov

Regardless of whether the client crashes or not.

Finally, here are some examples of failed and successful client runs:

lycastus:~# puppetd --server home.phy.bnl.gov --test
info: Caching configuration at /etc/puppet/localconfig.yaml
notice: Starting configuration run
/usr/lib/ruby/1.8/xmlrpc/client.rb:412:in `call': negative allocation size (or 
too big) (NoMemoryError)
        from /usr/lib/ruby/1.8/puppet/networkclient.rb:64:in `describe'
        from /usr/lib/ruby/1.8/puppet/client/proxy.rb:15:in `describe'
        from /usr/lib/ruby/1.8/puppet/type/pfile/source.rb:41:in `describe'
        from /usr/lib/ruby/1.8/puppet/type/pfile/source.rb:93:in `retrieve'
        from /usr/lib/ruby/1.8/puppet/type/pfile/source.rb:92:in `retrieve'
        from /usr/lib/ruby/1.8/puppet/type/pfile.rb:731:in `retrieve'
        from /usr/lib/ruby/1.8/puppet/type.rb:1847:in `evaluate'
        from /usr/lib/ruby/1.8/puppet/transaction.rb:46:in `apply'
         ... 13 levels...
        from /usr/lib/ruby/1.8/puppet/client/master.rb:435:in `run'
        from /usr/lib/ruby/1.8/puppet/client/master.rb:349:in `lock'
        from /usr/lib/ruby/1.8/puppet/client/master.rb:425:in `run'
        from /usr/sbin/puppetd:421
lycastus:~# puppetd --server home.phy.bnl.gov --test
info: Caching configuration at /etc/puppet/localconfig.yaml
notice: Starting configuration run
/usr/lib/ruby/1.8/xmlrpc/client.rb:412: [BUG] Segmentation fault
ruby 1.8.4 (2005-12-24) [i486-linux]

Aborted
lycastus:~# puppetd --server home.phy.bnl.gov --test
notice: Stale lockfile /var/lib/puppet/state/puppetdlock left by process 17124; 
removing
info: Caching configuration at /etc/puppet/localconfig.yaml
notice: Starting configuration run
notice: Finished configuration run in 0.17 seconds


If I call the client with --debug I get:


lycastus:~# puppetd --debug --server home.phy.bnl.gov --test
...
debug: puppetconfig/puppetd/file=/etc/puppet/localconfig: File does not exist
debug: puppetconfig/puppetd/file=/etc/puppet/localconfig: Changing owner,mode
debug: puppetconfig/puppetd/file=/etc/puppet/localconfig: 2 change(s)
debug: puppetconfig/puppetd/file=/etc/puppet/localconfig/owner: File does not 
exist; cannot set owner
debug: puppetconfig/puppetd/file=/etc/puppet/localconfig/mode: File does not 
exist; cannot set mode
debug: Finishing transaction -743089528 with 4 changes
info: Caching configuration at /etc/puppet/localconfig.yaml
debug: Creating default schedules
/usr/lib/ruby/1.8/puppet/parameter.rb:213: [BUG] Segmentation fault
ruby 1.8.4 (2005-12-24) [i486-linux]

Aborted
lycastus:~# puppetd --debug --server home.phy.bnl.gov --test
...
debug: puppetconfig/puppetd/file=/etc/puppet/localconfig: File does not exist
debug: puppetconfig/puppetd/file=/etc/puppet/localconfig: Changing owner,mode
debug: puppetconfig/puppetd/file=/etc/puppet/localconfig: 2 change(s)
debug: puppetconfig/puppetd/file=/etc/puppet/localconfig/owner: File does not 
exist; cannot set owner
debug: puppetconfig/puppetd/file=/etc/puppet/localconfig/mode: File does not 
exist; cannot set mode
debug: Finishing transaction -742838468 with 4 changes
info: Caching configuration at /etc/puppet/localconfig.yaml
debug: Creating default schedules
/usr/lib/ruby/1.8/puppet/parameter.rb:335: [BUG] Segmentation fault
ruby 1.8.4 (2005-12-24) [i486-linux]

Aborted


Note the locations are different.

Please let me know if I can provide additional info.

-Brett.



-- System Information:
Debian Release: testing/unstable
  APT prefers unstable
  APT policy: (500, 'unstable'), (500, 'testing'), (500, 'stable')
Architecture: i386 (i686)
Shell:  /bin/sh linked to /bin/bash
Kernel: Linux 2.6.17-1-k7
Locale: LANG=C, LC_CTYPE=C (charmap=ANSI_X3.4-1968)

Versions of packages puppet depends on:
ii  adduser                3.85              Add and remove users and groups
ii  facter                 1.3.3-1           a library for retrieving facts fro
ii  libopenssl-ruby        1.0.0+ruby1.8.2-1 OpenSSL interface for Ruby
ii  libxmlrpc-ruby         1.8.2-1           XML-RPC support for Ruby
ii  lsb-base               3.1-4             Linux Standard Base 3.1 init scrip
ii  ruby                   1.8.2-1           An interpreter of object-oriented 

Versions of packages puppet recommends:
ii  rdoc                          1.8.2-1    Generate documentation from ruby s

-- no debconf information


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to