https://gitlab.synchro.net/main/sbbs/-/commit/ad0cde5491bfdcf99dc292ab
Modified Files:
src/sbbs3/sbbsecho.c
Log Message:
sbbsecho: bundle full packets immediately; keep long runs from going stale
A remote AreaFix RESCAN of every area could fill the disk: outbound
packets that reached the maximum packet size were held in the temp
directory until the end of the run, so a large export accumulated every exported message there, uncompressed (32 GB in the reported case). The ever-growing temp directory and outbound packet list also made each new
packet slower to create, stretching the run to about 20 hours.
- Bundle each outbound packet as soon as it is full, and drop it from
the outbound packet list. pktname() no longer reuses a name within a
run: a packet already moved into a bundle no longer exists on disk,
and a same-named packet would replace it inside that bundle.
- During long runs, refresh the time stamps of sbbsecho.bsy and the BSO
node lock files (at most once a minute), so a run that outlasts
BsyTimeout isn't considered stale and joined by a concurrent instance.
- Check MinFreeDiskSpace for the temp and outbound directories before
creating each new outbound packet, and stop gracefully (as on a
termination signal) rather than writing until the disk is full.
- When an echomail export stops early, save the export pointer of the
last message processed instead of the sub-board's last message, so
the remaining messages are exported by the next run rather than
skipped. This also affected an export interrupted with Ctrl-C.
Fixes #1301
Co-Authored-By: Claude Opus 5.5 <
noreply@anthropic.com>
---
þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net