1. 01 Nov, 2020 11 commits
  2. 31 Oct, 2020 1 commit
  3. 30 Oct, 2020 1 commit
  4. 26 Oct, 2020 4 commits
  5. 25 Oct, 2020 8 commits
  6. 24 Oct, 2020 4 commits
  7. 23 Oct, 2020 9 commits
  8. 22 Oct, 2020 2 commits
    • Rob Swindell's avatar
      68770a4e
    • Rob Swindell's avatar
      We must explicitly set _FILE_OFFSET_BITS=64 to use Linux OFD locks · f615f2e3
      Rob Swindell authored
      The Linux lock() implementation in xpdev/filewrap.c requires that
      _FILE_OFFSET_BITS is set to 64 or else OFD (sane) locks are not
      used on Linux, defaulting back to the crazy per-process file region
      locking of Linux of old. This was done in this commit:
      http://cvs.synchro.net/commitlog.ssjs?99999#39639
      because:
      https://patchwork.kernel.org/patch/9289177/
      
      but on 64-bit Linux, large file support is assumed and you don't
      actually need to define _FILE_OFFFSET_BITS, we're peforming this
      check for 32-bit Linuxes. Perhaps a check to see if sizeof(off_t)
      == 8 would have been better. However, this change enables OFD
      Locks for *all* flavors of Linux (not just 64-bit) - so that's
      better.
      
      Why do we care? Because using region locks on the same file in
      a multi-threaded program doesn't really work right on Linux without
      using OFD Locks. I saw this problem with receiving multiple
      simultaneous emails in the mailserver and getting smb_locksmbhdr()
      errors/failures when trying to save the message data or headers
      of the one or more messages every time GitLab would send email
      out to those whoe have opted-in to received email notifications
      upon gitlab.synchro.net activity.
      f615f2e3