From 1ce2020ba7358129a8798c972bff41bc84033bae Mon Sep 17 00:00:00 2001 From: Anna Henningsen Date: Sat, 18 Oct 2025 18:39:41 +0200 Subject: [PATCH] fix(mongodb-runner): forward all server log entries to debug In particular, enabling `mongodb-runner:verbose` debug logs lets you read all server logs. This should help debug the server setup errors we've been seeing in mongosh CI. --- packages/mongodb-runner/src/mongoserver.ts | 8 ++++---- packages/mongodb-runner/src/util.ts | 1 + 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/packages/mongodb-runner/src/mongoserver.ts b/packages/mongodb-runner/src/mongoserver.ts index 234a8513..c7c8c21f 100644 --- a/packages/mongodb-runner/src/mongoserver.ts +++ b/packages/mongodb-runner/src/mongoserver.ts @@ -13,7 +13,7 @@ import type { Document, MongoClientOptions } from 'mongodb'; import { MongoClient } from 'mongodb'; import path from 'path'; import { once } from 'events'; -import { uuid, debug, pick } from './util'; +import { uuid, debug, pick, debugVerbose } from './util'; export interface MongoServerOptions { binDir?: string; @@ -197,10 +197,10 @@ export class MongoServer { await once(outStream, 'open'); stdout.pipe(outStream, { end: false }); stderr.pipe(outStream, { end: false }); - Promise.all([once(stdout, 'end'), once(stderr, 'end')]).then( + Promise.allSettled([once(stdout, 'end'), once(stderr, 'end')]).then( () => outStream.end(), () => { - /* ignore error */ + /* cannot throw */ }, ); } else { @@ -211,13 +211,13 @@ export class MongoServer { const errorLogEntries: LogEntry[] = []; try { - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion const logEntryStream = Readable.from(createLogEntryIterator(stdout)); logEntryStream.on('data', (entry) => { if (!srv.closing && ['E', 'F'].includes(entry.severity)) { errorLogEntries.push(entry); debug('mongodb server output', entry); } + debugVerbose('mongodb server log entry', entry); }); filterLogStreamForBuildInfo(logEntryStream).then( (buildInfo) => { diff --git a/packages/mongodb-runner/src/util.ts b/packages/mongodb-runner/src/util.ts index bda4d3de..57507397 100644 --- a/packages/mongodb-runner/src/util.ts +++ b/packages/mongodb-runner/src/util.ts @@ -2,6 +2,7 @@ import { BSON } from 'mongodb'; import createDebug from 'debug'; export const debug = createDebug('mongodb-runner'); +export const debugVerbose = debug.extend('verbose'); export const uuid = () => new BSON.UUID().toHexString(true); export const sleep = (ms: number): Promise => new Promise((r) => setTimeout(r, ms));