Twilio

2015-03-19 9 views
5

के माध्यम से एक संदेश भेजने का प्रयास करते समय अजीब त्रुटियां प्राप्त करना हमने कल हमारे बैकएंड में एक बड़ा अपग्रेड किया और अब हमें कुछ अजीब त्रुटियां मिल रही हैं और मुझे नहीं पता कि वे क्या हैं। Twilio के क्लाइंट के माध्यम से संदेश भेजने का प्रयास करते समय त्रुटियां हो रही हैं। साथ ही, चीजों को हमारी साइडकीक कतार में बैक अप मिल रहा है, हम इन त्रुटियों के कारण विश्वास करते हैं। हमारे साइडकीक व्यस्त टैब में कुछ चीजें प्रतीक्षा कर रही हैं।Twilio

  • IOError: बंद धारा
  • OpenSSL :: एसएसएल :: SSLError: SSL_connect लौटे = 1 errno = 0 राज्य = SSLv3 पढ़ने सर्वर नमस्ते एक: अज्ञात चेतावनी यहाँ त्रुटियों हम देख रहे हैं में से कुछ हैं टाइप
  • Net :: ReadTimeout: Net :: ReadTimeout
  • EOFError: फ़ाइल के अंत तक पहुँच
  • IOError: खराब फ़ाइल डिस्क्रिप्टर
  • : ब्लॉक से बाहर
  • errno :: EBADF शरीर को पढ़ने के लिए प्रयास

ये हमारे लिए बहुत पहले नहीं हुए हैं और अब वे बहुत बार हो रहे हैं। यहाँ IOError के लिए एक स्टैकट्रेस है: बंद धारा त्रुटि:

/vendor/ruby-2.1.0/lib/ruby/2.1.0/net/protocol.rb:155 in "select" 
/vendor/ruby-2.1.0/lib/ruby/2.1.0/net/protocol.rb:155 in "rescue in rbuf_fill" 
/vendor/ruby-2.1.0/lib/ruby/2.1.0/net/protocol.rb:152 in "rbuf_fill" 
/vendor/ruby-2.1.0/lib/ruby/2.1.0/net/protocol.rb:134 in "readuntil" 
/vendor/ruby-2.1.0/lib/ruby/2.1.0/net/protocol.rb:144 in "readline" 
/vendor/ruby-2.1.0/lib/ruby/2.1.0/net/http/response.rb:39 in "read_status_line" 
/vendor/ruby-2.1.0/lib/ruby/2.1.0/net/http/response.rb:28 in "read_new" 
/vendor/ruby-2.1.0/lib/ruby/2.1.0/net/http.rb:1408 in "block in transport_request" 
/vendor/ruby-2.1.0/lib/ruby/2.1.0/net/http.rb:1405 in "catch" 
/vendor/ruby-2.1.0/lib/ruby/2.1.0/net/http.rb:1405 in "transport_request" 
/vendor/ruby-2.1.0/lib/ruby/2.1.0/net/http.rb:1378 in "request" 
/vendor/bundle/ruby/2.1.0/gems/newrelic_rpm-3.9.5.251/lib/new_relic/agent/instrumentation/net.rb:27 in "block (2 levels) in request_with_newrelic_trace" 
/vendor/bundle/ruby/2.1.0/gems/newrelic_rpm-3.9.5.251/lib/new_relic/agent.rb:454 in "disable_all_tracing" 
/vendor/bundle/ruby/2.1.0/gems/newrelic_rpm-3.9.5.251/lib/new_relic/agent/instrumentation/net.rb:26 in "block in request_with_newrelic_trace" 
/vendor/bundle/ruby/2.1.0/gems/newrelic_rpm-3.9.5.251/lib/new_relic/agent/cross_app_tracing.rb:38 in "tl_trace_http_request" 
/vendor/bundle/ruby/2.1.0/gems/newrelic_rpm-3.9.5.251/lib/new_relic/agent/instrumentation/net.rb:23 in "request_with_newrelic_trace" 
/vendor/ruby-2.1.0/lib/ruby/2.1.0/net/http.rb:1371 in "block in request" 
/vendor/ruby-2.1.0/lib/ruby/2.1.0/net/http.rb:853 in "start" 
/vendor/ruby-2.1.0/lib/ruby/2.1.0/net/http.rb:1369 in "request" 
/vendor/bundle/ruby/2.1.0/gems/newrelic_rpm-3.9.5.251/lib/new_relic/agent/instrumentation/net.rb:27 in "block (2 levels) in request_with_newrelic_trace" 
/vendor/bundle/ruby/2.1.0/gems/newrelic_rpm-3.9.5.251/lib/new_relic/agent.rb:454 in "disable_all_tracing" 
/vendor/bundle/ruby/2.1.0/gems/newrelic_rpm-3.9.5.251/lib/new_relic/agent/instrumentation/net.rb:26 in "block in request_with_newrelic_trace" 
/vendor/bundle/ruby/2.1.0/gems/newrelic_rpm-3.9.5.251/lib/new_relic/agent/cross_app_tracing.rb:43 in "tl_trace_http_request" 
/vendor/bundle/ruby/2.1.0/gems/newrelic_rpm-3.9.5.251/lib/new_relic/agent/instrumentation/net.rb:23 in "request_with_newrelic_trace" 
/vendor/bundle/ruby/2.1.0/gems/twilio-ruby-3.11.5/lib/twilio-ruby/rest/client.rb:216 in "connect_and_send" 
/vendor/bundle/ruby/2.1.0/gems/twilio-ruby-3.11.5/lib/twilio-ruby/rest/client.rb:168 in "block (2 levels) in <class:Client>" 
/vendor/bundle/ruby/2.1.0/gems/twilio-ruby-3.11.5/lib/twilio-ruby/rest/list_resource.rb:91 in "create" 
/app/models/message_sender.rb:142 in "send_message_with_twilio!" 
/app/models/message_sender.rb:66 in "send_sms" 
/app/models/message_sender.rb:37 in "send_now" 
/app/models/message_sender.rb:19 in "block (2 levels) in save_and_send_from_job" 
/vendor/bundle/ruby/2.1.0/gems/activerecord-4.1.6/lib/active_record/connection_adapters/abstract/database_statements.rb:201 in "block in transaction" 
/vendor/bundle/ruby/2.1.0/gems/activerecord-4.1.6/lib/active_record/connection_adapters/abstract/database_statements.rb:209 in "within_new_transaction" 
/vendor/bundle/ruby/2.1.0/gems/activerecord-4.1.6/lib/active_record/connection_adapters/abstract/database_statements.rb:201 in "transaction" 
/vendor/bundle/ruby/2.1.0/gems/activerecord-4.1.6/lib/active_record/transactions.rb:208 in "transaction" 
/app/models/message_sender.rb:17 in "block in save_and_send_from_job" 
/app/models/message_sender.rb:16 in "each" 
/app/models/message_sender.rb:16 in "save_and_send_from_job" 
/app/workers/send_single_sms_worker.rb:8 in "perform" 
/vendor/bundle/ruby/2.1.0/gems/sidekiq-2.17.7/lib/sidekiq/processor.rb:49 in "block (3 levels) in process" 
/vendor/bundle/ruby/2.1.0/gems/sidekiq-2.17.7/lib/sidekiq/middleware/chain.rb:122 in "call" 
/vendor/bundle/ruby/2.1.0/gems/sidekiq-2.17.7/lib/sidekiq/middleware/chain.rb:122 in "block in invoke" 
/vendor/bundle/ruby/2.1.0/gems/newrelic_rpm-3.9.5.251/lib/new_relic/agent/instrumentation/sidekiq.rb:33 in "block in call" 
/vendor/bundle/ruby/2.1.0/gems/newrelic_rpm-3.9.5.251/lib/new_relic/agent/instrumentation/controller_instrumentation.rb:365 in "perform_action_with_newrelic_trace" 
/vendor/bundle/ruby/2.1.0/gems/newrelic_rpm-3.9.5.251/lib/new_relic/agent/instrumentation/sidekiq.rb:29 in "call" 
/vendor/bundle/ruby/2.1.0/gems/sidekiq-2.17.7/lib/sidekiq/middleware/chain.rb:124 in "block in invoke" 
/vendor/bundle/ruby/2.1.0/gems/sidetiq-0.6.1/lib/sidetiq/middleware/history.rb:8 in "call" 
/vendor/bundle/ruby/2.1.0/gems/sidekiq-2.17.7/lib/sidekiq/middleware/chain.rb:124 in "block in invoke" 
/vendor/bundle/ruby/2.1.0/gems/sidekiq-history-0.0.1/lib/sidekiq/history/middleware.rb:26 in "call" 
/vendor/bundle/ruby/2.1.0/gems/sidekiq-2.17.7/lib/sidekiq/middleware/chain.rb:124 in "block in invoke" 
/vendor/bundle/ruby/2.1.0/gems/sidekiq-2.17.7/lib/sidekiq/middleware/server/active_record.rb:6 in "call" 
/vendor/bundle/ruby/2.1.0/gems/sidekiq-2.17.7/lib/sidekiq/middleware/chain.rb:124 in "block in invoke" 
/vendor/bundle/ruby/2.1.0/gems/sidekiq-2.17.7/lib/sidekiq/middleware/server/retry_jobs.rb:62 in "call" 
/vendor/bundle/ruby/2.1.0/gems/sidekiq-2.17.7/lib/sidekiq/middleware/chain.rb:124 in "block in invoke" 
/vendor/bundle/ruby/2.1.0/bundler/gems/sidekiq-failures-485c6e56e306/lib/sidekiq/failures/middleware.rb:9 in "call" 
/vendor/bundle/ruby/2.1.0/gems/sidekiq-2.17.7/lib/sidekiq/middleware/chain.rb:124 in "block in invoke" 
/vendor/bundle/ruby/2.1.0/gems/sidekiq-2.17.7/lib/sidekiq/middleware/server/logging.rb:11 in "block in call" 
/vendor/bundle/ruby/2.1.0/gems/sidekiq-2.17.7/lib/sidekiq/logging.rb:22 in "with_context" 
/vendor/bundle/ruby/2.1.0/gems/sidekiq-2.17.7/lib/sidekiq/middleware/server/logging.rb:7 in "call" 
/vendor/bundle/ruby/2.1.0/gems/sidekiq-2.17.7/lib/sidekiq/middleware/chain.rb:124 in "block in invoke" 
/vendor/bundle/ruby/2.1.0/gems/sidekiq-2.17.7/lib/sidekiq/middleware/chain.rb:127 in "call" 
/vendor/bundle/ruby/2.1.0/gems/sidekiq-2.17.7/lib/sidekiq/middleware/chain.rb:127 in "invoke" 
/vendor/bundle/ruby/2.1.0/gems/sidekiq-2.17.7/lib/sidekiq/processor.rb:48 in "block (2 levels) in process" 
/vendor/bundle/ruby/2.1.0/gems/sidekiq-2.17.7/lib/sidekiq/processor.rb:108 in "stats" 
/vendor/bundle/ruby/2.1.0/gems/sidekiq-2.17.7/lib/sidekiq/processor.rb:47 in "block in process" 
/vendor/bundle/ruby/2.1.0/gems/sidekiq-2.17.7/lib/sidekiq/processor.rb:86 in "do_defer" 
/vendor/bundle/ruby/2.1.0/gems/sidekiq-2.17.7/lib/sidekiq/processor.rb:37 in "process" 
/vendor/bundle/ruby/2.1.0/gems/celluloid-0.16.0/lib/celluloid/calls.rb:26 in "public_send" 
/vendor/bundle/ruby/2.1.0/gems/celluloid-0.16.0/lib/celluloid/calls.rb:26 in "dispatch" 
/vendor/bundle/ruby/2.1.0/gems/celluloid-0.16.0/lib/celluloid/calls.rb:122 in "dispatch" 
/vendor/bundle/ruby/2.1.0/gems/celluloid-0.16.0/lib/celluloid/cell.rb:60 in "block in invoke" 
/vendor/bundle/ruby/2.1.0/gems/celluloid-0.16.0/lib/celluloid/cell.rb:71 in "block in task" 
/vendor/bundle/ruby/2.1.0/gems/celluloid-0.16.0/lib/celluloid/actor.rb:357 in "block in task" 
/vendor/bundle/ruby/2.1.0/gems/celluloid-0.16.0/lib/celluloid/tasks.rb:57 in "block in initialize" 
/vendor/bundle/ruby/2.1.0/gems/celluloid-0.16.0/lib/celluloid/tasks/task_fiber.rb:15 in "block in create" 
+0

यह सिर्फ एक अनुमान है, लेकिन क्या आपका सर्वर अभी भी SSLv3 का उपयोग कर रहा है? Twilio पिछले साल अक्टूबर में एसएसएलवी 3 के लिए समर्थन बंद कर दिया: https://www.twilio.com/blog/2014/10/security-notification-for-sslv3-poodle-vulnerability.html –

+0

क्या हमने पहले इस मुद्दे को नहीं देखा होगा कल हालांकि? –

+0

संभावित रूप से हां, जब तक कि कुछ बदल नहीं गया जो SSLv3 को पुन: प्रस्तुत करता है। क्या आपने यह देखा है: http://stackoverflow.com/questions/17369962/opensslsslsslerror-ssl-connect-returned-1-errno-0-state-unknown-state-unkn यह जो आप देख रहे हैं उसके करीब लगता है। –

उत्तर

10

सबसे अधिक संभावना मुद्दा मिल गया के बाद से हमें कोई समस्या यह इस तरह से तय करने के बाद से नहीं किया है। Twilio क्लाइंट को बाहर थ्रेड सुरक्षित नहीं है और हम एक ही @client को विभिन्न धागे के समूह के साथ हथौड़ा लगाने की कोशिश कर रहे थे। यह तय करना था कि हम हर बार एक नया ट्विलियो क्लाइंट बनाते हैं जिसे हमें एक की आवश्यकता होती है।

+0

आपने यह कैसे किया? हमारे पास साइडकीक के साथ भी एक ही समस्या है। – bcackerman

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