【问题标题】:Faraday::ConnectionFailed: read function returned funny valueFaraday::ConnectionFailed:读取函数返回有趣的值
【发布时间】:2019-06-13 10:34:13
【问题描述】:

我在从一个应用程序到 Rails 应用程序的大型 (1 MB) 数据同步时收到此错误,同步后我正在执行弹性搜索索引。 以前我使用 ruby​​ 2.3.3 和 rails 4.2.7,它在处理大数据时也能正常工作,但现在我已将 ruby​​ 更新到 2.5.1 和 rails 4.2.10,它在索引大数据时出现 Faraday::ConnectionFailed: read function returned funny value 错误。

已尝试列出的 elasticsearch gem 版本

弹性搜索 (6.1.0, 2.0.2) elasticsearch-api (6.1.0, 2.0.2) 弹性搜索模型(6.0.0、2.0.1) elasticsearch-rails (6.0.0, 2.0.1) 弹性搜索传输 (6.1.0, 2.0.2)

还尝试了 faraday 和 faraday_middleware gem update

法拉第 (0.15.4, 0.9.2) faraday_middleware (0.12.2)

适配器和版本是:gem 'patron', '~> 0.4.18'

gemfile.lock 的详细信息

elasticsearch (2.0.2)
  elasticsearch-api (= 2.0.2)
  elasticsearch-transport (= 2.0.2)
elasticsearch-api (2.0.2)
  multi_json
elasticsearch-model (2.0.1)
  activesupport (> 3)
  elasticsearch (~> 2)
  hashie
elasticsearch-rails (2.0.1)
elasticsearch-transport (2.0.2)
  faraday
  multi_json

faraday (0.9.2)
  multipart-post (>= 1.2, < 3)
faraday_middleware (0.12.2)
  faraday (>= 0.7.4, < 1.0)

googleauth (0.5.1)
  faraday (~> 0.9)

oauth2 (1.0.0)
  faraday (>= 0.8, < 0.10)
  jwt (~> 1.0)
  multi_json (~> 1.3)
  multi_xml (~> 0.5)
  rack (~> 1.2)
omniauth (1.8.1)
  hashie (>= 3.4.6, < 3.6.0)
  rack (>= 1.6.2, < 3)
omniauth-oauth2 (1.2.0)
  faraday (>= 0.8, < 0.10)
  multi_json (~> 1.3)
  oauth2 (~> 1.0)
  omniauth (~> 1.2)

signet (0.7.3)
  addressable (~> 2.3)
  faraday (~> 0.9) 

也尝试使用this SO question的想法:

Elasticsearch::Model.client = Elasticsearch::Client.new(log: logging, adapter: :patron, url: ENV['ELASTICSEARCH_URL'], retry_on_failure: true, transport_options: {request: {timeout: 250}})

错误详情:

[Faraday::ConnectionFailed] Cannot connect to {:scheme=>"https", :user=>nil, :password=>nil, :host=>"example.com", :path=>"", :port=>443, :protocol=>"https"} after 4 tries
rake aborted!
Faraday::ConnectionFailed: read function returned funny value
/www/rails/app/models/concerns/searchable.rb:34:in `index_document'
/www/rails/lib/drupal/drupal_changes.rb:21:in `block (2 levels) in process'
/www/rails/lib/drupal/drupal_changes.rb:12:in `block in process'
/www/rails/lib/drupal/drupal_changes.rb:9:in `loop'
/www/rails/lib/drupal/drupal_changes.rb:9:in `process'
/www/rails/lib/tasks/drupal_change_syncronizer.rake:106:in `block (2 levels) in <top (required)>'
/www/rails/lib/tasks/drupal_change_syncronizer.rake:115:in `block (3 levels) in <top (required)>'
/www/rails/lib/tasks/drupal_change_syncronizer.rake:13:in `if_not_syncing'
/www/rails/lib/tasks/drupal_change_syncronizer.rake:112:in `block (2 levels) in <top (required)>'
/opt/rubies/ruby-2.5.1/bin/bundle:30:in `block in <main>'
/opt/rubies/ruby-2.5.1/bin/bundle:22:in `<main>'
Patron::Error: read function returned funny value

【问题讨论】:

    标签: ruby-on-rails ruby elasticsearch faraday


    【解决方案1】:

    我已将赞助者 gem 更新到最新版本 0.13.1,它可以正常工作。

    【讨论】:

      猜你喜欢
      • 2016-02-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-29
      • 2023-03-28
      • 2018-10-25
      • 1970-01-01
      相关资源
      最近更新 更多