Hi Gregm Thank you for all the work on this. I like the approach of starting with FILEOPS and not with a new table AM. I tried 0001 to 0003 from v2 and have a few notes. Please correct me if I got something wrong.
1. Most FILEOPS tests seem to need 0005 to run. 059 and 061 set logical_revert_naptime, which 0005 adds. 060 and 072 are skipped because test_fileops is only added to the build in 0005. 2. A crash in the middle of CREATE DATABASE still leaves the directory for me. With wal_log I get WARNING: FILEOPS UNDO MKDIR: could not rmdir "base/77777": Directory not empty With file_copy I do not see any undo run. 3. A plain file system error can now crash the server. For example, when the tablespace directory is owned by root: CREATE TABLESPACE t LOCATION '/Users/Shared'; On master I get ERROR: could not set permissions on directory "/Users/Shared": Operation not permitted With the patch I get PANIC: could not chmod file "/Users/Shared": Operation not permitted and all sessions are dropped while the server does crash recovery. I think it is because FileOpsChmod() calls chmod() inside the critical section, so the ERROR turns into a PANIC. The other FileOps functions look the same. Is that intended? You asked about 0004 and 0005. I think it is fine to hold them for now. Thanks, Shihao
