- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
Rails 4 - Ruby 2.2.2 - 亚马逊 AWS S3 - 蜻蜓 1.0.12 - dragonfly-s3_data_store 1.2 - fog-aws 0.10.0
大约 99% 的时间我们没有问题。这个问题通常只发生在使用率很高的时候,但我注意到它也发生在几乎没有用户的时候。抛出错误的行:
# excon/lib/excon/socket.rb
# line 100 inside the connection method.
addrinfo = ::Socket.getaddrinfo(*args)
该错误在应用程序中无处不在。
有时在没有远程连接时会出现错误。
- 我无法再验证这一点。
我使用 Rails 记录器来捕获传入的参数,通过和失败之间似乎没有区别。以下是一些示例:
# PASS
["s3.amazonaws.com", 443, 0, 1, nil, nil, false]
["mybucket.s3.amazonaws.com", 443, 0, 1, nil, nil, false]
# FAIL
["mybucket.s3-us-west-1.amazonaws.com", 443, 0, 1, nil, nil, false]
我遇到了几个让我相信 excon gem 需要更新的论坛。我将 Excon gem 从 0.45.4 升级到 0.51.0。除此之外,我还将 Fog gem 从 1.36.0 更新到 1.38.0。
升级后,错误从“getaddrinfo: Name or service not known (SocketError)”变为“Excon::Error::Socket: getaddrinfo: No address associated with hostname (SocketError)”
为失败响应捕获的 url 与通过的 url 之一不同。我会进一步研究这个问题。
更新:
dragonfly 初始化程序指定了与失败的路径相同的路径,因为 url_host 覆盖了默认功能,我决定将其删除。
# myapp/config/initializers/dragonfly.rb
...
url_host: 'mybucket.s3-us-west-1.amazonaws.com'
这导致没有变化。仍然使用相同的 url,并且是唯一失败的 url。
最佳答案
我也有这个错误。就我而言,罪魁祸首要么是服务器负载(缓慢的文件上传),要么是文件名中的特殊字符。由于您在低使用率期间也会看到这一点,因此您可能需要查看人们上传的文件名。对我来说,错误通常发生在有人上传文件名称中包含德语变音符 (ä,ö,ü,ß) 的文件时。
因此,请尝试上传一个名称中包含特殊字符的文件,并告诉我们这是否忠实地重现了错误。
如果是这种情况,则只需转义特殊字符或以不同方式命名文件。以下是特殊字符问题的描述:https://github.com/markevans/dragonfly-s3_data_store/issues/6 .
关于ruby-on-rails - 为什么我会出现间歇性的 Excon::Error::Socket: getaddrinfo: No address associated with hostname (SocketError)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38728107/
我目前正在升级我们的软件以支持 ipv6,同时我正在将主机名/ip 字段扩展到最大主机名大小。在 sun 文档中,它似乎可以达到 1025(netdb.h:#define NI_MAXHOST 102
我正在使用 docker-compose 为开发人员提供技术栈 ROR、postgres、redis、mongo 的开发环境。 docker-compose build 运行成功,但是当我运行 doc
nc -zv cms-01 5061 失败: nc: getaddrinfo: 没有与主机名关联的地址 但是 ping/dig 工作正常。用getent可以看到最不一样的地方: # getent ho
我正在测试一条错误路径,该路径要求我删除来自 getaddrinfo 的请求。我设置了 2 个虚拟机: RHEL 7.9 Ubuntu 20 代码在两台机器上是相同的,只是为 test.com 调用
当我调用 getaddrinfo与 AF_UNSPEC ,理论上它可以返回任何它喜欢的地址族:AF_INET , AF_INET6 ,也许是 AppleTalk、蓝牙、datalink、netlink
我花了几个小时试图找出我的问题,只是在我写问题的时候找到了解决方案(当你需要正式化你的问题并解释它时,它总是有帮助的)。我发布它,希望它可以帮助某人。 使用 getaddrinfo,如果我尝试将套接字
我尝试通过给 getaddrinfo 赋予 http(s) 前缀来使用它,但它无法正确查找主机。我该如何解决这个问题。我要查 https://www.google.com但 gai_strerror(
我想在我的 header 中定义一个端口号(例如 #define port 9191 )并使用它来调用 getaddrinfo() 。但我收到错误,因为参数服务是 char const* 。如何使用#
我对 getaddrinfo() 的行为有疑问,这似乎取决于服务参数的指定方式。将服务指定为名称会导致 getaddrinfo() 使用 getservbyname() 来查询/etc/service
我有一个程序(用 C 语言编写),它使用 getaddrinfo() ,它的第一个参数是我希望它获取地址信息的主机名,假设它是“域”。在同一台计算机上的 /etc/hosts 文件中,我可以看到“do
int print_socket_info(int sock_fd, struct sockaddr_in *sin, short protocol){ char dbg[INET_ADDRS
这个问题已经存在: Login and Registration in Android with PHP, MySQL and SQLite 已关闭 7 年前。 我正在尝试连接到我的 mysql wa
我想连接sql数据库。我究竟做错了什么?请帮忙 常量.php 连接.php 最佳答案 首先,您的 constants.php 文件似乎在开始的 PHP 标记中有错字。您应该按如下方式更新文件:
我目前正在尝试编写自己的 HTTP 代理。我的代码可以正常工作,但我尝试使用 ApacheBench 对其进行压力测试,发现时不时地收到如下消息: “getaddrinfo:提供了节点名或服务名,或者
我正在使用 getaddrinfo() API 来解析跨平台 C++ 应用程序中的 DNS 查询。我需要知道 getaddrinfo() 在不同平台上的时间成本?谁能帮我解决这个问题? 最佳答案 这个
我有一个使用套接字的程序。在客户端,我通过 getaddrinfo 获取必要的信息,然后将结果传递给连接函数。事情是,它在不同的环境中工作不同。在获取 addrinfo 结构并将其传递给 connec
我有一个网络地址,例如 - 192.168.74.0/24。尝试使用 getaddrinfo 获取网络地址转换似乎不起作用。这里的名称是 192.168.74.0/24。 getaddrindo 的返
所以我花了一段时间才弄明白,因为“段错误”没有显示任何代码行,但显然这会导致我的程序出现段错误: if (getaddrinfo(options.servername, (char *)options
我遇到了一个奇怪的问题。我有这个 Python 应用程序,当我尝试在应用程序中打开 url 时,例如 urllib2.urlopen("http://google.com", None) 我收到以下错
我在 LAN 中用于某些套接字通信应用程序的目标机器具有用于 IPv4 的 192.168.98.91。 当我尝试使用 getaddrinfo() 解析 IP 地址时,它返回 127.0.0.1 如何
我是一名优秀的程序员,十分优秀!