ok, I found it (partially).

It is caused by $stdout.reopen(tempfile) in puppet's execute function
in utils.rb
It's further caused by rb_scan_args in ruby's class.c - did not
investigate why exactly ...

Here is how to reproduce in irb:

require 'tempfile'
t = Tempfile.new("puppet")
begin
    $stderr.reopen(t)
rescue => detail
    puts detail
    puts detail.backtrace
end

[pxmgt1] ruby > ruby test.rb
wrong number of arguments (2 for 1)
test.rb:5:in `respond_to?'
test.rb:5:in `reopen'
test.rb:5

This problem seem only to exists on RHEL4 / Ruby ruby 1.8.7
(2008-05-31 patchlevel 0) [i686-linux]


The way I fixed it just by replacing the following two lines in
utils.rb (puppet):

#$stdout.reopen(output_file)
#$stderr.reopen(error_file)

$stdout.reopen(output_file.path,"w")
$stderr.reopen(error_file.path,"w")

Regards, Thomas




On Mar 25, 9:13 am, Thomas Bikeev <thomas.bik...@gmail.com> wrote:
> Hi Avi,
>
> you are right but it does not really matter, the trouble already
> begins with
>
> debug: Puppet::Type::Package::ProviderRpm: Executing '/bin/rpm --
> version'
> wrong number of arguments (2 for 1)
>
> Thomas
>
> On Mar 24, 9:49 pm, Avi Miller <avi.mil...@gmail.com> wrote:
>
> > Hi,
>
> > On Wed, Mar 25, 2009 at 3:49 AM, Thomas Bikeev <thomas.bik...@gmail.com> 
> > wrote:
> > > echo 'package {"apache2": ensure => installed, noop => true, }' |
>
> > There is no apache2 package in Red Hat Enterprise Linux. You need to
> > install the "httpd" package instead.
>
> > cYa,
> > Avi
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Puppet Users" group.
To post to this group, send email to puppet-users@googlegroups.com
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to