Reduce FILENAME_MAX_SIZE to accomodate large PIDs

The max size here is designed around Ruby's Dir::Tmpname.create which
creates temporary filenames in the format

    $TIMESTAMP-$PID-$RANDOM

I believe the previous value of this field was based on the assumption
that PIDs are 1-65535, which isn't necessarily the case on 64 bit Linux
systems, which can be up to 2**22.

    $ uname -a
    Linux zergling 5.4.11-arch1-1 #1 SMP PREEMPT Sun, 12 Jan 2020 12:15:27 +0000 x86_64 GNU/Linux
    $ cat /proc/sys/kernel/pid_max
    4194304

I've chosen a new value based on what I believe the largest possible
tempname is:

    255 - "20200117-4194304-#{0x100000000.to_s(36)}.lock".length #=> 226
This commit is contained in:
John Hawthorn 2020-01-17 11:12:32 -08:00
parent 7da834fdda
commit a98f330fb1

@ -16,7 +16,7 @@ class FileStore < Store
attr_reader :cache_path attr_reader :cache_path
DIR_FORMATTER = "%03X" DIR_FORMATTER = "%03X"
FILENAME_MAX_SIZE = 228 # max filename size on file system is 255, minus room for timestamp and random characters appended by Tempfile (used by atomic write) FILENAME_MAX_SIZE = 226 # max filename size on file system is 255, minus room for timestamp, pid, and random characters appended by Tempfile (used by atomic write)
FILEPATH_MAX_SIZE = 900 # max is 1024, plus some room FILEPATH_MAX_SIZE = 900 # max is 1024, plus some room
GITKEEP_FILES = [".gitkeep", ".keep"].freeze GITKEEP_FILES = [".gitkeep", ".keep"].freeze