Mongoose: топология была уничтожена MongoError

mongoose

815 просмотра

1 ответ

Мы на https://github.com/keystonejs/keystone на нашем тестовом сервере e2e в течение некоторого времени без проблем удаляли базы данных перед запуском e2e:

mongoose.connect(mongoUri,function(err){ if (!err) { mongoose.connection.db.dropDatabase(function (err) { mongoose.connection.close(function(err) { done(err); }) }); } else { done(err); } });

Но с недавнего времени (Mongoose 4.5.9) мы получаем следующие ошибки при запуске. Есть идеи? Нужно ли настраивать приведенную выше логику drop db для некоторых недавних обновлений?

10:00:20:493 e2e: dropping test database Mongoose model 'index-single-done' event fired on 'Boolean' for index: { key: 1 } With error: topology was destroyed MongoError: topology was destroyed at Server.insert (C:\Users\Carlos\git\prs\keystonejs\master\node_modules\keystone\node_modules\mongodb-core\lib\topologies\server.js:1312:49) at Server.insert (C:\Users\Carlos\git\prs\keystonejs\master\node_modules\keystone\node_modules\mongodb\lib\server.js:351:17) at C:\Users\Carlos\git\prs\keystonejs\master\node_modules\keystone\node_modules\mongodb\lib\db.js:1018:21 at handleCallback (C:\Users\Carlos\git\prs\keystonejs\master\node_modules\keystone\node_modules\mongodb\lib\utils.js:96:12) at C:\Users\Carlos\git\prs\keystonejs\master\node_modules\keystone\node_modules\mongodb\lib\db.js:1697:20 at handleCallback (C:\Users\Carlos\git\prs\keystonejs\master\node_modules\keystone\node_modules\mongodb\lib\utils.js:96:12) at C:\Users\Carlos\git\prs\keystonejs\master\node_modules\keystone\node_modules\mongodb\lib\db.js:306:20 at commandCallback (C:\Users\Carlos\git\prs\keystonejs\master\node_modules\keystone\node_modules\mongodb-core\lib\topologies\server.js:1182:20) at Callbacks.flush (C:\Users\Carlos\git\prs\keystonejs\master\node_modules\keystone\node_modules\mongodb-core\lib\topologies\server.js:88:7) at Server.destroy (C:\Users\Carlos\git\prs\keystonejs\master\node_modules\keystone\node_modules\mongodb-core\lib\topologies\server.js:1075:41) at Server.close (C:\Users\Carlos\git\prs\keystonejs\master\node_modules\keystone\node_modules\mongodb\lib\server.js:398:17) at Db.close (C:\Users\Carlos\git\prs\keystonejs\master\node_modules\keystone\node_modules\mongodb\lib\db.js:357:19) at NativeConnection.doClose (C:\Users\Carlos\git\prs\keystonejs\master\node_modules\keystone\node_modules\mongoose\lib\drivers\node-mongodb-native\connection.js:233:11) at NativeConnection.Connection._close (C:\Users\Carlos\git\prs\keystonejs\master\node_modules\keystone\node_modules\mongoose\lib\connection.js:570:12) at C:\Users\Carlos\git\prs\keystonejs\master\node_modules\keystone\node_modules\mongoose\lib\connection.js:541:11 at lib$es6$promise$$internal$$initializePromise (C:\Users\Carlos\git\prs\keystonejs\master\node_modules\keystone\node_modules\es6-promise\dist\es6-promise.js:409:9) Mongoose model 'index' event fired on 'Boolean' with error: topology was destroyed MongoError: topology was destroyed at Server.insert (C:\Users\Carlos\git\prs\keystonejs\master\node_modules\keystone\node_modules\mongodb-core\lib\topologies\server.js:1312:49) at Server.insert (C:\Users\Carlos\git\prs\keystonejs\master\node_modules\keystone\node_modules\mongodb\lib\server.js:351:17) at C:\Users\Carlos\git\prs\keystonejs\master\node_modules\keystone\node_modules\mongodb\lib\db.js:1018:21 at handleCallback (C:\Users\Carlos\git\prs\keystonejs\master\node_modules\keystone\node_modules\mongodb\lib\utils.js:96:12) at C:\Users\Carlos\git\prs\keystonejs\master\node_modules\keystone\node_modules\mongodb\lib\db.js:1697:20 at handleCallback (C:\Users\Carlos\git\prs\keystonejs\master\node_modules\keystone\node_modules\mongodb\lib\utils.js:96:12) at C:\Users\Carlos\git\prs\keystonejs\master\node_modules\keystone\node_modules\mongodb\lib\db.js:306:20 at commandCallback (C:\Users\Carlos\git\prs\keystonejs\master\node_modules\keystone\node_modules\mongodb-core\lib\topologies\server.js:1182:20) at Callbacks.flush (C:\Users\Carlos\git\prs\keystonejs\master\node_modules\keystone\node_modules\mongodb-core\lib\topologies\server.js:88:7) at Server.destroy (C:\Users\Carlos\git\prs\keystonejs\master\node_modules\keystone\node_modules\mongodb-core\lib\topologies\server.js:1075:41) at Server.close (C:\Users\Carlos\git\prs\keystonejs\master\node_modules\keystone\node_modules\mongodb\lib\server.js:398:17) at Db.close (C:\Users\Carlos\git\prs\keystonejs\master\node_modules\keystone\node_modules\mongodb\lib\db.js:357:19) at NativeConnection.doClose (C:\Users\Carlos\git\prs\keystonejs\master\node_modules\keystone\node_modules\mongoose\lib\drivers\node-mongodb-native\connection.js:233:11) at NativeConnection.Connection._close (C:\Users\Carlos\git\prs\keystonejs\master\node_modules\keystone\node_modules\mongoose\lib\connection.js:570:12) at C:\Users\Carlos\git\prs\keystonejs\master\node_modules\keystone\node_modules\mongoose\lib\connection.js:541:11 at lib$es6$promise$$internal$$initializePromise (C:\Users\Carlos\git\prs\keystonejs\master\node_modules\keystone\node_modules\es6-promise\dist\es6-promise.js:409:9) Mongoose model 'index-single-done' event fired on 'CloudinaryImage' for index: { key: 1 } With error: topology was destroyed MongoError: topology was destroyed at Server.insert (C:\Users\Carlos\git\prs\keystonejs\master\node_modules\keystone\node_modules\mongodb-core\lib\topologies\server.js:1312:49) ...

Автор: webteckie Источник Размещён: 08.11.2019 11:24

Ответы (1)


1 плюс

Решение

Это оказалось логической ошибкой! Винтовая логика инициализировала модели схемы mongoose, затем удаляла базу данных, затем закрывала базу данных, затем выполняла обычные операции с базой данных. По какой-то причине это работало долгое время без каких-либо ошибок. Что-то, вероятно, стало быстрее в производительности, пока не столкнулось с проблемами синхронизации, приводящими к ошибкам, описанным выше.

Автор: webteckie Размещён: 06.09.2016 12:19
Вопросы из категории :
32x32