• src/xpdev/filewrap.h

    From Rob Swindell (on Debian Linux)@VERT to Git commit to main/sbbs/master on Sun Nov 10 21:56:44 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/77c31de6b8e073473950fe37
    Modified Files:
    src/xpdev/filewrap.h
    Log Message:
    Fix write-locks (deny-all/exclusive flocks) in sopen()

    SH_DENYRW (deny-all) locks were broken 18 years ago with commit b866f1990a.

    This fixes that by treating SH_COMPAT the same as SH_DENYNO (only), rather
    than the same as SH_DENYNO or SH_DENYRW (and performing no locking).

    This is likely the/a root-cause of some SBBS file corruption on *nix systems.

    ---
    ■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net
  • From Rob Swindell (on Debian Linux)@VERT to Git commit to main/sbbs/master on Tue Nov 12 18:17:07 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/ac9c138a8e5158192868bf56
    Modified Files:
    src/xpdev/filewrap.h
    Log Message:
    Add FILE_RETRY_ERRNO() definition, to be used in sopen()/lock() loops

    Note: EBUSY was added to the list of errno values that should cause a retry
    as observed on Vertrauen, running sbbs-linux on a Samba mount, opening
    locked files can return failure (-1) with errno = EBUSY, e.g.
    evnt BBS Events !ERROR 16 (Device or resource busy) in logon.cpp line 616 (logonstats) reading "system stats" access=0

    This was apparently resolved by adding EBUSY (16) the values that trigger an sopen()
    retry (i.e. from [f]nopen()).

    ---
    ■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net
  • From Rob Swindell (on macOS)@VERT to Git commit to main/sbbs/master on Sat Nov 30 00:37:44 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/8f79b2099df41e212ef2030f
    Modified Files:
    src/xpdev/filewrap.h
    Log Message:
    Retry file lock/read operations on EIO errors

    As seen on MacOS, an SMB shared file can cause the Mac SMB client to report EIO error on locked-file read or lock attempts. So retry.

    ---
    ■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net