当前位置: 首页 > 面试题库 >

mongoError:topology已被破坏

陶征
2023-03-14
问题内容

我有一个用Restify和Mongoose在node.js中构建的REST服务,以及一个mongoDB,它的集合包含大约30.000个常规大小的文档。我的节点服务通过pmx和pm2运行。

昨天,节点突然开始通过消息“
MongoError:拓扑已被破坏”消除错误,仅此而已。我不知道这是什么意思,可能触发了什么。谷歌搜索时也没有太多发现。所以我想在这里问。

今天重新启动了节点服务后,错误停止了出现。我也有其中一个正在生产中运行,这使我感到害怕,这可能在任何给定时间发生在运行在那里的设置的相当关键的部分…

我正在使用以下版本的提及的软件包:

  • Mongoose:4.0.3
  • Readjustment:3.0.3
  • node:0.10.25

问题答案:

看来这意味着您的节点服务器与MongoDB实例的连接在尝试写入时已中断。

看一下产生该错误的Mongo源代码

Mongos.prototype.insert = function(ns, ops, options, callback) {
    if(typeof options == 'function') callback = options, options = {};
    if(this.s.state == DESTROYED) return callback(new MongoError(f('topology was destroyed')));
    // Topology is not connected, save the call in the provided store to be
    // Executed at some point when the handler deems it's reconnected
    if(!this.isConnected() && this.s.disconnectHandler != null) {
      callback = bindToCurrentDomain(callback);
      return this.s.disconnectHandler.add('insert', ns, ops, options, callback);
    }

    executeWriteOperation(this.s, 'insert', ns, ops, options, callback);
}

这似乎与注释中引用的Sails问题无关,因为未安装任何升级来加速崩溃或“修复”



 类似资料:
  • 正如你们可能知道的,Android支持嵌套片段,也通过API级别为17的支持库。基本上,我正在尝试将嵌套片段添加到ViewPager的片段中,并熟悉这个新的不错的特性。 在第一次应用程序发布时,一切都按预期进行,即我可以添加子片段、浏览这些片段、处理后堆栈等。。 但问题是,当我通过单击后退按钮离开应用程序并重新启动应用程序时,我大多数情况下都会出现以下异常,并不总是: 整个项目都可以在这里找到。

  • 1998年12月25日晚上(我的计算机时钟绝对准确),在进行完日常的一系列操作后,又准备对系统进行一下“挖潜”工作,我相信这是大多数PC 发烧友的共同爱好。主板的BIOS已经被升级过好几次了,而且目前我还没找到更新的BIOS升级数据文件,所以我把目光转向了主板附带光盘上的DMI(Desktop Management Interface,桌面管理接口)程序。DMI为用户提供了一个与系统硬件直接对话的

  • 问题内容: 当我尝试创建此错误时出现: 错误(E_UNKNOWN)::遇到意外错误MongoError:Server.insert(/ Users / oscargallon / Documents / developer / sails / reyesmagoswebpae / node_modules / sails- mongo / node_modules / mongodb / node

  • MD5能被破解吗?搞了这么多编程,这新闻叫我。。。

  • 问题内容: 因此,第一天使用angularjs进行工作,但我做不到。我正在尝试使用angular指令模仿html5占位符。直到我向该字段添加ng- model为止,它完全可以工作,然后它仅在用户与该字段进行交互并且破坏该字段具有的任何值之后才可以工作。 在这里编码 http://jsbin.com/esujax/32/edit 指令 HTML 似乎超级简单,但我迷路了 问题答案: 您的样本中仅有几

  • 我ogin.php 指数php 我做了一个登录脚本,打开,如果密码是正确的,我ndex.php网站。当第一次通过登录脚本打开ndex.php网站时,一切正常,会话设置完毕。但是在我刷新页面后,会话会被破坏,并且没有设置。那么我如何保存会话,这样它就不会因为刷新浏览器而被破坏呢?