https://gitlab.synchro.net/main/sbbs/-/commit/4365e08932e3ba60d0f41e58
Modified Files:
docs/v322_new.md exec/tests/qwkjob/hub.js pack.js src/sbbs3/qwk.cpp qwkjob.cpp qwkjob.h sbbs.h
Log Message:
qwkjob: take over a QWK lock left by a crashed holder after an hour
The user (data/pack<user#>.lock), REP and hub (data/qnet/<HUBID>.lock)
locks were taken with TIMEOUT_MUTEX_FILE (12 hours) as the fmutex maximum
age. On POSIX a lock file outlives a holder that crashes, and these locks
are now taken by the Web server, Services and jsexec too, so one crash
left that user's or hub's QWK traffic refused for up to 12 hours, logged
only at debug level.
The jobs and the Terminal Server's QWK download and upload now take the
locks with QWKJOB_LOCK_MAX_AGE (1 hour). A refusal is logged with the
holder's text and how long the lock has been held, at LOG_NOTICE once that exceeds QWKJOB_LOCK_NOTICE_AGE (5 minutes), else at LOG_DEBUG. The event thread's hub call-out takes the lock through qwkjob_lock_hub(), so it
logs the same way.
Co-Authored-By: Claude Opus 5.5 <
noreply@anthropic.com>
---
þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net