1

我知道这是最难追踪的错误。这就是发生的事情:我正在做一个涉及太阳黑子搜索的请求。对于返回合理 solr 响应大小的所有请求,一切正常。对于 solr 响应超过 1 MB 的特定请求,我收到此错误:

SOLR Request (186.0ms)  [ path=#<RSolr::Client:0x00000006f76c18> parameters={data: fq=type%3AArticle&fq=review_im%3A46&start=0&rows=0&facet=true&f.source_i.facet.mincount=1&facet.field=source_i&facet.field=language_i&facet.field=publication_types_im&facet.field=features_im&facet.field=locations_im&facet.field=keyphrases_im&facet.field=journal_i&facet.field=authors_im&facet.field=year_i&f.language_i.facet.mincount=1&f.publication_types_im.facet.mincount=1&f.features_im.facet.mincount=1&f.locations_im.facet.limit=30&f.locations_im.facet.mincount=1&f.keyphrases_im.facet.limit=30&f.keyphrases_im.facet.mincount=1&f.journal_i.facet.sort=true&f.journal_i.facet.limit=-1&f.journal_i.facet.mincount=1&f.authors_im.facet.sort=true&f.authors_im.facet.limit=-1&f.authors_im.facet.mincount=1&f.year_i.facet.limit=-1&f.year_i.facet.mincount=1&q=%2A%3A%2A, method: post, params: {:wt=>:ruby}, query: wt=ruby, headers: {"Content-Type"=>"application/x-www-form-urlencoded; charset=UTF-8"}, path: select, uri: http://localhost:8982/solr/select?wt=ruby, open_timeout: , read_timeout: , retry_503: , retry_after_limit: } ]
Solr Select (186.3ms)  fq=type%3AArticle&fq=review_im%3A46&start=0&rows=0&facet=true&f.source_i.facet.mincount=1&facet.field=source_i&facet.field=language_i&facet.field=publication_types_im&facet.field=features_im&facet.field=locations_im&facet.field=keyphrases_im&facet.field=journal_i&facet.field=authors_im&facet.field=year_i&f.language_i.facet.mincount=1&f.publication_types_im.facet.mincount=1&f.features_im.facet.mincount=1&f.locations_im.facet.limit=30&f.locations_im.facet.mincount=1&f.keyphrases_im.facet.limit=30&f.keyphrases_im.facet.mincount=1&f.journal_i.facet.sort=true&f.journal_i.facet.limit=-1&f.journal_i.facet.mincount=1&f.authors_im.facet.sort=true&f.authors_im.facet.limit=-1&f.authors_im.facet.mincount=1&f.year_i.facet.limit=-1&f.year_i.facet.mincount=1&q=%2A%3A%2A
Completed 500 Internal Server Error in 650ms

SystemStackError (stack level too deep):
  actionpack (3.2.11) lib/action_dispatch/middleware/reloader.rb:70


  Rendered /home/hammady/.rvm/gems/ruby-1.9.2-p320/gems/actionpack-3.2.11/lib/action_dispatch/middleware/templates/rescues/_trace.erb (1.0ms)
  Rendered /home/hammady/.rvm/gems/ruby-1.9.2-p320/gems/actionpack-3.2.11/lib/action_dispatch/middleware/templates/rescues/_request_and_response.erb (1.1ms)
  Rendered /home/hammady/.rvm/gems/ruby-1.9.2-p320/gems/actionpack-3.2.11/lib/action_dispatch/middleware/templates/rescues/diagnostics.erb within rescues/layout (8.7ms)
2013/04/08 08:53:05 [error] 7480#0: *6 upstream prematurely closed connection while reading response header from upstream, client: 127.0.0.1, server: _, request: "GET /reviews/46/results?mode=visible&polling=1&search=all HTTP/1.1", upstream: "passenger:unix:/passenger_helper_server:", host: "localhost:4000"

这是太阳黑子虫吗?

更新:不,这是一个 ruby​​ VM 问题,我在这里报告了它。

4

1 回答 1

0

我注意到您正在使用 ruby​​-1.9.2-p320,并且在另一个 gem (delayed_job) 中报告了类似的问题,reloader.rb导致SystemStackError

https://github.com/collectiveidea/delayed_job/issues/349

该线程中的几个人(尽管不是所有人)报告说它已通过升级到 Ruby 1.9.3 修复,因此您可能想尝试一下。

于 2013-04-08T06:27:17.767 回答