1. ホーム
  2. ruby-on-rails-3

[解決済み] SocketError (getaddrinfo: Name or service not known) - Sunspot/Solr Rails development

2022-03-01 02:11:55

質問

Ubuntu 10.04サーバーにPassenger、Capistrano、nginx、MySQL(apache2についてはさらに問題あり)でrails 3.0.10アプリケーションをデプロイする際に多くのトラブルがありました。rakeを0.8.7にダウングレードした後、ようやく動くようになりましたが、今度はSunspot/Solrが私の開発環境で動かなくなりました。sunspot_solrサーバは動いていて、サーバのURLを取得し、ブラウザ経由で接続することができます。urlはsunspot.ymlにあるものと同じです。何をしたらこの問題が発生するのか見当もつきません。以前(rakeをダウングレードする前)、sunspotで同じ問題がありました。その後、突然また動き出しました。なぜかわからないのですが・・・。Sunspotの2つのバージョン(1.2.1と1.3.0)を試したことがあります。どちらも以前は動作していたのですが、今は動作していません。

これは私が受け取っているエラーメッセージです。

SocketError (getaddrinfo: Name or service not known):
app/models/resource.rb:128:in `text_search'
app/controllers/search_controller.rb:21:in `index'

Rendered /usr/lib/ruby/gems/1.8/gems/actionpack-3.0.10/lib/action_dispatch/middleware/templates/rescues/_trace.erb (2.0ms)
Rendered /usr/lib/ruby/gems/1.8/gems/actionpack-3.0.10/lib/action_dispatch/middleware/templates/rescues/_request_and_response.erb (161.6ms)
Rendered /usr/lib/ruby/gems/1.8/gems/actionpack-3.0.10/lib/action_dispatch/middleware/templates/rescues/diagnostics.erb within rescues/layout (168.9ms)

コントローラはちょっとごちゃごちゃしているので、関連する部分だけ載せておきます。

@criterion = params[:criterion]
@sort_direction = params[:sort_direction]
if @criterion && @sort_direction
  session["sort_search"] = @criterion + "|" + @sort_direction 
elsif session["sort_search"]
  @criterion = session["sort_search"].split("|")[0]
  @sort_direction = session["sort_search"].split("|")[1]
else
  @criterion = "updated_at"
  @sort_direction = "desc"
 end
@search = Resource.text_search(session[:search_params] || "", current_user, @criterion, @sort_direction) 
@resources = @search.results

動作していたときから、コントローラは何も変えていません。

私のgemfileです。

source 'http://rubygems.org'
gem 'rake'
gem 'rails', '3.0.10'
gem 'jquery-rails', '>= 1.0.12'
gem 'sqlite3'
gem 'ancestry'
gem 'carrierwave'
gem 'sunspot_rails', '>= 1.3' #'~> 1.2.1' #
gem 'authlogic'
gem 'will_paginate'
gem 'declarative_authorization'
group :production do
  gem 'mysql'
end
group :development do
  gem 'sunspot_solr'
end
gem 'capistrano'

私のrakefileです。

require File.expand_path('../config/application', __FILE__)
require 'rake'

Skolearkivet::Application.load_tasks

解決方法は?

ホスト名としてlocalhostを使用している可能性はないでしょうか?localhostを127.0.0.1に変更してみてください。