为什么“rake elasticsearch:start”超时但仍然启动弹性搜索节点?

时间:2015-03-17 15:45:40

标签: ruby-on-rails ruby rspec elasticsearch

经过几个月的弹性搜索和rspec完美结合后,我在运行Faraday:TimeoutError时遇到了许多新的看似随机的rspec错误,而我正在尝试解决问题。我开始使用经典重新启动整个系统。从那里我查看了弹性搜索正在做什么。首先我跑了这个:

$ curl localhost:9200

{
  "status" : 200,
  "name" : "Rigellian Recorder",
  "cluster_name" : "elasticsearch_eliduke",
  "version" : {
    "number" : "1.4.2",
    "build_hash" : "927caff6f05403e936c20bf4529f144f0c89fd8c",
    "build_timestamp" : "2014-12-16T14:11:12Z",
    "build_snapshot" : false,
    "lucene_version" : "4.10.2"
  },
  "tagline" : "You Know, for Search"
}

所以不知怎的,我已经在重新启动后立即运行elasticsearch。这是以某种方式重新启动?我想也许某事可能出现在.bash_profile中,但没有任何内容。

然后我检查了我的弹性搜索测试端口:

$ curl localhost:9250

curl: (7) Failed to connect to localhost port 9250: Connection refused

显然,测试节点没有运行,所以我尝试使用chewy rake任务启动它:

$ rake elasticsearch:start

Starting 2 Elasticsearch nodes...........rake aborted!
Timeout::Error: execution expired
/Users/eliduke/.rvm/gems/ruby-2.1.0/gems/elasticsearch-extensions-0.0.17/lib/elasticsearch/extensions/test/cluster.rb:222:in `block (2 levels) in __wait_for_status'
/Users/eliduke/.rvm/gems/ruby-2.1.0/gems/elasticsearch-extensions-0.0.17/lib/elasticsearch/extensions/test/cluster.rb:220:in `loop'
/Users/eliduke/.rvm/gems/ruby-2.1.0/gems/elasticsearch-extensions-0.0.17/lib/elasticsearch/extensions/test/cluster.rb:220:in `block in __wait_for_status'
/Users/eliduke/.rvm/gems/ruby-2.1.0/gems/elasticsearch-extensions-0.0.17/lib/elasticsearch/extensions/test/cluster.rb:219:in `__wait_for_status'
/Users/eliduke/.rvm/gems/ruby-2.1.0/gems/elasticsearch-extensions-0.0.17/lib/elasticsearch/extensions/test/cluster.rb:201:in `wait_for_green'
/Users/eliduke/.rvm/gems/ruby-2.1.0/gems/elasticsearch-extensions-0.0.17/lib/elasticsearch/extensions/test/cluster.rb:125:in `start'
/Users/eliduke/.rvm/gems/ruby-2.1.0/gems/elasticsearch-extensions-0.0.17/lib/elasticsearch/extensions/test/cluster/tasks.rb:6:in `block (2 levels) in <top (required)>'
/Users/eliduke/.rvm/gems/ruby-2.1.0/bin/ruby_executable_hooks:15:in `eval'
/Users/eliduke/.rvm/gems/ruby-2.1.0/bin/ruby_executable_hooks:15:in `<main>'
Tasks: TOP => elasticsearch:start
(See full trace by running task with --trace)

似乎它会正确启动,因为那些小点在屏幕上爬行,但随后 BONK !谁知道是什么导致它超时:它只是试图开始可能20或30秒。但接下来是奇怪的部分:

$ curl localhost:9250

{
  "status" : 200,
  "name" : "node-1",
  "cluster_name" : "elasticsearch_test",
  "version" : {
    "number" : "1.4.2",
    "build_hash" : "927caff6f05403e936c20bf4529f144f0c89fd8c",
    "build_timestamp" : "2014-12-16T14:11:12Z",
    "build_snapshot" : false,
    "lucene_version" : "4.10.2"
  },
  "tagline" : "You Know, for Search"
}

它开始了吗?!太奇怪了。这里似乎有些不对劲,所以我想我只是把它扔出去看看是否有其他人遇到过这个问题。

  1. 你知道为什么在重启后已经启动了端口9200上的elasticsearch吗?
  2. 你知道为什么rake elasticsearch:start会超时吗?
  3. 我的Faraday:TimeoutError错误与这一切有任何关联吗?
  4. 对此进行故障排除的下一步是什么?

0 个答案:

没有答案