【问题标题】:Arango restarts on a random basis when same traversal query is performed当执行相同的遍历查询时,Arango 会随机重启
【发布时间】: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


【解决方案1】:

经过大量研究,我尝试简单地升级到 arangod 3.1.11。问题似乎消失了。

【讨论】:

  • 很高兴它现在可以工作。在 3.1.10 中对遍历过滤条件进行了一些修复。您遇到的问题可能与这些问题有关。
猜你喜欢
  • 2011-07-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-22
  • 2021-09-12
  • 2012-04-07
  • 1970-01-01
  • 2019-03-04
相关资源
最近更新 更多