Слишком много тайм-аута H13 после обновления безопасности, обновления Heroku-18 и обновления Ruby 2.5.3 - PullRequest
0 голосов
/ 26 ноября 2018

Поскольку мы сделали обновление для heroku-16 и Ruby (с 2.4.4 до Ruby 2.5.3 ) и некоторых драгоценных камней, перечисленных ниже, у нас много тайм-аута H13,Они происходят случайным образом во многих конечных точках (я не знаю, влияют ли на них все, но это не только запросы POST).

На моем локальном хосте у меня тоже есть тайм-аут с конечной точкой POST, но, вероятно, он не один.Я не уверен, что это та же проблема, но она пришла с той же даты.Время ожидания говорит:

ERROR Rack::Timeout::RequestExpiryError: Request older than 90000ms.

, но оно всегда достигает менее 500 мс ...

Вы уже видели подобную проблему, и у вас есть идея, откуда онаможет прийти?

Это действительно похоже на этот вопрос , но речь идет не только о конечных точках POST.

Подробнее:

  • драгоценные камни обновлены:
    • heroku-14 to heroku-16
    • ruby ​​2.4.4 до ruby ​​2.5.3
    • bcrypt (3.1.11) дляbcrypt (3.1.12)
    • разработка (3.5.10) для разработки (4.5.0)
    • люфа (2.2.2) для люфы (2.2.3)
    • newrelic_rpm (3.17.0.325) в newrelic_rpm (5.4.0.347)
    • nokogiri (1.8.3) в nokogiri (1.8.5)
    • респондентов (2.3.0) респондентам (2.4.0))
    • rubyzip (1.2.1) - rubyzip (1.2.2)
    • начальник (1.2.6) - начальник (1.2.7)

Полная локальная трассировка стека:

E, [2018-11-23T15:24:24.409549 #19322] ERROR -- : source=rack-timeout id=adf51ebda656ee2355d3224969a21a8d wait=2769866124ms timeout=90000ms state=expired
[2018-11-23 15:24:24] ERROR Rack::Timeout::RequestExpiryError: Request older than 90000ms.
/Users/hugo/code/***-api/vendor/bundle/ruby/2.5.0/gems/rack-timeout-0.4.2/lib/rack/timeout/core.rb:95:in 'call'
/Users/hugo/code/***-api/vendor/bundle/ruby/2.5.0/gems/rack-1.6.10/lib/rack/lock.rb:17:in 'call'
/Users/hugo/code/***-api/vendor/bundle/ruby/2.5.0/gems/actionpack-4.2.10/lib/action_dispatch/middleware/static.rb:120:in 'call'
/Users/hugo/code/***-api/vendor/bundle/ruby/2.5.0/gems/rack-1.6.10/lib/rack/sendfile.rb:113:in 'call'
/Users/hugo/code/***-api/vendor/bundle/ruby/2.5.0/gems/hirefire-resource-0.6.0/lib/hirefire/middleware.rb:43:in 'call'
/Users/hugo/code/***-api/vendor/bundle/ruby/2.5.0/gems/railties-4.2.10/lib/rails/engine.rb:518:in 'call'
/Users/hugo/code/***-api/vendor/bundle/ruby/2.5.0/gems/railties-4.2.10/lib/rails/application.rb:165:in 'call'
/Users/hugo/code/***-api/vendor/bundle/ruby/2.5.0/gems/railties-4.2.10/lib/rails/railtie.rb:194:in 'public_send'
/Users/hugo/code/***-api/vendor/bundle/ruby/2.5.0/gems/railties-4.2.10/lib/rails/railtie.rb:194:in 'method_missing'
/Users/hugo/code/***-api/vendor/bundle/ruby/2.5.0/gems/rack-cors-0.4.1/lib/rack/cors.rb:81:in 'call'
/Users/hugo/code/***-api/vendor/bundle/ruby/2.5.0/gems/rack-1.6.10/lib/rack/deflater.rb:35:in 'call'
/Users/hugo/code/***-api/vendor/bundle/ruby/2.5.0/gems/rack-1.6.10/lib/rack/lock.rb:17:in 'call'
/Users/hugo/code/***-api/vendor/bundle/ruby/2.5.0/gems/rack-1.6.10/lib/rack/content_length.rb:15:in 'call'
/Users/hugo/code/***-api/vendor/bundle/ruby/2.5.0/gems/rack-1.6.10/lib/rack/handler/webrick.rb:88:in 'service'
/Users/hugo/.rvm/rubies/ruby-2.5.3/lib/ruby/2.5.0/webrick/httpserver.rb:140:in 'service'
/Users/hugo/.rvm/rubies/ruby-2.5.3/lib/ruby/2.5.0/webrick/httpserver.rb:96:in 'run'
/Users/hugo/.rvm/rubies/ruby-2.5.3/lib/ruby/2.5.0/webrick/server.rb:307:in 'block in start_thread'

Gemfile:

ruby "2.5.3"

gem "rails",                  "~> 4.2.8"

# ActiveAdmin with Rails 4.x support
gem "activeadmin",            "~> 1.0.0.pre4"
gem "apnotic",                "~> 1.3.1", require: false
gem "aws-sdk",                "~> 2.6.14"
gem "bugsnag",                "~> 5.0.1"
gem "cancancan",              "~> 1.9.2"
gem "carrierwave",            "~> 0.9.0"
gem "celluloid",              "~> 0.18.0.pre", require: "celluloid/current"
gem "cloudinary",             "~> 1.9.1"
gem "dentaku",                "~> 3.2.0"
gem "devise",                 "~> 4.5.0"
gem "email_inquire", git: "https://github.com/klaxit/email_inquire.git",
                     ref: "8e56cbc"
gem "faraday",                "~> 0.9.2"
gem "fast-polylines",         "~> 0.1.1"
gem "gcm",                    "~> 0.1.1", require: false
gem "geo-resolver",           "~> 1.6"
gem "gibbon",                 "~> 3.2"
gem "gmaps4rails",            "~> 1.5.7"
gem "hirefire-resource",      "~> 0.6.0"
gem "hutch",                  "~> 0.24.0"
gem "koala",                  "~> 3.0"
gem "loc",                    "~> 0.1.0"
gem "memoist",                "~> 0.12.0"
gem "net-http-persistent",    "~> 2.9.4"
gem "newrelic_rpm",           "~> 5.4.0.347"
gem "nexmo",                  "~> 4.6.0", require: false
gem "oj",                     "~> 3.0.9"
gem "omniauth-google-oauth2", "~> 0.5.2"
gem "paper_trail",            "~> 7.1.3"
gem "pg",                     "~> 0.19.0"
gem "phony",                  "~> 2.15.33"
gem "pubnub",                 "~> 4.0.21"
gem "rabl",                   "~> 0.9.3"
gem "rack-attack",            "~> 5.0.1"
gem "rack-cors",              "~> 0.4.0", require: "rack/cors"
gem "rack-timeout",           "~> 0.4.2"
gem "rake",                   "~> 11.3.0"
gem "readthis",               "~> 2.2.0"
# Redis gem v3.3.x does not support the OpenSSL::SSL::VERIFY_NONE option
# which is necessary to work with Heroku Redis so we made our own version
# (https://devcenter.heroku.com/articles/securing-heroku-redis#using-ruby)
gem "redis",                  git: "https://github.com/klaxit/redis-rb.git",
                              ref: "95229df721f7a12f55d42f96d6338c0846336b2c"
gem "s3_direct_upload",       "~> 0.1.7"
gem "sidekiq",                "~> 4.2.10"
gem "sidekiq-scheduler",      "~> 2.1.10"
gem "sidekiq-status",         "~> 1.1.0"
gem "sidekiq-worker-killer",  "~> 0.2.0"
gem "stripe",                 "~> 2.8.0"
gem "tod",                    "~> 2.0.2"
gem "virtus",                 "~> 1.0.5"
gem "zendesk_api",            "~> 1.15"

# Sidekiq Pro
source "https://gems.contribsys.com/" do
  gem "sidekiq-pro"
end

## Gems used only on Heroku
group :production, :staging, :playground do
  gem "rails_12factor",        "~> 0.0.3"
  gem "unicorn",               "~> 5.2.0"
  gem "unicorn-worker-killer", "~> 0.4.2"
end

## Gems used only for assets compilation
group :assets do
  gem "sass-rails", "~> 4.0.5"
  gem "uglifier",   "~> 3.0.3"
end
  • Примеры производственных трасс:

    1. 9 Nov 2018 14:20:09.015367 <158>1 2018-11-19T14:20:08.481432+00:00 host heroku router - at=error code=H13 desc="Connection closed without response" method=GET path="/v1/companies?support_flextime=true&auth_token=***" host=api.***.com request_id=88fdcb28-329e-4507-a954-dcf1d6200fb8 fwd="**.***.***.***" dyno=web.1 connect=0ms service=316ms status=503 bytes=0 protocol=https

    2. 19 Nov 2018 15:27:19.3181054 <158>1 2018-11-19T15:27:18.740693+00:00 host heroku router - at=error code=H13 desc="Connection closed without response" method=GET path="/v1/exchanges?auth_token=***&ids[]=***&ids[]=***" host=api.***.com request_id=c8adbd91-466d-4fb1-afc8-d4134829dd66 fwd="**.***.***.**" dyno=web.2 connect=0ms service=128ms status=503 bytes=0 protocol=https

    3. 19 Nov 2018 15:28:03.325456 <158>1 2018-11-19T15:28:02.638840+00:00 host heroku router - at=error code=H13 desc="Connection closed without response" method=GET path="/v1/mates?ids%5B%5D=***&auth_token=***" host=api.***.com request_id=d3f3f14b-f0e2-459a-9597-1815965dbf4e fwd="**.***.***.**" dyno=web.1 connect=0ms service=406ms status=503 bytes=0 protocol=https

    4. 19 Nov 2018 15:29:20.190348 <158>1 2018-11-19T15:29:19.773786+00:00 host heroku router - at=error code=H13 desc="Connection closed without response" method=GET path="/admin/mates/***" host=api.***.com request_id=7d66c391-a16c-4f79-9eac-13086bf15366 fwd="**.***.***.**" dyno=web.2 connect=1ms service=452ms status=503 bytes=0 protocol=https

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...