2012-03-23 15 views
5

मैं देखा है कि कुछ अनुरोध, विशेष रूप से अपटाइम रोबोट से पेज सक्रिय रहने की अवधि का परीक्षण करने के हाल ही में मेरी रेल 3.1.x एप्लिकेशन पर निम्नलिखित रैक एक प्रकार का वृक्ष त्रुटि उत्पन्न करना शुरू कर दिया है:रैक लिंट त्रुटियों को कैसे हल करें?

21:47:05 web.1  | Started HEAD "/" for 74.86.158.106 at 2012-03-22 21:47:05 -0400 
21:47:05 web.1  | Processing by HomeController#index as */* 
... 
21:47:05 web.1  | /Users/username/.rvm/gems/[email protected]/gems/activesupport-3.1.4/lib/active_support/core_ext/string/output_safety.rb:23: warning: regexp match /.../n against to UTF-8 string 
... 
21:47:05 web.1  | Completed 200 OK in 81ms (Views: 60.3ms | ActiveRecord: 0.0ms) 
21:47:05 web.1  | 74.86.158.106 - - [22/Mar/2012 21:47:05] "GET/HTTP/1.1" 200 31842 0.1993 
21:47:05 web.1  | E, [2012-03-22T21:47:05.546848 #18938] ERROR -- : app error: Content-Length header was 31842, but should be 0 (Rack::Lint::LintError) 
21:47:05 web.1  | E, [2012-03-22T21:47:05.546978 #18938] ERROR -- : /Users/username/.rvm/gems/[email protected]/gems/rack-1.3.6/lib/rack/lint.rb:19:in `assert' 
21:47:05 web.1  | E, [2012-03-22T21:47:05.547079 #18938] ERROR -- : /Users/username/.rvm/gems/[email protected]/gems/rack-1.3.6/lib/rack/lint.rb:501:in `verify_content_length' 
21:47:05 web.1  | E, [2012-03-22T21:47:05.547178 #18938] ERROR -- : /Users/username/.rvm/gems/[email protected]/gems/rack-1.3.6/lib/rack/lint.rb:525:in `each' 
21:47:05 web.1  | E, [2012-03-22T21:47:05.547277 #18938] ERROR -- : /Users/username/.rvm/gems/[email protected]/gems/rack-1.3.6/lib/rack/body_proxy.rb:23:in `method_missing' 
21:47:05 web.1  | E, [2012-03-22T21:47:05.547375 #18938] ERROR -- : /Users/username/.rvm/gems/[email protected]/gems/unicorn-4.2.0/lib/unicorn/http_response.rb:41:in `http_response_write' 
21:47:05 web.1  | E, [2012-03-22T21:47:05.547476 #18938] ERROR -- : /Users/username/.rvm/gems/[email protected]/gems/unicorn-4.2.0/lib/unicorn/http_server.rb:538:in `process_client' 
21:47:05 web.1  | E, [2012-03-22T21:47:05.547574 #18938] ERROR -- : /Users/username/.rvm/gems/[email protected]/gems/unicorn-4.2.0/lib/unicorn/http_server.rb:604:in `worker_loop' 
21:47:05 web.1  | E, [2012-03-22T21:47:05.547672 #18938] ERROR -- : /Users/username/.rvm/gems/[email protected]/gems/unicorn-4.2.0/lib/unicorn/http_server.rb:487:in `spawn_missing_workers' 
21:47:05 web.1  | E, [2012-03-22T21:47:05.547770 #18938] ERROR -- : /Users/username/.rvm/gems/[email protected]/gems/unicorn-4.2.0/lib/unicorn/http_server.rb:137:in `start' 
21:47:05 web.1  | E, [2012-03-22T21:47:05.547867 #18938] ERROR -- : /Users/username/.rvm/gems/[email protected]/gems/unicorn-4.2.0/bin/unicorn:121:in `<top (required)>' 
21:47:05 web.1  | E, [2012-03-22T21:47:05.547966 #18938] ERROR -- : /Users/username/.rvm/gems/[email protected]/bin/unicorn:19:in `load' 
21:47:05 web.1  | E, [2012-03-22T21:47:05.548063 #18938] ERROR -- : /Users/username/.rvm/gems/[email protected]/bin/unicorn:19:in `<main>' 

क्या हो रहा हो सकता है के रूप में कोई भी विचार यहाँ? मुझे वास्तव में कोई समाधान नहीं मिल रहा है जो विशेष रूप से इस परिदृश्य में क्या करना है, जहां तक ​​वास्तव में चल रहा है और शिकार करना है।

उत्तर

1

मुझे पता है कि यह एक पुराना सवाल है, लेकिन मेरे पास एक ही समस्या है। UptimeRobot और New Relic से अनुरोध (और केवल उन दोनों से आईपी से) इन लॉग संदेशों को दें।

दोनों UptimeRobot और NewRelic रिपोर्ट 'ठीक'।

ऐसा लगता है कि यह अनुरोध नहीं है कि Rack::Lint शिकायत कर रहा है, लेकिन प्रतिक्रिया। स्टैकट्रैक को देखो। यह यूनिकॉर्न के http_response_write के माध्यम से आता है (मैं भी यूनिकॉर्न का उपयोग करता हूं)।

मैं और अधिक जांच करूँगा और यहां कोई निष्कर्ष जोड़ूंगा।

अद्यतन:

मैं

$ curl https://example.com -X HEAD -i 
HTTP/1.1 200 OK 
Server: nginx/1.6.2 (Ubuntu) 
Date: Wed, 18 Nov 2015 09:17:11 GMT 
Content-Type: text/html; charset=utf-8 
Content-Length: 18422 
Connection: keep-alive 
Status: 200 OK 
... 

curl: (18) transfer closed with 18422 bytes remaining to read 

साथ समस्या को ठीक करने में सक्षम हूँ तो यह है कि मेरे पुराने रेल HEAD अनुरोध ठीक से समर्थन नहीं कर रहा है लगता है।

अद्यतन: मैं अपने योनि बॉक्स या स्टेजिंग सर्वर पर पुन: उत्पन्न करने में सक्षम नहीं हूं। उत्पादन से केवल अंतर मैं एसएसएल के बारे में सोच सकता हूं।

0

ऐसा लगता है कि आपका अपटाइम रोबोट गलत मान के साथ एक शीर्षलेख भेज रहा है। यह सामग्री-लंबाई शीर्षलेख 0 (या इसे बिल्कुल नहीं भेज रहा है) के साथ हेडर भेजना चाहिए, लेकिन यह 31842 के साथ भेज रहा है, जो शायद गलत है।

आप इसे किसी अन्य http सर्वर पर निर्देशित कर सकते हैं, सभी शीर्षकों को डंप कर सकते हैं और देख सकते हैं कि यह क्यों भेज रहा है या बस अपना अपटाइम रोबोट पर को इस हेडर को भेजें।

संबंधित मुद्दे