Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

124
Views
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
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!