[object Object]

← back to All Designerwallcoverings

crawl-microsites: coherent pm2-lock constants (deadline 10s > STALE 8s) — Kimi review fix (TK-10970)

43684c2f05c9dffd5caffb1daef561683924fa74 · 2026-08-30 14:37:34 -0700 · Steve Abrams

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

Files touched

Diff

commit 43684c2f05c9dffd5caffb1daef561683924fa74
Author: Steve Abrams <steve@designerwallcoverings.com>
Date:   Sun Aug 30 14:37:34 2026 -0700

    crawl-microsites: coherent pm2-lock constants (deadline 10s > STALE 8s) — Kimi review fix (TK-10970)
    
    Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
---
 scripts/crawl-microsites.js | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/scripts/crawl-microsites.js b/scripts/crawl-microsites.js
index 21461d5..c228953 100644
--- a/scripts/crawl-microsites.js
+++ b/scripts/crawl-microsites.js
@@ -85,10 +85,12 @@ function seedFromPm2() {
     const PM2_LOCK = nodepath.join(process.env.PM2_HOME || nodepath.join(process.env.HOME, '.pm2'), 'cli.lock.d');
     const withPm2Lock = (fn) => {
       const sleep = ms => Atomics.wait(new Int32Array(new SharedArrayBuffer(4)), 0, 0, ms);
-      const deadline = Date.now() + 5000; let held = false;
+      // deadline (10s) > STALE_MS (8s) so a dead holder's lock is reclaimed within one wait;
+      // STALE_MS >> real <1s pm2-CLI hold so a live holder is never stolen (Kimi review).
+      const deadline = Date.now() + 10000; let held = false;
       while (Date.now() < deadline) {
         try { nodefs.mkdirSync(PM2_LOCK); held = true; break; }
-        catch (e) { if (e.code !== 'EEXIST') break; try { if (Date.now() - nodefs.statSync(PM2_LOCK).mtimeMs > 20000) { nodefs.rmdirSync(PM2_LOCK); continue; } } catch {} sleep(80); }
+        catch (e) { if (e.code !== 'EEXIST') break; try { if (Date.now() - nodefs.statSync(PM2_LOCK).mtimeMs > 8000) { nodefs.rmdirSync(PM2_LOCK); continue; } } catch {} sleep(80); }
       }
       try { return fn(); } finally { if (held) { try { nodefs.rmdirSync(PM2_LOCK); } catch {} } }
     };

← 94b6673 crawl-microsites: serialize seedFromPm2 pm2 jlist via shared  ·  back to All Designerwallcoverings  ·  use owner-safe PM2 CLI wrapper c9e5e8e →