donobu 5.6.1 → 5.6.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -2,6 +2,13 @@ import Database from 'better-sqlite3';
2
2
  /**
3
3
  * Returns the singleton SQLite database instance.
4
4
  * Creates the database on first call and initializes it with proper settings.
5
+ *
6
+ * When multiple processes (e.g. Playwright workers) start concurrently, they
7
+ * can all race into this function at the same time. SQLite's built-in busy
8
+ * timeout is insufficient here because `PRAGMA journal_mode = WAL` requires
9
+ * an exclusive file lock that is not retryable via the busy handler. We use
10
+ * a cross-process file lock (`proper-lockfile`) to serialize initialization
11
+ * so only one process creates/configures the database at a time.
5
12
  */
6
13
  export declare function getDonobuSqliteDatabase(): Promise<Database.Database>;
7
14
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"DonobuSqliteDb.d.ts","sourceRoot":"","sources":["../../../src/persistence/DonobuSqliteDb.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAgctC;;;GAGG;AACH,wBAAsB,uBAAuB,IAAI,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CA0B1E;AAED;;GAEG;AACH,wBAAgB,yBAAyB,IAAI,IAAI,CAKhD"}
1
+ {"version":3,"file":"DonobuSqliteDb.d.ts","sourceRoot":"","sources":["../../../src/persistence/DonobuSqliteDb.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAictC;;;;;;;;;;GAUG;AACH,wBAAsB,uBAAuB,IAAI,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CA6C1E;AAED;;GAEG;AACH,wBAAgB,yBAAyB,IAAI,IAAI,CAKhD"}
@@ -41,6 +41,7 @@ exports.closeDonobuSqliteDatabase = closeDonobuSqliteDatabase;
41
41
  const better_sqlite3_1 = __importDefault(require("better-sqlite3"));
42
42
  const fs = __importStar(require("fs/promises"));
43
43
  const path_1 = __importDefault(require("path"));
44
+ const LockFile = __importStar(require("proper-lockfile"));
44
45
  const Logger_1 = require("../utils/Logger");
45
46
  const MiscUtils_1 = require("../utils/MiscUtils");
46
47
  let instance = null;
@@ -418,6 +419,13 @@ function applyMigrations(db) {
418
419
  /**
419
420
  * Returns the singleton SQLite database instance.
420
421
  * Creates the database on first call and initializes it with proper settings.
422
+ *
423
+ * When multiple processes (e.g. Playwright workers) start concurrently, they
424
+ * can all race into this function at the same time. SQLite's built-in busy
425
+ * timeout is insufficient here because `PRAGMA journal_mode = WAL` requires
426
+ * an exclusive file lock that is not retryable via the busy handler. We use
427
+ * a cross-process file lock (`proper-lockfile`) to serialize initialization
428
+ * so only one process creates/configures the database at a time.
421
429
  */
422
430
  async function getDonobuSqliteDatabase() {
423
431
  if (instance) {
@@ -426,22 +434,38 @@ async function getDonobuSqliteDatabase() {
426
434
  const dbDirectory = MiscUtils_1.MiscUtils.baseWorkingDirectory();
427
435
  await fs.mkdir(dbDirectory, { recursive: true });
428
436
  const dbFilepath = path_1.default.join(dbDirectory, 'database.sqlite');
429
- // Initialize database.
430
- const donobuSqliteDb = new better_sqlite3_1.default(dbFilepath);
431
- // Set up database configuration.
432
- // busy_timeout must be set FIRST — when multiple processes (e.g. Playwright
433
- // workers) open the same database file concurrently, the subsequent pragma
434
- // calls can hit SQLITE_BUSY. With a timeout, SQLite will wait and retry
435
- // instead of immediately throwing "database is locked".
436
- donobuSqliteDb.pragma('busy_timeout = 5000');
437
- donobuSqliteDb.pragma('journal_mode = WAL');
438
- donobuSqliteDb.pragma('foreign_keys = ON');
439
- // Set up tables.
440
- initMigrationsTable(donobuSqliteDb);
441
- applyMigrations(donobuSqliteDb);
442
- // Update global database handle.
443
- instance = donobuSqliteDb;
444
- return instance;
437
+ const lockFilepath = path_1.default.join(dbDirectory, 'database.sqlite.init');
438
+ // Create the lock target file if it doesn't exist — proper-lockfile requires
439
+ // the file to exist before locking.
440
+ await fs.writeFile(lockFilepath, '', { flag: 'a' });
441
+ const release = await LockFile.lock(lockFilepath, {
442
+ retries: {
443
+ retries: 10,
444
+ minTimeout: 100,
445
+ maxTimeout: 2000,
446
+ },
447
+ });
448
+ try {
449
+ // Another process may have completed initialization while we waited for
450
+ // the lock, so re-check the singleton.
451
+ if (instance) {
452
+ return instance;
453
+ }
454
+ // Initialize database.
455
+ const donobuSqliteDb = new better_sqlite3_1.default(dbFilepath);
456
+ // Set up database configuration.
457
+ donobuSqliteDb.pragma('journal_mode = WAL');
458
+ donobuSqliteDb.pragma('foreign_keys = ON');
459
+ // Set up tables.
460
+ initMigrationsTable(donobuSqliteDb);
461
+ applyMigrations(donobuSqliteDb);
462
+ // Update global database handle.
463
+ instance = donobuSqliteDb;
464
+ return instance;
465
+ }
466
+ finally {
467
+ await release();
468
+ }
445
469
  }
446
470
  /**
447
471
  * Closes the database connection. Should be called during application shutdown.
@@ -1 +1 @@
1
- {"version":3,"file":"DonobuSqliteDb.js","sourceRoot":"","sources":["../../../src/persistence/DonobuSqliteDb.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DonobuSqliteDb.js","sourceRoot":"","sources":["../../../src/persistence/DonobuSqliteDb.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,13 @@ import Database from 'better-sqlite3';
2
2
  /**
3
3
  * Returns the singleton SQLite database instance.
4
4
  * Creates the database on first call and initializes it with proper settings.
5
+ *
6
+ * When multiple processes (e.g. Playwright workers) start concurrently, they
7
+ * can all race into this function at the same time. SQLite's built-in busy
8
+ * timeout is insufficient here because `PRAGMA journal_mode = WAL` requires
9
+ * an exclusive file lock that is not retryable via the busy handler. We use
10
+ * a cross-process file lock (`proper-lockfile`) to serialize initialization
11
+ * so only one process creates/configures the database at a time.
5
12
  */
6
13
  export declare function getDonobuSqliteDatabase(): Promise<Database.Database>;
7
14
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"DonobuSqliteDb.d.ts","sourceRoot":"","sources":["../../src/persistence/DonobuSqliteDb.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAgctC;;;GAGG;AACH,wBAAsB,uBAAuB,IAAI,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CA0B1E;AAED;;GAEG;AACH,wBAAgB,yBAAyB,IAAI,IAAI,CAKhD"}
1
+ {"version":3,"file":"DonobuSqliteDb.d.ts","sourceRoot":"","sources":["../../src/persistence/DonobuSqliteDb.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAictC;;;;;;;;;;GAUG;AACH,wBAAsB,uBAAuB,IAAI,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CA6C1E;AAED;;GAEG;AACH,wBAAgB,yBAAyB,IAAI,IAAI,CAKhD"}
@@ -41,6 +41,7 @@ exports.closeDonobuSqliteDatabase = closeDonobuSqliteDatabase;
41
41
  const better_sqlite3_1 = __importDefault(require("better-sqlite3"));
42
42
  const fs = __importStar(require("fs/promises"));
43
43
  const path_1 = __importDefault(require("path"));
44
+ const LockFile = __importStar(require("proper-lockfile"));
44
45
  const Logger_1 = require("../utils/Logger");
45
46
  const MiscUtils_1 = require("../utils/MiscUtils");
46
47
  let instance = null;
@@ -418,6 +419,13 @@ function applyMigrations(db) {
418
419
  /**
419
420
  * Returns the singleton SQLite database instance.
420
421
  * Creates the database on first call and initializes it with proper settings.
422
+ *
423
+ * When multiple processes (e.g. Playwright workers) start concurrently, they
424
+ * can all race into this function at the same time. SQLite's built-in busy
425
+ * timeout is insufficient here because `PRAGMA journal_mode = WAL` requires
426
+ * an exclusive file lock that is not retryable via the busy handler. We use
427
+ * a cross-process file lock (`proper-lockfile`) to serialize initialization
428
+ * so only one process creates/configures the database at a time.
421
429
  */
422
430
  async function getDonobuSqliteDatabase() {
423
431
  if (instance) {
@@ -426,22 +434,38 @@ async function getDonobuSqliteDatabase() {
426
434
  const dbDirectory = MiscUtils_1.MiscUtils.baseWorkingDirectory();
427
435
  await fs.mkdir(dbDirectory, { recursive: true });
428
436
  const dbFilepath = path_1.default.join(dbDirectory, 'database.sqlite');
429
- // Initialize database.
430
- const donobuSqliteDb = new better_sqlite3_1.default(dbFilepath);
431
- // Set up database configuration.
432
- // busy_timeout must be set FIRST — when multiple processes (e.g. Playwright
433
- // workers) open the same database file concurrently, the subsequent pragma
434
- // calls can hit SQLITE_BUSY. With a timeout, SQLite will wait and retry
435
- // instead of immediately throwing "database is locked".
436
- donobuSqliteDb.pragma('busy_timeout = 5000');
437
- donobuSqliteDb.pragma('journal_mode = WAL');
438
- donobuSqliteDb.pragma('foreign_keys = ON');
439
- // Set up tables.
440
- initMigrationsTable(donobuSqliteDb);
441
- applyMigrations(donobuSqliteDb);
442
- // Update global database handle.
443
- instance = donobuSqliteDb;
444
- return instance;
437
+ const lockFilepath = path_1.default.join(dbDirectory, 'database.sqlite.init');
438
+ // Create the lock target file if it doesn't exist — proper-lockfile requires
439
+ // the file to exist before locking.
440
+ await fs.writeFile(lockFilepath, '', { flag: 'a' });
441
+ const release = await LockFile.lock(lockFilepath, {
442
+ retries: {
443
+ retries: 10,
444
+ minTimeout: 100,
445
+ maxTimeout: 2000,
446
+ },
447
+ });
448
+ try {
449
+ // Another process may have completed initialization while we waited for
450
+ // the lock, so re-check the singleton.
451
+ if (instance) {
452
+ return instance;
453
+ }
454
+ // Initialize database.
455
+ const donobuSqliteDb = new better_sqlite3_1.default(dbFilepath);
456
+ // Set up database configuration.
457
+ donobuSqliteDb.pragma('journal_mode = WAL');
458
+ donobuSqliteDb.pragma('foreign_keys = ON');
459
+ // Set up tables.
460
+ initMigrationsTable(donobuSqliteDb);
461
+ applyMigrations(donobuSqliteDb);
462
+ // Update global database handle.
463
+ instance = donobuSqliteDb;
464
+ return instance;
465
+ }
466
+ finally {
467
+ await release();
468
+ }
445
469
  }
446
470
  /**
447
471
  * Closes the database connection. Should be called during application shutdown.
@@ -1 +1 @@
1
- {"version":3,"file":"DonobuSqliteDb.js","sourceRoot":"","sources":["../../src/persistence/DonobuSqliteDb.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DonobuSqliteDb.js","sourceRoot":"","sources":["../../src/persistence/DonobuSqliteDb.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "donobu",
3
- "version": "5.6.1",
3
+ "version": "5.6.2",
4
4
  "description": "Create browser automations with an LLM agent and replay them as Playwright scripts.",
5
5
  "main": "dist/main.js",
6
6
  "module": "dist/esm/main.js",