[chef] Re: Problem with remote_file downloading?


Chronological Thread 
  • From: Daniel DeLeo < >
  • To:
  • Subject: [chef] Re: Problem with remote_file downloading?
  • Date: Tue, 7 Sep 2010 19:09:45 -0700

On Tue, Sep 7, 2010 at 6:24 PM, Ash Berlin 
< >
 wrote:
> See this gist: https://gist.github.com/d60768a9a4a9044bb7f8
>
> Snippet here:
>
> [Wed, 08 Sep 2010 02:22:30 +0100] DEBUG: /releases/rvm-1.0.5.tar.gz 96% 
> done (653048 of 678469)
> [Wed, 08 Sep 2010 02:22:30 +0100] DEBUG: /releases/rvm-1.0.5.tar.gz 97% 
> done (663184 of 678469)
> [Wed, 08 Sep 2010 02:22:30 +0100] DEBUG: /releases/rvm-1.0.5.tar.gz 99% 
> done (673320 of 678469)
> [Wed, 08 Sep 2010 02:22:30 +0100] DEBUG: /releases/rvm-1.0.5.tar.gz 100% 
> done (678469 of 678469)
> [Wed, 08 Sep 2010 02:22:30 +0100] DEBUG: 
> remote_file[/opt/rvm/src/rvm-1.0.5.tar.gz]: Checking for file existence of 
> /opt/rvm/src/rvm-1.0.5.tar.gz
> [Wed, 08 Sep 2010 02:22:30 +0100] INFO: 
> remote_file[/opt/rvm/src/rvm-1.0.5.tar.gz]: Creating 
> /opt/rvm/src/rvm-1.0.5.tar.gz
> [Wed, 08 Sep 2010 02:22:30 +0100] DEBUG: copying remote file from origin 
> /tmp/chef-rest20100908-31334-17ozxck-0 to destination 
> /opt/rvm/src/rvm-1.0.5.tar.gz
> [Wed, 08 Sep 2010 02:22:30 +0100] DEBUG: rescued error in http connect, 
> re-raising as Errno::ECONNREFUSED to hide bug in net/http
> [Wed, 08 Sep 2010 02:22:30 +0100] DEBUG: NoMethodError: undefined method 
> `closed?' for nil:NilClass
> [Wed, 08 Sep 2010 02:22:30 +0100] DEBUG: 
> /usr/lib/ruby/1.8/net/http.rb:1060:in `request'

Is this consistently reproducible? And what version and patchlevel of
ruby are you using?

As you can see in the debug output, the net/http library that comes
with ruby has a bug in many commonly used versions where it sets some
variable to nil, and then calls #closed? on it, which raises a
NoMethodError. You usually see this when the connection is refused by
the server, so Chef papers over the bug to raise the "right" error.

In this case, it seems like the same bug in net/http is being
triggered by a condition other than connection refused.

In any case, I cannot reproduce this error in shef, though I am using
ruby 1.9.2 here.

chef:recipe > remote_file("/tmp/rvm.tgz") do
chef:recipe >
source("http://rvm.beginrescueend.com/releases/rvm-1.0.5.tar.gz";)
chef:recipe ?>  end
 => remote_file[/tmp/rvm.tgz]
chef:recipe > run_chef
[Tue, 07 Sep 2010 18:57:46 -0700] DEBUG: Processing
remote_file[/tmp/rvm.tgz] on fermi.local
[Tue, 07 Sep 2010 18:57:46 -0700] DEBUG: Checking
remote_file[/tmp/rvm.tgz] for changes
[Tue, 07 Sep 2010 18:57:46 -0700] DEBUG: Sending HTTP Request via GET
to rvm.beginrescueend.com:80/releases/rvm-1.0.5.tar.gz
[Tue, 07 Sep 2010 18:57:47 -0700] DEBUG: Streaming download from
http://rvm.beginrescueend.com/releases/rvm-1.0.5.tar.gz to tempfile
/var/folders/Ui/UiODstTvGJm3edk+EIMyf++++TI/-Tmp-/chef-rest20100907-27747-vm70is
[Tue, 07 Sep 2010 18:57:48 -0700] DEBUG: remote_file[/tmp/rvm.tgz]:
Checking for file existence of /tmp/rvm.tgz
[Tue, 07 Sep 2010 18:57:48 -0700] INFO: remote_file[/tmp/rvm.tgz]:
Creating /tmp/rvm.tgz
[Tue, 07 Sep 2010 18:57:48 -0700] DEBUG: copying remote file from
origin 
/var/folders/Ui/UiODstTvGJm3edk+EIMyf++++TI/-Tmp-/chef-rest20100907-27747-vm70is
to destination /tmp/rvm.tgz
 => true

Dan DeLeo

>
> In summary, it gives me progress report, then tells me it fails and tries 
> again.
>
> Any ideas?
>
> -ash



Archive powered by MHonArc 2.6.16.

§