Ruby on rails 类型错误:can';t转储匹配数据

Ruby on rails 类型错误:can';t转储匹配数据,ruby-on-rails,ruby,activesupport,Ruby On Rails,Ruby,Activesupport,我从另一个开发者那里继承了一个应用程序,并添加了一个错误通知服务,现在我收到了1408个错误,我很难弄清到底 错误很简单: TypeError:无法转储匹配数据 堆栈跟踪中只有非项目帧 我可以在activesupport gem message_verifier.rb文件中看到此错误最终发生的位置,但我假设应用程序或配置中存在导致此错误的错误,并且不确定如何将其追溯到我们端的原点。让我印象深刻的是,有人可能会看到并立即认出它。谢谢你的建议 这是堆栈跟踪: File "xxx/shared/bun

我从另一个开发者那里继承了一个应用程序,并添加了一个错误通知服务,现在我收到了1408个错误,我很难弄清到底

错误很简单:

TypeError:无法转储匹配数据

堆栈跟踪中只有非项目帧

我可以在activesupport gem message_verifier.rb文件中看到此错误最终发生的位置,但我假设应用程序或配置中存在导致此错误的错误,并且不确定如何将其追溯到我们端的原点。让我印象深刻的是,有人可能会看到并立即认出它。谢谢你的建议

这是堆栈跟踪:

File "xxx/shared/bundle/ruby/1.9.1/gems/activesupport-3.2.22.2/lib/active_support/message_verifier.rb" line 53 in dump
File "xxx/shared/bundle/ruby/1.9.1/gems/activesupport-3.2.22.2/lib/active_support/message_verifier.rb" line 53 in generate
File "xxx/shared/bundle/ruby/1.9.1/gems/actionpack-3.2.22.2/lib/action_dispatch/middleware/cookies.rb" line 300 in []=
File "xxx/shared/bundle/ruby/1.9.1/gems/actionpack-3.2.22.2/lib/action_dispatch/middleware/session/cookie_store.rb" line 64 in set_cookie
File "xxx/shared/bundle/ruby/1.9.1/gems/rack-1.4.7/lib/rack/session/abstract/id.rb" line 335 in commit_session
File "xxx/shared/bundle/ruby/1.9.1/gems/rack-1.4.7/lib/rack/session/abstract/id.rb" line 211 in context
File "xxx/shared/bundle/ruby/1.9.1/gems/rack-1.4.7/lib/rack/session/abstract/id.rb" line 205 in call
File "xxx/shared/bundle/ruby/1.9.1/gems/actionpack-3.2.22.2/lib/action_dispatch/middleware/cookies.rb" line 341 in call
File "xxx/shared/bundle/ruby/1.9.1/gems/activerecord-3.2.22.2/lib/active_record/query_cache.rb" line 64 in call
File "xxx/shared/bundle/ruby/1.9.1/gems/activerecord-3.2.22.2/lib/active_record/connection_adapters/abstract/connection_pool.rb" line 479 in call
File "xxx/shared/bundle/ruby/1.9.1/gems/actionpack-3.2.22.2/lib/action_dispatch/middleware/callbacks.rb" line 28 in block in call
File "xxx/shared/bundle/ruby/1.9.1/gems/activesupport-3.2.22.2/lib/active_support/callbacks.rb" line 405 in _run__656928281__call__438689938__callbacks
File "xxx/shared/bundle/ruby/1.9.1/gems/activesupport-3.2.22.2/lib/active_support/callbacks.rb" line 405 in __run_callback
File "xxx/shared/bundle/ruby/1.9.1/gems/activesupport-3.2.22.2/lib/active_support/callbacks.rb" line 385 in _run_call_callbacks
File "xxx/shared/bundle/ruby/1.9.1/gems/activesupport-3.2.22.2/lib/active_support/callbacks.rb" line 81 in run_callbacks
File "xxx/shared/bundle/ruby/1.9.1/gems/actionpack-3.2.22.2/lib/action_dispatch/middleware/callbacks.rb" line 27 in call
File "xxx/shared/bundle/ruby/1.9.1/gems/actionpack-3.2.22.2/lib/action_dispatch/middleware/remote_ip.rb" line 31 in 

有了这样的东西,我可能会尝试对
=~
.match
等进行全局搜索,要查看返回
MatchData
的任何内容在何处被调用,您是否能够重现错误,还是它似乎是随机发生的?@Jordan我无法重现–它发生在各种URL上,当我visit@flanger001我也试过了但没有得出任何结论,但我没有得到任何应用程序堆栈跟踪的事实让我怀疑我是否走错了方向。也许我会对此进行更深入的研究。问题似乎是一些代码试图在会话中存储MatchData对象(由各种RegExp方法返回,例如,
String#match
),这不起作用,因为ActiveSupport不知道如何序列化MatchData对象(为什么应该?)。然而,如果你不能重现这一点,就很难缩小原因。由于它显然与会话有关,要复制它,您可能需要在您自己的环境中复制有问题的会话数据,这可能需要添加一些额外的日志记录,然后等待错误再次发生。对于这样的内容,我可能只会尝试对
=~
.match
进行全局搜索,除其他外,要查看返回的
MatchData
在哪里被调用,您是否能够重现错误,或者它似乎是随机发生的?@Jordan我无法重现–它发生在不同的URL上,当我visit@flanger001我也试过了但没有得出任何结论,但我没有得到任何应用程序堆栈跟踪的事实让我怀疑我是否走错了方向。也许我会对此进行更深入的研究。问题似乎是一些代码试图在会话中存储MatchData对象(由各种RegExp方法返回,例如,
String#match
),这不起作用,因为ActiveSupport不知道如何序列化MatchData对象(为什么应该?)。然而,如果你不能重现这一点,就很难缩小原因。因为它显然与会话有关,所以要复制它,您可能需要在自己的环境中复制有问题的会话数据,这可能需要添加一些额外的日志记录,然后等待错误再次发生。