diff --git a/changelog.md b/changelog.md index 7f2c964..a908e2f 100644 --- a/changelog.md +++ b/changelog.md @@ -1,5 +1,12 @@ # Changelog +## 2026-02-26 - 7.0.16 - fix(mongodb) +set default socketTimeoutMS to 30000ms in MongoClient options to prevent hung operations from holding connections + +- Adds socketTimeoutMS: 30000 to MongoClient clientOptions in ts/classes.db.ts +- Helps prevent hung operations from indefinitely holding connections by enforcing a 30s socket timeout +- Non-breaking change (defaults only) + ## 2025-12-01 - 7.0.15 - fix(classes.doc) Avoid emitting instance fields for collection and manager to preserve decorator-defined prototype getters diff --git a/ts/00_commitinfo_data.ts b/ts/00_commitinfo_data.ts index c5065d2..4433637 100644 --- a/ts/00_commitinfo_data.ts +++ b/ts/00_commitinfo_data.ts @@ -3,6 +3,6 @@ */ export const commitinfo = { name: '@push.rocks/smartdata', - version: '7.0.15', + version: '7.0.16', description: 'An advanced library for NoSQL data organization and manipulation using TypeScript with support for MongoDB, data validation, collections, and custom data types.' } diff --git a/ts/classes.db.ts b/ts/classes.db.ts index 0bd82f1..cc4299e 100644 --- a/ts/classes.db.ts +++ b/ts/classes.db.ts @@ -58,6 +58,7 @@ export class SmartdataDb { maxPoolSize: (this.smartdataOptions as any).maxPoolSize ?? 100, maxIdleTimeMS: (this.smartdataOptions as any).maxIdleTimeMS ?? 300000, // 5 minutes default serverSelectionTimeoutMS: (this.smartdataOptions as any).serverSelectionTimeoutMS ?? 30000, + socketTimeoutMS: (this.smartdataOptions as any).socketTimeoutMS ?? 30000, // 30 seconds default — prevents hung operations from holding connections retryWrites: true, };