神秘的 Rails 错误几乎没有痕迹

2023-11-24

我们的一个爬虫遇到了一个奇怪的问题。有时它会抛出一个Rails FATAL某些请求出错,但跟踪非常有限,看起来像这样

[2014-07-01 18:16:37] FATAL Rails :
ArgumentError (invalid %-encoding (c ^   FK+ 9u$_    t  Kl
ΥE!   =k \  ̕* ߚ>c+<O   یo ʘ> C     R! 2 D  (5      x q#!` 4 p      |8 I   E
:+   H^9`^ #    Vo{   >

  =[z     )):
  lib/locale_middleware.rb:14:in `call'

爬虫用户代理是

Mozilla/5.0 (compatible; EasouSpider; +http://www.easou.com/search/spider.html)

我们可以通过以下方式要求它停止抓取我们robots.txt,但如果可能的话,最好处理根本原因,不要在这些请求上失败并返回 500。

我们也无法真正重现这种请求,因此任何有关如何生成类似请求的建议都会有很大帮助。

我们在 Ubuntu 12.04 上使用 Rails 3.2.19、Unicorn。这是我们的locale_middleware.rb


特别感谢本杰明·辛克莱尔指出github上的正确问题.

解决方案已描述对此评论:

  • 安装机架稳健性 gem
  • 将其添加到application.rb:
config.middleware.use ::Rack::Robustness do |g|
  g.no_catch_all
  g.on(ArgumentError) { |ex| 400 }
  g.content_type 'text/plain'
  g.body{ |ex| ex.message }
  g.ensure(true) { |ex| env['rack.errors'].write(ex.message) }
end
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

神秘的 Rails 错误几乎没有痕迹 的相关文章

  • Cucumber 是否不需要编写单元测试?

    我对 Ruby ROR 可用的测试框架数量之多感到有点困惑 我最近看了黄瓜轨道广播 http railscasts com episodes search cucumber并发现它们非常有趣 所以我开始玩游戏 然后努力从概念上考虑在哪里进行
  • 为什么byteArray的长度是22而不是20?

    我们尝试从字符串转换为Byte 使用以下 Java 代码 String source 0123456789 byte byteArray source getBytes UTF 16 我们得到一个长度为 22 字节的字节数组 我们不确定这个
  • Rails ActiveRecord:是否可以组合 :include 和 :conditions 查询?

    想象一下我有 wiki 文章 有很多修订 我想通过数据库使用 ActiveRecord 进行查询 该查询仅返回那些在过去 24 小时内更新过修订的文章 这样的事可能吗 我想它会是这样的 Articles find all include g
  • 动态分配背景图片scss/sass

    我想要做的是有一个表单 您可以在其中上传图片 然后当您查看该对象时 图片会在特定 div 中居中 垂直和水平向上倾斜 其大小未知等 除非有办法使用 image tag 帮助器将其垂直居中 否则我希望能够使用该图像作为背景图像 在我的 css
  • 使用 wget 从 Google Scholar 搜索结果下载所有 pdf 文件

    我想写一个简单的网络蜘蛛或者只是使用wget从谷歌学术下载 pdf 结果 这实际上是获取研究论文的一种非常巧妙的方式 我已阅读 stackoverflow 上的以下页面 使用wget爬取网站并限制爬取链接总数 https stackover
  • 在 Rails ActiveAdmin 视图中添加指向 Flash 通知的链接

    我正在尝试在活动管理控制器成功创建操作的闪存消息中添加链接 但是该链接的 HTML 被转义并在视图上显示为纯文本 Rails 5 2 1 ruby 2 5 3p105 2018 10 18 修订版 65156 x86 64 linux 例如
  • 在 Rails 5.1 及更高版本中,使用什么来代替“render :text”(和“render Nothing: true”)?

    轨道 5 1 其中就有老朋友render text 当你需要渲染的时候它非常有用some文本 但不想要视图模板的开销 例子 render text ok render text t business rules project access
  • 将 Twitter 引导样式添加到 Rails 表单助手

    在阅读建议我使用带有引导程序集成的 Simple form gem 的答案后 我安装了它并根据 simple form 说明创建了我的表单 但输入框向右浮动 这是布局 正在使用部分 shared reg 调用该表单 div class co
  • Rails validates_与模型的错误消息相关

    我在模型中使用 validates linked 来使用其他模型的验证代码 问题是验证失败的消息是 is invalid 我想将模型验证失败的实际描述错误冒泡到顶部 我发现这个问题 验证与模型的错误消息关联 https stackoverf
  • 为什么安装 Ruby 1.9.3 时会出现 404 错误?

    我最近擦除了我的计算机 操作系统 Mac OS X 10 6 8 并重新安装了所有开发工具 我再次安装了RVM 但是 它不允许我安装 Ruby 1 9 3 到目前为止我已经尝试过 rvm install 1 9 3 rvm install
  • Rails escape_javascript 通过转义单引号创建无效的 JSON

    ActionView中的escape javascript方法转义撇号 作为反斜杠撇号 解析为 JSON 时会出错 例如 消息 我在这里 在打印时是有效的 JSON message I m here But 输出 I m here 导致无效
  • UTF8/UTF16 和 Base64 在编码方面有什么区别

    In c 我们可以使用下面的类来进行编码 System Text Encoding UTF8 System Text Encoding UTF16 System Text Encoding ASCII 为什么没有System Text En
  • 在部分渲染时执行 JavaScript

    我有一些 JavaScript 代码 我想在用户单击其文件夹之一后执行 它会触发 show 操作和 show js erb 从而呈 现部分内容 Show js erb 当用户单击其文件夹之一时触发 如下所示 body append 它成功注
  • 如何在 Rails 3 项目中包含 SSL 证书

    我开发了一个 Rails 3 项目 它使用thin作为服务器 与 Devise 和 Doorkeeper 一起进行身份验证 我想在我的项目中添加 SSL 证书 我看过一些描述如何在 Rails 3 项目中使用 SSL 证书的帖子 但没有一个
  • 适用于移动应用程序的 Rails REST API。会议

    我正在创建一个移动应用程序 该应用程序拥有用户并与后端的自定义 Rails REST API 进行通信 我应该在登录时创建会话吗 或者我应该在每个请求中发送用户名和密码 如果会议是可行的方法 那么通常是如何实施的 只需生成令牌 并使用它们来
  • Rails - 格式日期字段

    如何设置 date field 的日期格式样式 我得到了以下表格 这是为日期字段呈现以下 HTML
  • Rails 引擎 - 简单的可能引擎(1)添加模型并(2)在包含类中添加关联

    我正在尝试编写我的第一个引擎 但在以下场景中遇到问题 在主机应用程序中 我将拥有具有名称的用户模型 这是保证的 因此在引擎中我可以引用用户类而不是某种程度的间接 在引擎中 我将有一个帖子模型 并且需要在帖子模型和包含应用程序中的用户模型之间
  • “gem install Rails”因 DNS 错误而失败

    rvm use Using home owner rvm gems ruby 2 1 2 gem install rails ERROR While executing gem Gem RemoteFetcher FetchError Er
  • CanCan load_and_authorize_resource 触发禁止属性

    我有一个使用强参数的标准 RESTful 控制器 class UsersController lt ApplicationController respond to html js def index users User all end
  • Unicorn + Rails + 大型上传

    我试图在使用 Rails 在 Heroku 上运行 Unicorn 时允许进行大型上传 但我意识到任何大型上传可能需要比 Unicorn 工作线程的超时时间更长的时间 这意味着 我见过这种情况发生 Unicorn 主进程将杀死上传大文件的工

随机推荐

  • 为什么 6 个内置常量中有 2 个是可赋值的?

    在有关的文档中内置常量 不包括site常量 指出 注 姓名None False True and debug 无法重新分配 对它们的分配 即使作为属性名称 也会引发SyntaxError 因此它们可以被视为 真 常数 如果我没错的话 Tru
  • 免费源代码控制

    到目前为止 尽管我做了很多小型家庭项目 但我从未在自己的项目中使用过任何源代码管理 我现在即将部署我的第一个个人公共网站 并认为这是建立一些东西的好时机 我正在寻找的主要内容之一是版本控制 标签等 与 Visual Studio 2010
  • 如何制作一个接受尾随垃圾的 DateTimeFormatter?

    我正在改装一些旧的SimpleDateFormat使用新 Java 8 的代码DateTimeFormatter SimpleDateFormat 因此旧代码接受日期后面包含内容的字符串 例如 20130311nonsense 这DateT
  • 当目录名中有空格时如何使用copyfile?

    我正在尝试在 Windows 下执行简单的文件复制任务 但遇到一些问题 我的第一次尝试是使用 import shutils source C Documents and Settings Some directory My file txt
  • 在 Angular 中处理 forEach Ajax 调用的正确方法

    我需要使用 for 循环更新数组中每个对象的数据 一旦捕获所有数据 就运行一个函数 我不想在其中混合 jQuery 并以正确的 Angular 方式进行 这就是我正在做的事情 scope units u1 u2 u3 scope data
  • 使用 Elastic BeanStalk + Django 设置 ElastiCache Redis

    另一个堆栈溢出answer说您需要设置一个elasticache config文件来自动使用ElastiCache创建Redis服务器 但是 我可以在 AWS Elasticache 上创建一个 Redis 实例并将其端点添加到 Djang
  • 在 C++ 中插入和删除整数中的逗号

    这里非常菜鸟 所以最好假设我对任何答案一无所知 我一直在编写一个小应用程序 它运行良好 但可读性对我的数字来说是一场噩梦 本质上 我想做的就是在屏幕上显示的数字中添加逗号以使其更易于阅读 有没有一种快速且简单的方法可以做到这一点 我一直在使
  • 如何删除 Eclipse Mars Jboss Tools 工具栏项目

    我已经安装了 Eclipse Mars 并且还从 eclipse 市场安装了 Jboss Tools 我的问题是 安装 JBoss 工具后 我的菜单栏中似乎有一组服务器控件 这些控件是按照早期学习中心风格创建的 我已经尝试过 窗口 gt 透
  • Rijndael 256 加密:Java 和 .NET 不匹配

    我需要将 Rijandael 加密的 powershell 脚本转换为 Java 这是源powershell代码 Reflection Assembly LoadWithPartialName System Security Add Typ
  • 您遵循个人软件流程吗?您的组织/团队是否遵循团队软件流程? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心以获得指导 了解更多信息 维基百科上的
  • 延迟回调直到脚本添加到文档中?

    如何让回调在脚本实际附加到文档之前不运行 function addScript filepath callback if filepath var fileref document createElement script fileref
  • Strapi - 限制用户仅获取与他相关的数据

    通常 登录用户会获取内容类型的所有条目 我创建了一个 片段 内容类型 id name content users lt lt gt gt snippets lt lt gt gt 表示 具有并属于许多 关系 我创建了一些测试用户并提出请求
  • 在 pyspark 列表中对不同数据帧列求和的正确方法是什么?

    我想对 Spark 数据框中的不同列求和 Code from pyspark sql import functions as F cols A p1 B p1 df spark createDataFrame 1 2 4 89 12 60
  • 如何使用 jQuery 动画更改背景图像?

    我想使用慢速动画更改背景图像 但它不起作用 body stop animate background url 1 jpg slow 语法有问题吗 您可以通过将图像不透明度淡化为 0 然后更改背景图像 最后再次淡化图像来获得类似的效果 这将需
  • 在 R 中强制字符向量编码从“未知”到“UTF-8”

    我有一个问题字符向量编码不一致 in R 我从中读取表格的文本文件已编码 通过Notepad in UTF 8 我尝试过UTF 8 without BOM 也 我想从这个文本文件中读取表格 然后将其转换data table set a ke
  • 如何在 C++ 中高效应用多项式而无需循环? [关闭]

    Closed 这个问题需要多问focused 目前不接受答案 我想获得一些复杂函数的准确近似值 pow exp log log2 比 C 标准库中 cmath 提供的更快 为此 我想利用浮点编码方式并使用位操作获取指数和尾数 然后进行多项式
  • 将包含多个数字的字符串转换为整数

    我意识到这个问题过去可能已经被问过好几次了 但无论如何我都会继续 我有一个程序将从键盘输入中获取一串数字 数字将始终采用 66 33 9 的形式 本质上 每个数字都用空格分隔 并且用户输入将始终包含不同数量的数字 我知道如果每个用户输入的字
  • 在 Firefox 中将焦点设置为 iframe 主体/内容?

    我有一个 iram 它具有隐藏的可见性 我单击按钮 iframe 将可见 我想关注其正文 内容 因为现在我必须单击按钮 然后进入 iframe 所以只需单击两次 我想一键完成 但不知道如何在 Firefox 中聚焦 在资源管理器中就可以了
  • iOS7新更新V 7.1(11D167)不兼容Xcode 5进行开发

    我收到IOS7新版本V7 1的通知 我已经安装在我的 iPhone 4S 上 由于我是开发人员 所以在 Xcode 5 SDK 的开发模式下未检测到我的 iPhone 4S 当我在 Xcode 中打开管理器时 表明 此 iOS SDK 安装
  • 神秘的 Rails 错误几乎没有痕迹

    我们的一个爬虫遇到了一个奇怪的问题 有时它会抛出一个Rails FATAL某些请求出错 但跟踪非常有限 看起来像这样 2014 07 01 18 16 37 FATAL Rails ArgumentError invalid encodin