2013-04-08 24 views
1

我知道這是跟蹤最難的錯誤。這是發生了什麼事情: 我正在做一個涉及太陽黑子搜索的請求。對於所有返回合理solr響應大小的請求,一切正常。對於那些Solr的響應超過1 MB的特定要求,我得到這個錯誤:太陽黑子寶石中的SystemStackError(棧級太深)

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" 

這是太陽黑子的錯誤?

更新:不,這是一個紅寶石虛擬機問題,我報告它here

+0

提交了[太陽黑子bug](https://github.com/sunspot/sunspot/issues/395) – hammady 2013-04-08 08:51:21

+0

你能否嘗試獲得完整的堆棧跟蹤,以及Solr的完整響應? – 2013-04-08 22:02:27

+0

上面的堆棧跟蹤是我可以從這種異常中獲得的最大值。完整的Solr響應可以在這裏找到(http://da.qcri.org/solr-response-46-70000.txt)。 – hammady 2013-04-10 08:32:51

回答

0

我注意到你使用Ruby-1.9.2-P320,並且據報道,另一顆寶石(delayed_job的)類似的問題,即reloader.rb是導致SystemStackError

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

幾個人(儘管不是每個人)在該線程報告它通過升級到Ruby 1.9.3修復,所以你可能想嘗試。

+0

對不起,這並沒有解決問題,閾值大約是640 KB solr響應。問題直接與響應大小(或導致大小變化的方面限制) – hammady 2013-04-08 07:17:31

相關問題