【问题标题】:mongod crashed without loggingmongod 在没有记录的情况下崩溃了
【发布时间】:2014-01-28 00:54:40
【问题描述】:

我在单服务器(Ubuntu 12.04)上使用 mongodb v2.2.2。

它在没有登录 /var/log/mongodb/mongodb.log 的情况下崩溃。 在记录的过程中似乎崩溃了。(字符被中断。而且,这个日志是正常的查询日志。)

而且,我在 syslog 上查看了有关内存问题的信息(例如,killed proccess), 但是没找到。

然后,我在 mongo-shell(db.printCollectionStats() command) 上发现了以下错误。

DLLConnectionResultData { "ns" : "UserData.DLLConnectionResultData", “计数”:8215398, “大小”:4831306500, “avgObjSize”:588.0794211065611, “errmsg”:“异常:断言 src/mongo/db/database.cpp:300”, “代码”:0, “好”:0 }

我如何找出问题?

谢谢,

【问题讨论】:

  • 似乎是内存错误。 mongod版本是32位还是64位?
  • 感谢 cmets。我使用的是 64 位版本的 mongod。
  • 你能检查一下你是否能在服务器日志中找到任何错误吗?如果你启用了日志,请禁用并尝试
  • 感谢 arunb2w。我不仅检查了 mongodb.log 和 syslog,还检查了 kern.log、dmesg。但是,在它们上找不到任何错误。不幸的是,当时我将日志级别设置为 1。 Journaling 是否与此问题或其他问题有关?(我随时都在使用日记功能。)

标签: mongodb ubuntu-12.04 pymongo


【解决方案1】:

我在 2.2.2 的源代码中检查了该行(请参阅 here 以供参考)。该错误与在 MongoDB 上强制执行 quotas 有关。您没有提到在此处强制执行配额或您将文件限制设置为(默认为 8),但您可能会在此处遇到限制。

首先,我建议使用更新的 2.2 版本(最终升级到 2.4,但最初肯定是 2.2.7+)。如果您使用配额,则进入 2.2.5 的this fix 将记录超出配额的消息(以前仅记录在日志级别 1,默认为日志级别 0)。因此,如果违反配额是这里的罪魁祸首,您可能会收到早期警告。

如果这是根本原因,那么您有两种选择:

  1. 升级到最新版本 2.2 后,该问题反复出现,请提交 2.2 崩溃的错误报告
  2. 升级到 2.4,验证问题是否仍然存在,并提交错误(或添加到 2.2 的上述报告中)

在任何一种情况下,在此期间关闭配额都是防止崩溃的明显方法。

【讨论】:

  • 感谢您的回答,Adam C。我没有使用配额限制。我现在正在检查配额/分配情况。
猜你喜欢
  • 1970-01-01
  • 2022-10-13
  • 2014-10-30
  • 1970-01-01
  • 2016-03-19
  • 2015-12-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多