====
Just a heads-up that there is an issue on /ffs. The short of it is that advisory file file locking is either not configured on the existing installation or that such locking simply does not work on that file system. The behavior of fcntl-mediated file locking is very different on /bio vs. /ffs.
I have an array job that I am currently running on both file systems. The output files from a job are 3 binary files + 1 ASCI index file that gives the file offsets of the 3 binary files for each record. On bio, the following is true:
1. Every file offset is unique.
2. As you read down the index file, the file offsets are always larger than the preceding offset.
3. Downstream code is able to read the data from the binary files using the offsets.
4. All records are present in the index file.
The above are all what you would predict if locking is working. The program works by first locking the index file, then locking the 3 output files. Once output is written, the files are unlocked in the reverse order from which they were locked. This means that the index file is unlocked last, and is the signal that another task can begin output.
I've done a lot of experiments and run 1000s of jobs involving file locking on /bio in the last week or two, and all has been good.
But, when run the same jobs on ffs:
1. Offsets get repeated in the index file. This is a big hint that locking is NOT working on ffs. This can only occur when two different tasks attempt to open the same file in append mode, which can only happen if the lock is ignored.
2. As you read down the index file, the offsets are not monotonically increasing as they should be.
3. Downstream programs are unable to read data using the offsets.
4. Records are missing from the index file.
====