Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

117
Vistas
MongoDB de repente deja de responder debido a procesos en segundo plano

Nuestro mongo DB de repente deja de responder a cualquier solicitud y arroja mensajes de error como:

 MongoError: cannot perform operation: a background operation is currently running for collection demo2.users at MessageStream.messageHandler (....../node_modules/mongodb/lib/cmap/connection.js:268:20) at MessageStream.emit (events.js:315:20) at processIncomingData (...../node_modules/mongodb/lib/cmap/message_stream.js:144:12) at MessageStream._write (....../node_modules/mongodb/lib/cmap/message_stream.js:42:5) at writeOrBuffer (internal/streams/writable.js:358:12) at MessageStream.Writable.write (internal/streams/writable.js:303:10) at Socket.ondata (internal/streams/readable.js:719:22) at Socket.emit (events.js:315:20) at addChunk (internal/streams/readable.js:309:12) at readableAddChunk (internal/streams/readable.js:284:9) at Socket.Readable.push (internal/streams/readable.js:223:10) at TCP.onStreamRead (internal/stream_base_commons.js:188:23) { ok: 0, code: 12587, codeName: 'BackgroundOperationInProgressForNamespace' }

Este error sale de una conexión a mongo:

La operación emitida por mi aplicación es solo una conexión a la base de datos:

 MongoClient.connect(mongoUrl, { useNewUrlParser: true, useUnifiedTopology: true, ...confOptions, }) .then(async client => { return client; }) .catch(err => { // And here is where the error comes console.log(err); return null; })

Estamos usando el controlador MongoDB con node.js. MongoDB y node.js están en el mismo servidor (Ubuntu Linux 20.04.2)

Para reutilizar las conexiones de mongo, usamos la biblioteca npm generic-pool, y solo cuando iniciamos el servidor , configuramos al principio todos los índices y las colecciones con los comandos:

 const existingCollection = await mongo.db(databaseName).listCollections({ name }).next(); if (existingCollection) { await mongo.db(databaseName).command({ collMod: name, validator: { $jsonSchema: schema }, validationLevel: 'strict', validationAction: 'error', }); } else { await mongo.db(databaseName).createCollection(name, { validator: { $jsonSchema: schema }, validationLevel: 'strict', validationAction: 'error', }); }

y asegurando índices con

 await mongo.db(databaseName).collection(collectionName).createIndex({ clientNumber: 1, }, { unique: true });

Pero parece que mongo comienza repentinamente a realizar indexaciones, validaciones y otras operaciones en segundo plano que bloquean todo; esto sucede principalmente después de unos días de ejecutar el servidor.

La única forma en que Mongo comienza de nuevo a responder es reiniciándolo.

¿Alguien tiene alguna idea de cuál podría ser la causa de esto? ¿O hay alguna forma de detener las operaciones de fondo de bloqueo de mongo?

over 4 years ago · Santiago Trujillo
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda