Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 神秘的类型错误:没有为OpenSSL::Digest类定义_dump_数据_Ruby On Rails_Ruby_Activesupport - Fatal编程技术网

Ruby on rails 神秘的类型错误:没有为OpenSSL::Digest类定义_dump_数据

Ruby on rails 神秘的类型错误:没有为OpenSSL::Digest类定义_dump_数据,ruby-on-rails,ruby,activesupport,Ruby On Rails,Ruby,Activesupport,我们最近看到这个错误越来越多地出现,但并不一致,也无法手动重现。 我们在Ruby2.6.5上有一个标准的RubyonRails应用程序(5.2.3) 我读过所有其他类似标题的帖子,但我不知道这是从哪里来的,这里是我们的stacktrace: /gems/activesupport-5.2.3/lib/active_support/cache.rb:784 in dump /gems/activesupport-5.2.3/lib/active_support/cache.rb:784 in c

我们最近看到这个错误越来越多地出现,但并不一致,也无法手动重现。

我们在Ruby2.6.5上有一个标准的RubyonRails应用程序(5.2.3)

我读过所有其他类似标题的帖子,但我不知道这是从哪里来的,这里是我们的stacktrace:

/gems/activesupport-5.2.3/lib/active_support/cache.rb:784 in dump
/gems/activesupport-5.2.3/lib/active_support/cache.rb:784 in compress!
/gems/activesupport-5.2.3/lib/active_support/cache.rb:722 in initialize
/gems/activesupport-5.2.3/lib/active_support/cache.rb:445 in new
/gems/activesupport-5.2.3/lib/active_support/cache.rb:445 in block in write
/gems/activesupport-5.2.3/lib/active_support/cache.rb:663 in block in instrument
/gems/activesupport-5.2.3/lib/active_support/notifications.rb:170 in instrument
/gems/activesupport-5.2.3/lib/active_support/cache.rb:663 in instrument
/gems/activesupport-5.2.3/lib/active_support/cache.rb:444 in write
/gems/ddtrace-0.29.1/lib/ddtrace/contrib/active_support/cache/instrumentation.rb:120 in write
/gems/i18n-1.8.3/lib/i18n/backend/cache.rb:97 in _fetch
/gems/i18n-1.8.3/lib/i18n/backend/cache.rb:87 in fetch
/gems/i18n-1.8.3/lib/i18n/backend/cache.rb:81 in translate
/gems/i18n-1.8.3/lib/i18n/backend/fallbacks.rb:41 in translate
/gems/i18n-1.8.3/lib/i18n.rb:206 in block in translate
/gems/i18n-1.8.3/lib/i18n.rb:202 in catch
/gems/i18n-1.8.3/lib/i18n.rb:202 in translate
/gems/i18n-1.8.3/lib/i18n/backend/base.rb:146 in block in resolve
/gems/i18n-1.8.3/lib/i18n/backend/base.rb:143 in catch
/gems/i18n-1.8.3/lib/i18n/backend/base.rb:143 in resolve
/gems/i18n-1.8.3/lib/i18n/backend/base.rb:129 in block in default
/gems/i18n-1.8.3/lib/i18n/backend/base.rb:128 in each
/gems/i18n-1.8.3/lib/i18n/backend/base.rb:128 in default
/gems/i18n-1.8.3/lib/i18n/backend/base.rb:35 in translate
/gems/i18n-1.8.3/lib/i18n/backend/cache.rb:81 in block in translate
/gems/i18n-1.8.3/lib/i18n/backend/cache.rb:96 in catch
/gems/i18n-1.8.3/lib/i18n/backend/cache.rb:96 in _fetch
/gems/i18n-1.8.3/lib/i18n/backend/cache.rb:87 in fetch
/gems/i18n-1.8.3/lib/i18n/backend/cache.rb:81 in translate
/gems/i18n-1.8.3/lib/i18n/backend/fallbacks.rb:48 in block (2 levels) in translate
/gems/i18n-1.8.3/lib/i18n/backend/fallbacks.rb:47 in catch
/gems/i18n-1.8.3/lib/i18n/backend/fallbacks.rb:47 in block in translate
/gems/i18n-1.8.3/lib/i18n/backend/fallbacks.rb:45 in each
/gems/i18n-1.8.3/lib/i18n/backend/fallbacks.rb:45 in translate
/gems/i18n-1.8.3/lib/i18n.rb:206 in block in translate
/gems/i18n-1.8.3/lib/i18n.rb:202 in catch
/gems/i18n-1.8.3/lib/i18n.rb:202 in translate
/gems/activemodel-5.2.3/lib/active_model/errors.rb:430 in generate_message
/gems/activemodel-5.2.3/lib/active_model/errors.rb:454 in normalize_message
/gems/activemodel-5.2.3/lib/active_model/errors.rb:298 in add
/gems/activemodel-5.2.3/lib/active_model/validations/presence.rb:7 in validate_each
/gems/activerecord-5.2.3/lib/active_record/validations/presence.rb:10 in validate_each
/gems/activemodel-5.2.3/lib/active_model/validator.rb:152 in block in validate
/gems/activemodel-5.2.3/lib/active_model/validator.rb:149 in each
/gems/activemodel-5.2.3/lib/active_model/validator.rb:149 in validate
/gems/activesupport-5.2.3/lib/active_support/callbacks.rb:426 in block in make_lambda
/gems/activesupport-5.2.3/lib/active_support/callbacks.rb:179 in block (2 levels) in halting_and_conditional
/gems/activesupport-5.2.3/lib/active_support/callbacks.rb:606 in block (2 levels) in default_terminator
/gems/activesupport-5.2.3/lib/active_support/callbacks.rb:605 in catch
/gems/activesupport-5.2.3/lib/active_support/callbacks.rb:605 in block in default_terminator
/gems/activesupport-5.2.3/lib/active_support/callbacks.rb:180 in block in halting_and_conditional
/gems/activesupport-5.2.3/lib/active_support/callbacks.rb:513 in block in invoke_before
/gems/activesupport-5.2.3/lib/active_support/callbacks.rb:513 in each
/gems/activesupport-5.2.3/lib/active_support/callbacks.rb:513 in invoke_before
/gems/activesupport-5.2.3/lib/active_support/callbacks.rb:131 in run_callbacks
/gems/activesupport-5.2.3/lib/active_support/callbacks.rb:816 in _run_validate_callbacks
/gems/activemodel-5.2.3/lib/active_model/validations.rb:409 in run_validations!
/gems/activemodel-5.2.3/lib/active_model/validations/callbacks.rb:118 in block in run_validations!
/gems/activesupport-5.2.3/lib/active_support/callbacks.rb:132 in run_callbacks
/gems/activesupport-5.2.3/lib/active_support/callbacks.rb:816 in _run_validation_callbacks
/gems/activemodel-5.2.3/lib/active_model/validations/callbacks.rb:118 in run_validations!
/gems/activemodel-5.2.3/lib/active_model/validations.rb:339 in valid?
/gems/activerecord-5.2.3/lib/active_record/validations.rb:67 in valid?
/gems/activerecord-5.2.3/lib/active_record/validations.rb:84 in perform_validations
/gems/activerecord-5.2.3/lib/active_record/validations.rb:46 in save
/gems/activerecord-5.2.3/lib/active_record/transactions.rb:310 in block (2 levels) in save
/gems/activerecord-5.2.3/lib/active_record/transactions.rb:387 in block in with_transaction_returning_status
/gems/activerecord-5.2.3/lib/active_record/connection_adapters/abstract/database_statements.rb:265 in transaction
/gems/activerecord-5.2.3/lib/active_record/transactions.rb:212 in transaction
/gems/activerecord-5.2.3/lib/active_record/transactions.rb:385 in with_transaction_returning_status
/gems/activerecord-5.2.3/lib/active_record/transactions.rb:310 in block in save
/gems/activerecord-5.2.3/lib/active_record/transactions.rb:325 in rollback_active_record_state!
/gems/activerecord-5.2.3/lib/active_record/transactions.rb:309 in save
/gems/activerecord-5.2.3/lib/active_record/suppressor.rb:44 in save
/gems/activerecord-5.2.3/lib/active_record/persistence.rb:428 in block in update
/gems/activerecord-5.2.3/lib/active_record/transactions.rb:387 in block in with_transaction_returning_status
/gems/activerecord-5.2.3/lib/active_record/connection_adapters/abstract/database_statements.rb:265 in transaction
/gems/activerecord-5.2.3/lib/active_record/transactions.rb:212 in transaction
/gems/activerecord-5.2.3/lib/active_record/transactions.rb:385 in with_transaction_returning_status
/gems/activerecord-5.2.3/lib/active_record/persistence.rb:426 in update
app/models/questionnaire/questionnaire_response.rb:290 in block in process_answers
288:    process_valid_blank_answer(answer)
289:  else
290:    answer.update(value: answer_attributes[:value])
291:    answers_errors[key] = answer.errors unless answer.valid?
292:  end
/gems/actionpack-5.2.3/lib/action_controller/metal/strong_parameters.rb:338 in block in each_pair
/gems/actionpack-5.2.3/lib/action_controller/metal/strong_parameters.rb:337 in each_pair
/gems/actionpack-5.2.3/lib/action_controller/metal/strong_parameters.rb:337 in each_pair
app/models/questionnaire/questionnaire_response.rb:283 in process_answers
app/models/questionnaire/questionnaire_response.rb:218 in assign_params
app/models/questionnaire/questionnaire_response.rb:155 in save_draft
app/interactors/questionnaire/update_questionnaire_response.rb:53 in save_draft
app/interactors/questionnaire/update_questionnaire_response.rb:19 in call
/gems/interactor-3.1.2/lib/interactor.rb:143 in block in run!
/gems/interactor-3.1.2/lib/interactor/hooks.rb:213 in block in with_hooks
/gems/interactor-3.1.2/lib/interactor/hooks.rb:224 in run_around_hooks
/gems/interactor-3.1.2/lib/interactor/hooks.rb:211 in with_hooks
/gems/interactor-3.1.2/lib/interactor.rb:142 in run!
/gems/interactor-3.1.2/lib/interactor.rb:115 in run
/gems/interactor-3.1.2/lib/interactor.rb:50 in tap
/gems/interactor-3.1.2/lib/interactor.rb:50 in call
app/controllers/public_questionnaire_responses_controller.rb:56 in update_questionnaire_response
app/controllers/public_questionnaire_responses_controller.rb:31 in block in update
/gems/activerecord-5.2.3/lib/active_record/connection_adapters/abstract/database_statements.rb:267 in block in transaction
/gems/activerecord-5.2.3/lib/active_record/connection_adapters/abstract/transaction.rb:239 in block in within_new_transaction
/usr/local/lib/ruby/2.6.0/monitor.rb:235 in mon_synchronize
/gems/activerecord-5.2.3/lib/active_record/connection_adapters/abstract/transaction.rb:236 in within_new_transaction
/gems/activerecord-5.2.3/lib/active_record/connection_adapters/abstract/database_statements.rb:267 in transaction
/gems/activerecord-5.2.3/lib/active_record/transactions.rb:212 in transaction
app/controllers/public_questionnaire_responses_controller.rb:27 in update
/gems/actionpack-5.2.3/lib/action_controller/metal/basic_implicit_render.rb:6 in send_action
/gems/actionpack-5.2.3/lib/abstract_controller/base.rb:194 in process_action
/gems/ddtrace-0.29.1/lib/ddtrace/contrib/action_pack/action_controller/instrumentation.rb:114 in process_action
/gems/actionpack-5.2.3/lib/action_controller/metal/rendering.rb:30 in process_action
/gems/actionpack-5.2.3/lib/abstract_controller/callbacks.rb:42 in block in process_action
/gems/activesupport-5.2.3/lib/active_support/callbacks.rb:109 in block in run_callbacks
app/controllers/public_questionnaire_responses_controller.rb:122 in block in set_response_locale
/gems/i18n-1.8.3/lib/i18n.rb:313 in with_locale
app/controllers/public_questionnaire_responses_controller.rb:122 in set_response_locale
/gems/activesupport-5.2.3/lib/active_support/callbacks.rb:118 in block in run_callbacks
/bundler/gems/grc_insight-4cd09d7a04d6/app/controllers/grc_insight/concerns/segment_io_monitoring.rb:46 in track_events
/gems/activesupport-5.2.3/lib/active_support/callbacks.rb:118 in block in run_callbacks
/gems/activesupport-5.2.3/lib/active_support/callbacks.rb:136 in run_callbacks
/gems/actionpack-5.2.3/lib/abstract_controller/callbacks.rb:41 in process_action
/gems/actionpack-5.2.3/lib/action_controller/metal/rescue.rb:22 in process_action
/gems/actionpack-5.2.3/lib/action_controller/metal/instrumentation.rb:34 in block in process_action
/gems/activesupport-5.2.3/lib/active_support/notifications.rb:168 in block in instrument
/gems/activesupport-5.2.3/lib/active_support/notifications/instrumenter.rb:23 in instrument
/gems/activesupport-5.2.3/lib/active_support/notifications.rb:168 in instrument
/gems/actionpack-5.2.3/lib/action_controller/metal/instrumentation.rb:32 in process_action
/gems/actionpack-5.2.3/lib/action_controller/metal/params_wrapper.rb:256 in process_action
/gems/activerecord-5.2.3/lib/active_record/railties/controller_runtime.rb:24 in process_action
/gems/actionpack-5.2.3/lib/abstract_controller/base.rb:134 in process
/gems/actionview-5.2.3/lib/action_view/rendering.rb:32 in process
/gems/actionpack-5.2.3/lib/action_controller/metal.rb:191 in dispatch
/gems/actionpack-5.2.3/lib/action_controller/metal.rb:252 in dispatch
/gems/actionpack-5.2.3/lib/action_dispatch/routing/route_set.rb:52 in dispatch
/gems/actionpack-5.2.3/lib/action_dispatch/routing/route_set.rb:34 in serve
/gems/actionpack-5.2.3/lib/action_dispatch/journey/router.rb:52 in block in serve
/gems/actionpack-5.2.3/lib/action_dispatch/journey/router.rb:35 in each
/gems/actionpack-5.2.3/lib/action_dispatch/journey/router.rb:35 in serve
/gems/actionpack-5.2.3/lib/action_dispatch/routing/route_set.rb:840 in call
/gems/flipper-0.16.2/lib/flipper/middleware/memoizer.rb:62 in memoized_call
/gems/flipper-0.16.2/lib/flipper/middleware/memoizer.rb:40 in call
/gems/flipper-0.16.2/lib/flipper/middleware/setup_env.rb:35 in call
/gems/warden-1.2.8/lib/warden/manager.rb:36 in block in call
/gems/warden-1.2.8/lib/warden/manager.rb:34 in catch
/gems/warden-1.2.8/lib/warden/manager.rb:34 in call
/gems/rack-2.2.2/lib/rack/tempfile_reaper.rb:15 in call
/gems/rack-2.2.2/lib/rack/etag.rb:27 in call
/gems/rack-2.2.2/lib/rack/conditional_get.rb:40 in call
/gems/rack-2.2.2/lib/rack/head.rb:12 in call
/gems/actionpack-5.2.3/lib/action_dispatch/http/content_security_policy.rb:18 in call
/gems/rack-2.2.2/lib/rack/session/abstract/id.rb:266 in context
/gems/rack-2.2.2/lib/rack/session/abstract/id.rb:260 in call
/gems/actionpack-5.2.3/lib/action_dispatch/middleware/cookies.rb:670 in call
/gems/actionpack-5.2.3/lib/action_dispatch/middleware/callbacks.rb:28 in block in call
/gems/activesupport-5.2.3/lib/active_support/callbacks.rb:98 in run_callbacks
/gems/actionpack-5.2.3/lib/action_dispatch/middleware/callbacks.rb:26 in call
/gems/airbrake-10.0.4/lib/airbrake/rack/middleware.rb:34 in call!
/gems/airbrake-10.0.4/lib/airbrake/rack/middleware.rb:23 in call
/gems/actionpack-5.2.3/lib/action_dispatch/middleware/debug_exceptions.rb:61 in call
/gems/ddtrace-0.29.1/lib/ddtrace/contrib/rails/middlewares.rb:17 in call
/gems/actionpack-5.2.3/lib/action_dispatch/middleware/show_exceptions.rb:33 in call
/gems/railties-5.2.3/lib/rails/rack/logger.rb:38 in call_app
/gems/railties-5.2.3/lib/rails/rack/logger.rb:26 in block in call
/gems/activesupport-5.2.3/lib/active_support/tagged_logging.rb:71 in block in tagged
/gems/activesupport-5.2.3/lib/active_support/tagged_logging.rb:28 in tagged
/gems/activesupport-5.2.3/lib/active_support/tagged_logging.rb:71 in tagged
/gems/railties-5.2.3/lib/rails/rack/logger.rb:26 in call
/gems/actionpack-5.2.3/lib/action_dispatch/middleware/remote_ip.rb:81 in call
/gems/request_store-1.5.0/lib/request_store/middleware.rb:19 in call
/gems/actionpack-5.2.3/lib/action_dispatch/middleware/request_id.rb:27 in call
/gems/rack-2.2.2/lib/rack/method_override.rb:24 in call
/gems/rack-2.2.2/lib/rack/runtime.rb:22 in call
/gems/activesupport-5.2.3/lib/active_support/cache/strategy/local_cache_middleware.rb:29 in call
/gems/actionpack-5.2.3/lib/action_dispatch/middleware/executor.rb:14 in call
/gems/actionpack-5.2.3/lib/action_dispatch/middleware/static.rb:127 in call
/gems/rack-2.2.2/lib/rack/sendfile.rb:110 in call
/gems/actionpack-5.2.3/lib/action_dispatch/middleware/ssl.rb:74 in call
/gems/ddtrace-0.29.1/lib/ddtrace/contrib/rack/middlewares.rb:85 in call
/gems/railties-5.2.3/lib/rails/engine.rb:524 in call
/gems/railties-5.2.3/lib/rails/railtie.rb:190 in public_send
/gems/railties-5.2.3/lib/rails/railtie.rb:190 in method_missing
/gems/unicorn-5.5.3/lib/unicorn/http_server.rb:605 in process_client
/gems/unicorn-5.5.3/lib/unicorn/http_server.rb:700 in worker_loop
/gems/unicorn-5.5.3/lib/unicorn/http_server.rb:548 in spawn_missing_workers
/gems/unicorn-5.5.3/lib/unicorn/http_server.rb:144 in start
/gems/unicorn-5.5.3/bin/unicorn:128 in <top (required)>
/bin/unicorn:23 in load
/bin/unicorn:23 in <top (required)>
/usr/local/lib/ruby/gems/2.6.0/gems/bundler-2.0.2/lib/bundler/cli/exec.rb:74 in load
/usr/local/lib/ruby/gems/2.6.0/gems/bundler-2.0.2/lib/bundler/cli/exec.rb:74 in kernel_load
/usr/local/lib/ruby/gems/2.6.0/gems/bundler-2.0.2/lib/bundler/cli/exec.rb:28 in run
/usr/local/lib/ruby/gems/2.6.0/gems/bundler-2.0.2/lib/bundler/cli.rb:465 in exec
/usr/local/lib/ruby/gems/2.6.0/gems/bundler-2.0.2/lib/bundler/vendor/thor/lib/thor/command.rb:27 in run
/usr/local/lib/ruby/gems/2.6.0/gems/bundler-2.0.2/lib/bundler/vendor/thor/lib/thor/invocation.rb:126 in invoke_command
/usr/local/lib/ruby/gems/2.6.0/gems/bundler-2.0.2/lib/bundler/vendor/thor/lib/thor.rb:387 in dispatch
/usr/local/lib/ruby/gems/2.6.0/gems/bundler-2.0.2/lib/bundler/cli.rb:27 in dispatch
/usr/local/lib/ruby/gems/2.6.0/gems/bundler-2.0.2/lib/bundler/vendor/thor/lib/thor/base.rb:466 in start
/usr/local/lib/ruby/gems/2.6.0/gems/bundler-2.0.2/lib/bundler/cli.rb:18 in start
/usr/local/lib/ruby/gems/2.6.0/gems/bundler-2.0.2/exe/bundle:30 in block in <top (required)>
/usr/local/lib/ruby/gems/2.6.0/gems/bundler-2.0.2/lib/bundler/friendly_errors.rb:124 in with_friendly_errors
/usr/local/lib/ruby/gems/2.6.0/gems/bundler-2.0.2/exe/bundle:22 in <top (required)>
/usr/local/bin/bundle:23 in load
/usr/local/bin/bundle:23 in <main>
有时错误率高达该端点请求的13%,但通常要低得多,有时根本不会发生:


另一个谜团是为什么它主要发生在我们的一个地区。我们部署到多个AWS区域,美国是我们最大的区域,但只生成现在说确定可能有点为时过早,但我们可能通过从
config/initializers/i18n.rb中删除以下两行来解决它

I18n::Backend::Simple.send(:include, I18n::Backend::Cache)
I18n.cache_store = ActiveSupport::Cache.lookup_store(:memory_store)
在部署此更改之前的两周内,错误已从每天最多1k个错误降至一位数或两位数

部署之后,我们已经两天没有看到一个了

我不确定删除缓存是否会对性能产生任何影响,但我注意到我们的其他rails应用程序没有这种功能。

这是缓存的一般错误 在缓存实现中,大多数情况下都会发生
未定义任何转储数据
未定义封送转储等错误
,很难知道错误发生的位置

为了修复这个gerenic错误,我建议调查所有新的
GEMs/features/edits
,因为在某些情况下,实现没有在“缓存数据”中获取常规数据


例如,在我的实际实现中,当尝试将
searchkick
view\u components\u reflections
(谁可以缓存所有数据)一起使用时,会出现此错误。我需要调整如何发送数据以查看组件,以使其能够正常工作。

能否发布完整的堆栈跟踪,您缺少所有重要信息。感谢这可能与缓存和翻译有关。但不知道是什么,希望完整的追踪能提供线索clue@jamesc谢谢你看!是的,缓存和翻译可能会涉及其中——我只是不知道
OpenSSL::Digest
是如何发挥作用的。可能是因为多部分请求负载中的文件?我们没有手动缓存任何内容。我认为这些翻译只适用于一些基本的状态验证,即完整堆栈跟踪之后的状态验证please@jamesc我用完整的堆栈跟踪更新了问题-这是我从Airbrake获得的所有信息。你认为有什么东西丢失了?6个月后,错误没有再次发生Hanks Jonatas,我想知道是不是一些宝石升级导致了我们的情况。但是,我们提供的解决方案(删除一些自定义缓存设置)为我们解决了这一问题:)
{
  "_method": "put",
  "aclui-uploader": {
    "content_type": "application/pdf",
    "headers": "Content-Disposition: form-data; name=\"aclui-uploader\"; filename=\"Jan 1.pdf\"\r\nContent-Type: application/pdf\r\n",
    "original_filename": "Jan 1.pdf",
    "tempfile": "#<File:0x000000000c3af9b0>"
  },
  "action": "update",
  "authenticity_token": "[Filtered]",
  "controller": "public_questionnaire_responses",
  "draft_button": "true",
  "id": "7sk8PPpb_KdV_h1jzXsP",
  "questionnaire_response": {
    "answers_attributes": {
      "581102": {
        "question_id": "581102"
      },
      "581111": {
        "question_id": "581111",
        "value": ""
      },
      "581124": {
        "files": [
          {
            "content_type": "application/pdf",
            "headers": "Content-Disposition: form-data; name=\"questionnaire_response[answers_attributes][581124][files][]\"; filename=\"Jan 1.pdf\"\r\nContent-Type: application/pdf\r\n",
            "original_filename": "Jan 1.pdf",
            "tempfile": "#<File:0x000000000c347ea0>"
          }
        ],
        "question_id": "581124"
      },
      "581128": {
        "question_id": "581128",
        "value": "ABC"
      },
      ...
    }
  }
}
I18n::Backend::Simple.send(:include, I18n::Backend::Cache)
I18n.cache_store = ActiveSupport::Cache.lookup_store(:memory_store)