【发布时间】:2017-07-11 14:32:59
【问题描述】:
我正在运行从节点服务器到安装了 Arango 的 Ubuntu AWS 实例的一系列并发请求。 Arangod 是 3.1.7 版
前几周一切正常,但现在:
在执行我的查询时,我从节点随机收到一个 {Error: socket hang up},始终是同一个,并且当我在所有其他查询上收到 {Error: connect ECONNREFUSED} 时,arango 似乎重新启动一会儿。 尽管我的数据在两次查询之间没有变化,但它会发生 6 次中的 1 次。
Web 界面日志很少,似乎无法解释问题所在。 Arangod 似乎创建了一个日志文件,但很难解释。 所有服务器指标都很好。
您对我如何在这个问题上取得进展有什么想法吗?我的数据是否损坏?我怎样才能知道?
这是我的日志文件的内容:
2017-02-22T16:24:57Z [11449] INFO ArangoDB 3.1.7 [linux] 64bit, using VPack 0.1.30, ICU 54.1, V8 5.0.71.39, OpenSSL 1.0.1f 6 Jan 2014
2017-02-22T16:24:57Z [11449] INFO using SSL options: SSL_OP_CIPHER_SERVER_PREFERENCE, SSL_OP_TLS_ROLLBACK_BUG
2017-02-22T16:24:57Z [11449] INFO Authentication is turned on
2017-02-22T16:24:57Z [11449] INFO Authentication system only
2017-02-22T16:24:57Z [11449] INFO Authentication for unix sockets is turned on
2017-02-22T16:24:57Z [11449] INFO file-descriptors (nofiles) hard limit is 131072, soft limit is 131072
2017-02-22T16:24:57Z [11449] INFO running WAL recovery (1 logfiles)
2017-02-22T16:24:57Z [11449] INFO replaying WAL logfile '/vol/data/standalone/journals/logfile-44002553.db' (1 of 1)
2017-02-22T16:24:57Z [11449] INFO WAL recovery finished successfully
2017-02-22T16:24:57Z [11449] INFO JavaScript using startup '/usr/share/arangodb3/js', application '/var/lib/arangodb3-apps'
2017-02-22T16:24:57Z [11449] INFO In database '_system': Database is up-to-date (30107/standalone/existing)
2017-02-22T16:24:57Z [11449] INFO In database 'X-DB': Database is up-to-date (30107/standalone/existing)
2017-02-22T16:24:57Z [11449] INFO using endpoint 'http+tcp://0.0.0.0:8529' for non-encrypted requests
2017-02-22T16:24:58Z [11449] INFO Please note that a new bugfix version '3.1.11' is available
2017-02-22T16:24:58Z [11449] INFO ArangoDB (version 3.1.7 [linux]) is ready for business. Have fun!
还有:
2017-02-22T16:24:57Z [1311] ERROR {startup} child 11302 died a horrible death, signal 11
2017-02-22T16:27:57Z [1311] ERROR {startup} child 11449 died a horrible death, signal 11
我认为导致问题的查询是:
RETURN (
FOR i, j, k IN 0..3 INBOUND "Hint/26427214" GRAPH "X-graph"
FILTER k.vertices[1]._id LIKE "Drop/%"
AND k.vertices[2]._id LIKE "Hint/%"
AND k.vertices[3]._id LIKE "Drop/%"
FILTER k.vertices[1].hostname != k.vertices[3].hostname
FILTER k.vertices[2].type == "article"
SORT k.vertices[2].createdAt DESC
LIMIT 0, 1
RETURN UNION (
FOR v, e, p IN 0..2 INBOUND k.vertices[2]._id GRAPH "X-graph"
FILTER p.vertices[1]._id LIKE "Source/%"
AND p.vertices[2]._id LIKE "Twittos/%"
RETURN { key: p.vertices[0]._key, retweets: p.vertices[0].retweets, title: p.vertices[0].title, type: p.vertices[0].type, content: p.vertices[0].content, image: p.vertices[0].image, source: { key: p.vertices[1]._key, name: p.vertices[1].name, screenname: p.vertices[2].screenname, image: p.vertices[2].image }},
FOR v, e, p IN 0..1 INBOUND k.vertices[2]._id GRAPH "X-graph"
FILTER p.vertices[1]._id LIKE "Source/%"
RETURN { key: p.vertices[0]._key, retweets: p.vertices[0].retweets, title: p.vertices[0].title, type: p.vertices[0].type, content: p.vertices[0].content, image: p.vertices[0].image, source: { key: p.vertices[1]._key, name: p.vertices[1].name }},
FOR v, e, p IN 0 INBOUND k.vertices[2]._id GRAPH "X-graph" RETURN { key: p.vertices[0]._key, retweets: p.vertices[0].retweets, title: p.vertices[0].title, type: p.vertices[0].type, image: p.vertices[0].image, content: p.vertices[0].content })[0] )[*]
【问题讨论】:
-
如果 ArangoDB 自动重启,它看起来就像崩溃了。 ArangoDB 有一个监督进程,它会自动重启 arangod。该主管进程在检测到数据库已崩溃时将写入一条日志消息。
/var/log/arangodb3中应该有两个日志文件(路径可能因平台而异),其中一个应该有关于是否发生崩溃的指示。 -
如果崩溃,最好知道正在使用哪个版本的 ArangoDB 以及是否存在导致 ArangoDB 失败的特定查询。如果您可以找到特定的查询并将其发布在此处,这可能有助于重现和解决问题。如果您找不到它是哪个查询,它可能有助于在服务器上启用核心转储,以便操作系统在崩溃时写入 arangod 进程的图像。这样的 corefile 也应该能帮助我们找到错误。谢谢!
-
另一个修复尝试是将安装的 ArangoDB 包升级到最新版本并检查错误是否已修复。从这里很难判断这是否会对您的情况有所帮助,因为该问题不包含有关正在使用的 ArangoDB 版本的任何信息。
-
@stj 我添加了我的 arango 版本 (3.1.7)、我的日志文件和导致问题的查询。如何启用核心转储并获取核心文件?
-
3.6.1.1 版本存在此问题。调用遍历查询后,arangoDB 崩溃并重启。
标签: arangodb