Skip to content

Instantly share code, notes, and snippets.

@gionn
Last active March 20, 2017 12:52
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save gionn/9161cb7c377da56837d0 to your computer and use it in GitHub Desktop.
Save gionn/9161cb7c377da56837d0 to your computer and use it in GitHub Desktop.
Fog CloudFiles (Rackspace) reporting timeout errors

If you are getting something like the following, on a box without ipv6 connectivity:

/opt/rbenv/versions/1.9.3-p547/lib/ruby/gems/1.9.1/gems/excon-0.44.4/lib/excon/socket.rb:291:in `raise_timeout_error': read timeout reached (Excon::Errors::Timeout)
	from /opt/rbenv/versions/1.9.3-p547/lib/ruby/gems/1.9.1/gems/excon-0.44.4/lib/excon/socket.rb:49:in `rescue in readline'
	[...]
	from /opt/rbenv/versions/1.9.3-p547/lib/ruby/gems/1.9.1/gems/fog-core-1.29.0/lib/fog/core/connection.rb:81:in `request'
	from /opt/rbenv/versions/1.9.3-p547/lib/ruby/gems/1.9.1/gems/fog-1.28.0/lib/fog/rackspace/service.rb:42:in `request'
	from /opt/rbenv/versions/1.9.3-p547/lib/ruby/gems/1.9.1/gems/fog-1.28.0/lib/fog/rackspace/storage.rb:444:in `request'
	from /opt/rbenv/versions/1.9.3-p547/lib/ruby/gems/1.9.1/gems/fog-1.28.0/lib/fog/rackspace/requests/storage/put_object.rb:35:in `put_object'
	from /opt/rbenv/versions/1.9.3-p547/lib/ruby/gems/1.9.1/gems/fog-1.28.0/lib/fog/rackspace/models/storage/file.rb:270:in `save'
	from /opt/rbenv/versions/1.9.3-p547/lib/ruby/gems/1.9.1/gems/fog-core-1.29.0/lib/fog/core/collection.rb:51:in `create'
	from ./jekyll-cloudfiles-upload/cloudfiles_upload.rb:79:in `block in <main>'
	from ./jekyll-cloudfiles-upload/cloudfiles_upload.rb:77:in `each'
	from ./jekyll-cloudfiles-upload/cloudfiles_upload.rb:77:in `<main>'

then you need to tell to fog to prefer ipv4 with:

connection = Fog::Storage.new(
  :provider => 'Rackspace',
  :rackspace_api_key => '<my api key>',
  :rackspace_username => '<my username>',
  :rackspace_region => :dfw,
  :connection_options => { :family => ::Socket::Constants::AF_INET } 
)

or completely disable ipv6 on your box.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment