【问题标题】:MongoHQ "db assertion failure" on HerokuHeroku 上的 MongoHQ “数据库断言失败”
【发布时间】:2012-06-25 00:01:18
【问题描述】:

我正在尝试将我的 Node 应用程序以及所有模块从 0.4 升级到 0.6。我想我的一切都正确,但 MongoHQ 回来了:

db assertion failure

在每个 find/distinct 调用中(连接没有错误)

这是我的 package.json,我已将所有模块固定为一个特定版本,因为我最初在本地和 Heroku 之间存在一些差异。现在唯一的区别是我在本地运行 Node 0.6.19 而 Heroku 运行 0.6.18:

{ "name": "expensesspreadsheet"
, "version": "0.0.1"
, "engines":
  { "node" : "0.6.18"
  , "npm"  : "1.1.9"
  } 
, "main": "server.js"
, "dependencies":
  { "ejs":             "0.7.1"
  , "ejs-ext":         "0.1.1"
  , "express":         "2.5.10"
  , "railway":         "0.2.17-pre3"
  , "jugglingdb":      "0.1.10"
  , "yaml":            "0.2.3"
  , "coffee-script":   "1.3.3"
  , "mime":            "1.2.5"
  , "qs":              "0.5.0"
  , "mongoose":        "2.7.0"
  , "mongodb":         "1.0.2"
  , "connect-mongodb": "1.1.4"
  , "connect-auth":    "0.5.2"
  , "moment" :         "1.6.2"
  , "connect-heroku-redis" : "0.1.5"
  , "node-markdown" :  "0.1.0"
  , "recaptcha" :      "1.1.0"
  , "sendgrid":        "0.2.1"
  }
, "scripts":
  { "test": "nodeunit test/*/*"
  }
}

我正在使用 Mongoose 来定义模式。连接到 MongoHQ 工作正常(回调中没有错误)。如果您想查看该代码,请告诉我,但它非常标准,几乎直接来自 Mongoose 网站。

但是,如上所述,每当我尝试实际查找任何数据时,都会收到这个无法描述的错误。

我已经手动连接到数据库并执行了查询:工作正常。 我已将本地环境连接到我的 mongohq:​​工作正常。

所有这些仍然可以在节点 0.4 上使用 mongoose 2.3.13 和 mongodb 驱动程序 0.9.6-7

所以我的问题:

  • 有人知道如何调试这个“db assertion failure”错误吗?
  • 任何其他想法可能有什么问题?

【问题讨论】:

  • 同时,我使用新的 MongoHQ 实例创建了应用程序的新副本。那工作得很好。一旦我将新应用程序指向旧的 MongoHQ URL,我就会收到相同的“db assertion failure”消息。

标签: heroku mongoose mongohq


【解决方案1】:

在使用 MongoHQ 支持对此进行调查后,结果证明这是一个身份验证问题。

Heroku 提供的 MongoHQ URL 与 MongoHQ 上的密码不同步。

在旧版本的应用程序中,我使用的是手动构建的 URL,这解释了为什么该 URL 有效。

我们是怎么发现的?通过查看 MongoDB 日志,这些日志包含明显的身份验证错误。遗憾的是,返回的 JSON 仅包含通用的“db 断言失败”消息,没有其他详细信息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-05-27
    • 1970-01-01
    • 2020-07-04
    • 1970-01-01
    • 2011-05-27
    • 2013-06-27
    • 1970-01-01
    相关资源
    最近更新 更多