== sanity-dom test sanityn: Run sanityn with Data-on-MDT files ========================================================== 05:30:44 (1715333444) mgs: CentOS Linux release 7.9.2009 (Core) MGS_OS_VERSION_ID=7 MGS_OS_ID=centos MGS_OS_VERSION_CODE=117440512 MGS_OS_ID_LIKE=rhel fedora centos mds1: CentOS Linux release 7.9.2009 (Core) MDS1_OS_ID_LIKE=rhel fedora centos MDS1_OS_ID=centos MDS1_OS_VERSION_ID=7 MDS1_OS_VERSION_CODE=117440512 ost1: CentOS Linux release 7.9.2009 (Core) OST1_OS_VERSION_CODE=117440512 OST1_OS_VERSION_ID=7 OST1_OS_ID_LIKE=rhel fedora centos OST1_OS_ID=centos client: CentOS Linux release 7.9.2009 (Core) CLIENT_OS_ID=centos CLIENT_OS_ID_LIKE=rhel fedora centos CLIENT_OS_VERSION_CODE=117440512 CLIENT_OS_VERSION_ID=7 excepting tests: 28 102 skipping tests SLOW=no: 33a === sanityn: start setup 05:30:49 (1715333449) === Starting client oleg160-client.virtnet: -o user_xattr,flock oleg160-server@tcp:/lustre /mnt/lustre2 Started clients oleg160-client.virtnet: 192.168.201.160@tcp:/lustre on /mnt/lustre2 type lustre (rw,checksum,flock,user_xattr,lruresize,lazystatfs,nouser_fid2path,verbose,noencrypt,statfs_project) oleg160-client.virtnet: executing check_config_client /mnt/lustre oleg160-client.virtnet: Checking config lustre mounted on /mnt/lustre Checking servers environments Checking clients oleg160-client.virtnet environments Using TIMEOUT=20 osc.lustre-OST0000-osc-ffff8800aa5cc000.idle_timeout=debug osc.lustre-OST0000-osc-ffff88012d23f000.idle_timeout=debug osc.lustre-OST0001-osc-ffff8800aa5cc000.idle_timeout=debug osc.lustre-OST0001-osc-ffff88012d23f000.idle_timeout=debug disable quota as required oleg160-server: oleg160-server.virtnet: executing set_default_debug vfstrace rpctrace dlmtrace neterror ha config ioctl super lfsck all === sanityn: finish setup 05:30:57 (1715333457) === 1+0 records in 1+0 records out 1048576 bytes (1.0 MB) copied, 0.0139468 s, 75.2 MB/s running as uid/gid/euid/egid 500/500/500/500, groups: [true] running as uid/gid/euid/egid 500/500/500/500, groups: [touch] [/mnt/lustre/d0_runas_test/f9356] debug_raw_pointers=Y debug_raw_pointers=Y == sanityn test 1: Check attribute updates on 2 mount points ========================================================== 05:30:58 (1715333458) /mnt/lustre/f1.sanityn has type file OK /mnt/lustre/f1.sanityn has perms 0777 OK /mnt/lustre/f1.sanityn has type file OK /mnt/lustre/f1.sanityn has perms 0666 OK /mnt/lustre/f1.sanityn: absent OK PASS 1 (2s) debug_raw_pointers=1 debug_raw_pointers=1 debug_raw_pointers=Y debug_raw_pointers=Y == sanityn test 2a: check cached attribute updates on 2 mtpt's ================================================================== 05:31:02 (1715333462) -rw-r--r-- 1 root root 0 May 10 05:31 /mnt/lustre2/f2a /mnt/lustre/f2a has type file OK /mnt/lustre/f2a has perms 0777 OK PASS 2a (2s) debug_raw_pointers=1 debug_raw_pointers=1 debug_raw_pointers=Y debug_raw_pointers=Y == sanityn test 2b: check cached attribute updates on 2 mtpt's ================================================================== 05:31:06 (1715333466) -rw-r--r-- 1 root root 0 May 10 05:31 /mnt/lustre2/f2b /mnt/lustre2/f2b has type file OK /mnt/lustre2/f2b has perms 0777 OK PASS 2b (2s) debug_raw_pointers=1 debug_raw_pointers=1 debug_raw_pointers=Y debug_raw_pointers=Y == sanityn test 2c: check cached attribute updates on 2 mtpt's root ============================================================= 05:31:09 (1715333469) /mnt/lustre2 has type dir OK /mnt/lustre2 has perms 0777 OK PASS 2c (2s) debug_raw_pointers=1 debug_raw_pointers=1 debug_raw_pointers=Y debug_raw_pointers=Y == sanityn test 2d: check cached attribute updates on 2 mtpt's root ============================================================= 05:31:13 (1715333473) /mnt/lustre2 has type dir OK /mnt/lustre2 has perms 0755 OK PASS 2d (1s) debug_raw_pointers=1 debug_raw_pointers=1 debug_raw_pointers=Y debug_raw_pointers=Y == sanityn test 2e: check chmod on root is propagated to others ========================================================== 05:31:16 (1715333476) total 1069 -rwxrwxrwx 1 root root 0 May 10 05:31 f2a -rwxrwxrwx 1 root root 0 May 10 05:31 f2b -rw-r--r-- 1 root root 1890755 May 10 05:21 ffsx.sanity-dom -rw-r--r-- 1 root root 0 May 10 05:20 ffsx.sanity-dom.fsxgood -rw-r--r-- 1 root root 73134 May 10 05:21 ffsx.sanity-dom.fsxlog total 1069 -rwxrwxrwx 1 root root 0 May 10 05:31 f2a -rwxrwxrwx 1 root root 0 May 10 05:31 f2b -rw-r--r-- 1 root root 1890755 May 10 05:21 ffsx.sanity-dom -rw-r--r-- 1 root root 0 May 10 05:20 ffsx.sanity-dom.fsxgood -rw-r--r-- 1 root root 73134 May 10 05:21 ffsx.sanity-dom.fsxlog running as uid/gid/euid/egid 500/500/500/500, groups: [dd] [if=/dev/zero] [of=/mnt/lustre2/f2e.sanityn] [count=1] 1+0 records in 1+0 records out 512 bytes (512 B) copied, 0.00146796 s, 349 kB/s PASS 2e (2s) debug_raw_pointers=1 debug_raw_pointers=1 debug_raw_pointers=Y debug_raw_pointers=Y == sanityn test 2f: check attr/owner updates on DNE with 2 mtpt's ========================================================== 05:31:19 (1715333479) SKIP: sanityn test_2f needs >= 2 MDTs SKIP 2f (1s) debug_raw_pointers=1 debug_raw_pointers=1 debug_raw_pointers=Y debug_raw_pointers=Y == sanityn test 2g: check blocks update on sync write ==== 05:31:21 (1715333481) 2+0 records in 2+0 records out 2097152 bytes (2.1 MB) copied, 0.0942353 s, 22.3 MB/s /mnt/lustre/f2g.sanityn has 4109 blocks /mnt/lustre2/f2g.sanityn has 4109 blocks PASS 2g (2s) debug_raw_pointers=1 debug_raw_pointers=1 debug_raw_pointers=Y debug_raw_pointers=Y == sanityn test 4: fstat validation on multiple mount points ==================================================================== 05:31:25 (1715333485) PASS 4 (2s) debug_raw_pointers=1 debug_raw_pointers=1 debug_raw_pointers=Y debug_raw_pointers=Y == sanityn test 5: create a file on one mount, truncate it on the other ========================================================== 05:31:29 (1715333489) /mnt/lustre/f5 has type file OK /mnt/lustre/f5 has size 100 OK PASS 5 (2s) debug_raw_pointers=1 debug_raw_pointers=1 debug_raw_pointers=Y debug_raw_pointers=Y == sanityn test 6: remove of open file on other node ============================================================================ 05:31:32 (1715333492) opening writing unlinking /mnt/lustre2/f6.sanityn accessing (1) seeking (1) accessing (2) fstat... reading comparing data truncating seeking (2) writing again seeking (3) reading again comparing data again closing SUCCESS - goto beer PASS 6 (2s) debug_raw_pointers=1 debug_raw_pointers=1 debug_raw_pointers=Y debug_raw_pointers=Y == sanityn test 7: remove of open directory on other node ======================================================================= 05:31:36 (1715333496) creating directory /mnt/lustre/d7 opening directory unlinking /mnt/lustre/d7 Ok, everything goes well. PASS 7 (2s) debug_raw_pointers=1 debug_raw_pointers=1 debug_raw_pointers=Y debug_raw_pointers=Y == sanityn test 8: remove of open special file on other node ==================================================================== 05:31:39 (1715333499) creating special file /mnt/lustre/f8.sanityn opening file unlinking /mnt/lustre/f8.sanityn Ok, everything goes well. PASS 8 (2s) debug_raw_pointers=1 debug_raw_pointers=1 debug_raw_pointers=Y debug_raw_pointers=Y == sanityn test 9a: append of file with sub-page size on multiple mounts ========================================================== 05:31:43 (1715333503) PASS 9a (2s) debug_raw_pointers=1 debug_raw_pointers=1 debug_raw_pointers=Y debug_raw_pointers=Y == sanityn test 9b: append to striped sparse file ======== 05:31:47 (1715333507) 1+0 records in 1+0 records out 1048576 bytes (1.0 MB) copied, 0.0131749 s, 79.6 MB/s 3+0 records in 3+0 records out 3 bytes (3 B) copied, 0.0462125 s, 0.1 kB/s Data read (expecting 'foo'): foo PASS 9b (2s) debug_raw_pointers=1 debug_raw_pointers=1 debug_raw_pointers=Y debug_raw_pointers=Y == sanityn test 10a: write of file with sub-page size on multiple mounts ========================================================== 05:31:51 (1715333511) 1+0 records in 1+0 records out 1 byte (1 B) copied, 0.00185648 s, 0.5 kB/s 1+0 records in 1+0 records out 1 byte (1 B) copied, 0.0036178 s, 0.3 kB/s 1+0 records in 1+0 records out 1 byte (1 B) copied, 0.00470043 s, 0.2 kB/s 1+0 records in 1+0 records out 1 byte (1 B) copied, 0.00293445 s, 0.3 kB/s 1+0 records in 1+0 records out 1 byte (1 B) copied, 0.00547329 s, 0.2 kB/s 1+0 records in 1+0 records out 1 byte (1 B) copied, 0.0038539 s, 0.3 kB/s 1+0 records in 1+0 records out 1 byte (1 B) copied, 0.00330939 s, 0.3 kB/s 1+0 records in 1+0 records out 1 byte (1 B) copied, 0.00811515 s, 0.1 kB/s 1+0 records in 1+0 records out 1 byte (1 B) copied, 0.00415839 s, 0.2 kB/s 1+0 records in 1+0 records out 1 byte (1 B) copied, 0.00436687 s, 0.2 kB/s 1+0 records in 1+0 records out 1 byte (1 B) copied, 0.00380583 s, 0.3 kB/s 1+0 records in 1+0 records out 1 byte (1 B) copied, 0.0056252 s, 0.2 kB/s PASS 10a (2s) debug_raw_pointers=1 debug_raw_pointers=1 debug_raw_pointers=Y debug_raw_pointers=Y == sanityn test 10b: write of file with sub-page size on multiple mounts ========================================================== 05:31:54 (1715333514) 1+0 records in 1+0 records out 3072 bytes (3.1 kB) copied, 0.00165013 s, 1.9 MB/s 1+0 records in 1+0 records out 4096 bytes (4.1 kB) copied, 0.00911888 s, 449 kB/s 1+0 records in 1+0 records out 3072 bytes (3.1 kB) copied, 0.000238584 s, 12.9 MB/s PASS 10b (2s) debug_raw_pointers=1 debug_raw_pointers=1 debug_raw_pointers=Y debug_raw_pointers=Y == sanityn test 11: execution of file opened for write should return error ============================================================== 05:31:58 (1715333518) multiop /mnt/lustre/d11/f vO_c TMPPIPE=/tmp/multiop_open_wait_pipe.9356 /home/green/git/lustre-release/lustre/tests/sanityn.sh: line 301: /mnt/lustre2/d11/f: Text file busy PASS 11 (1s) debug_raw_pointers=1 debug_raw_pointers=1 debug_raw_pointers=Y debug_raw_pointers=Y == sanityn test 12: test lock ordering (link, stat, unlink) ========================================================== 05:32:01 (1715333521) warning: '-runtime' deprecated, use '-t runtime' instead - link 2042 (time 1715333531.97 total 10.00 last 204.14) - link 4443 (time 1715333541.97 total 20.00 last 240.07) - link 6561 (time 1715333551.97 total 30.00 last 211.79) - link 9203 (time 1715333561.97 total 40.01 last 264.11) - link 10000 (time 1715333565.27 total 43.30 last 242.15) - link 12494 (time 1715333575.27 total 53.30 last 249.39) - link 14435 (time 1715333585.27 total 63.31 last 193.98) - link 16221 (time 1715333595.28 total 73.31 last 178.53) - link 18157 (time 1715333605.28 total 83.31 last 193.60) - link 20000 (time 1715333614.70 total 92.73 last 195.65) total: 21618 link in 100.00 seconds: 216.17 ops/second using seed 3206584226 running for 100 seconds - stat 2025 (time 1715333533 ; total 11 ; last 11) - stat 10000 (time 1715333543 ; total 21 ; last 10) - stat 17057 (time 1715333554 ; total 32 ; last 11) - stat 20000 (time 1715333558 ; total 36 ; last 4) - stat 27947 (time 1715333569 ; total 47 ; last 11) - stat 30000 (time 1715333571 ; total 49 ; last 2) - stat 34000 (time 1715333582 ; total 60 ; last 11) - stat 38116 (time 1715333593 ; total 71 ; last 11) - stat 40000 (time 1715333597 ; total 75 ; last 4) - stat 44127 (time 1715333608 ; total 86 ; last 11) - stat 48624 (time 1715333619 ; total 97 ; last 11) total: 49778 stats in 100 seconds: 497.779999 stats/second - unlinked 0 (time 1715333572 ; total 0 ; last 0) - unlinked 10000 (time 1715333645 ; total 73 ; last 73) - unlinked 20000 (time 1715333683 ; total 111 ; last 38) unlink(/mnt/lustre2/lockdir/lockfile21618) error: No such file or directory total: 21617 unlinks in 116 seconds: 186.353455 unlinks/second /home/green/git/lustre-release/lustre/tests/lockorder.sh: line 77: kill: (24344) - No such process /home/green/git/lustre-release/lustre/tests/lockorder.sh: line 78: kill: (24347) - No such process PASS 12 (169s) debug_raw_pointers=1 debug_raw_pointers=1 debug_raw_pointers=Y debug_raw_pointers=Y == sanityn test 14aa: execution of file open for write returns -ETXTBSY ========================================================== 05:34:51 (1715333691) multiop /mnt/lustre/d14aa.sanityn/f14aa.sanityn vOw_c TMPPIPE=/tmp/multiop_open_wait_pipe.9356 /home/green/git/lustre-release/lustre/tests/sanityn.sh: line 336: /mnt/lustre2/d14aa.sanityn/f14aa.sanityn: Text file busy /home/green/git/lustre-release/lustre/tests/test-framework.sh: line 4716: 25226 Terminated $MULTIOP_PROG $FILE v$ARGS > $TMPPIPE (wd: ~) PASS 14aa (2s) debug_raw_pointers=1 debug_raw_pointers=1 debug_raw_pointers=Y debug_raw_pointers=Y == sanityn test 14ab: open(RDWR) of executing file returns -ETXTBSY ========================================================== 05:34:55 (1715333695) open(O_RDWR|O_CREAT): Text file busy /home/green/git/lustre-release/lustre/tests/test-framework.sh: line 4716: 25965 Terminated $DIR1/$tdir/sleep 60 (wd: ~) PASS 14ab (1s) debug_raw_pointers=1 debug_raw_pointers=1 debug_raw_pointers=Y debug_raw_pointers=Y == sanityn test 14b: truncate of executing file returns -ETXTBSY ================================================================ 05:34:58 (1715333698) truncate: cannot truncate '/mnt/lustre2/d14b.sanityn/sleep' to length 60: Text file busy /home/green/git/lustre-release/lustre/tests/sanityn.sh: line 351: 26702 Terminated $DIR1/$tdir/sleep 60 PASS 14b (1s) debug_raw_pointers=1 debug_raw_pointers=1 debug_raw_pointers=Y debug_raw_pointers=Y == sanityn test 14c: open(O_TRUNC) of executing file return -ETXTBSY ============================================================ 05:35:01 (1715333701) cp: cannot create regular file '/mnt/lustre2/d14c.sanityn/sleep': Text file busy /home/green/git/lustre-release/lustre/tests/sanityn.sh: line 363: 27441 Terminated $DIR1/$tdir/sleep 60 PASS 14c (2s) debug_raw_pointers=1 debug_raw_pointers=1 debug_raw_pointers=Y debug_raw_pointers=Y == sanityn test 14d: chmod of executing file is still possible ================================================================== 05:35:04 (1715333704) chmod /home/green/git/lustre-release/lustre/tests/sanityn.sh: line 374: 28179 Terminated $DIR1/$tdir/sleep 60 PASS 14d (2s) debug_raw_pointers=1 debug_raw_pointers=1 debug_raw_pointers=Y debug_raw_pointers=Y == sanityn test 17: resource creation/LVB creation race ========================================================================= 05:35:08 (1715333708) fail_loc=0x8000030a PASS 17 (4s) debug_raw_pointers=1 debug_raw_pointers=1 debug_raw_pointers=Y debug_raw_pointers=Y == sanityn test 19: test concurrent uncached read races ========================================================================= 05:35:13 (1715333713) oleg160-server: error: get_param: param_path 'osd-*/lustre-MDT*/read_cache_enable': No such file or directory pdsh@oleg160-client: oleg160-server: ssh exited with exit code 2 SKIP: sanityn test_19 not cache-capable obdfilter SKIP 19 (1s) debug_raw_pointers=1 debug_raw_pointers=1 debug_raw_pointers=Y debug_raw_pointers=Y == sanityn test 20: test extra readahead page left in cache ============================================================== 05:35:16 (1715333716) PASS 20 (1s) debug_raw_pointers=1 debug_raw_pointers=1 debug_raw_pointers=Y debug_raw_pointers=Y == sanityn test 23: others should see updated atime while another read============================================================== 05:35:19 (1715333719) now is 1715333720 starting reads multiop /mnt/lustre/f23.sanityn vor20_c TMPPIPE=/tmp/multiop_open_wait_pipe.9356 new atime is 1715333781 PASS 23 (63s) debug_raw_pointers=1 debug_raw_pointers=1 debug_raw_pointers=Y debug_raw_pointers=Y == sanityn test 27: align non-overlapping extent locks from request ============================================================= 05:36:23 (1715333783) 4+0 records in 4+0 records out 16793600 bytes (17 MB) copied, 0.129125 s, 130 MB/s dd 1 started dd 2 started 1+0 records in 1+0 records out 15728640 bytes (16 MB) copied, 0.14638 s, 107 MB/s 1+0 records in 1+0 records out 8192 bytes (8.2 kB) copied, 0.00386878 s, 2.1 MB/s dd 3 finished PASS 27 (4s) debug_raw_pointers=1 debug_raw_pointers=1 debug_raw_pointers=Y debug_raw_pointers=Y == sanityn test 39a: file mtime does not change after rename ========================================================== 05:36:29 (1715333789) repeat after cancel_lru_locks PASS 39a (1s) debug_raw_pointers=1 debug_raw_pointers=1 debug_raw_pointers=Y debug_raw_pointers=Y == sanityn test 39b: file mtime the same on clients with/out lock ========================================================== 05:36:32 (1715333792) repeat after cancel_lru_locks PASS 39b (2s) debug_raw_pointers=1 debug_raw_pointers=1 debug_raw_pointers=Y debug_raw_pointers=Y == sanityn test 39c: check truncate mtime update ================================================================================ 05:36:36 (1715333796) repeat after cancel_lru_locks PASS 39c (3s) debug_raw_pointers=1 debug_raw_pointers=1 debug_raw_pointers=Y debug_raw_pointers=Y == sanityn test 39d: sync write should update mtime ====== 05:36:40 (1715333800) fail_loc=0x411 fail_loc=0 PASS 39d (2s) debug_raw_pointers=1 debug_raw_pointers=1 debug_raw_pointers=Y debug_raw_pointers=Y == sanityn test 51a: layout lock: refresh layout should work ========================================================== 05:36:43 (1715333803) 0+1 records in 0+1 records out 159 bytes (159 B) copied, 0.00717078 s, 22.2 kB/s /home/green/git/lustre-release/lustre/tests/sanityn.sh: line 3470: kill: (3816) - No such process PASS 51a (4s) debug_raw_pointers=1 debug_raw_pointers=1 debug_raw_pointers=Y debug_raw_pointers=Y == sanityn test 51c: layout lock: IT_LAYOUT blocked and correct layout can be returned ========================================================== 05:36:49 (1715333809) fail_loc=0x172 Setting layout to have 2 stripes ... 1+0 records in 1+0 records out 1024 bytes (1.0 kB) copied, 0.00387681 s, 264 kB/s PASS 51c (6s) debug_raw_pointers=1 debug_raw_pointers=1 debug_raw_pointers=Y debug_raw_pointers=Y == sanityn test 51d: layout lock: losing layout lock should clean up memory map region ========================================================== 05:36:56 (1715333816) 1+0 records in 1+0 records out 1048576 bytes (1.0 MB) copied, 0.00735829 s, 143 MB/s Before revoking layout lock: 1024 KB mapped PASS 51d (3s) debug_raw_pointers=1 debug_raw_pointers=1 debug_raw_pointers=Y debug_raw_pointers=Y == sanityn test 107a: Basic grouplock conflict =========== 05:37:00 (1715333820) 10+0 records in 10+0 records out 10485760 bytes (10 MB) copied, 0.0728156 s, 144 MB/s /mnt/lustre/f107a.sanityn lcm_layout_gen: 3 lcm_mirror_count: 1 lcm_entry_count: 2 lcme_id: 1 lcme_mirror_id: 0 lcme_flags: init lcme_extent.e_start: 0 lcme_extent.e_end: 1048576 lmm_stripe_count: 0 lmm_stripe_size: 1048576 lmm_pattern: mdt lmm_layout_gen: 0 lmm_stripe_offset: 0 lcme_id: 2 lcme_mirror_id: 0 lcme_flags: init lcme_extent.e_start: 1048576 lcme_extent.e_end: EOF lmm_stripe_count: 1 lmm_stripe_size: 1048576 lmm_pattern: raid0 lmm_layout_gen: 0 lmm_stripe_offset: 1 lmm_objects: - 0: { l_ost_idx: 1, l_fid: [0x280000400:0x3db:0x0] } multiop /mnt/lustre/f107a.sanityn vOG14091995_g14091995c TMPPIPE=/tmp/multiop_open_wait_pipe.9356 multiop /mnt/lustre2/f107a.sanityn vO_G16022000r10g16022000c TMPPIPE=/tmp/multiop_open_wait_pipe.9356 First grouplock blocks second one PASS 107a (4s) debug_raw_pointers=1 debug_raw_pointers=1 debug_raw_pointers=Y debug_raw_pointers=Y == sanityn test 107b: Grouplock is added to the head of waiting list ========================================================== 05:37:06 (1715333826) 10+0 records in 10+0 records out 10485760 bytes (10 MB) copied, 0.0936207 s, 112 MB/s /mnt/lustre/f107b.sanityn lcm_layout_gen: 3 lcm_mirror_count: 1 lcm_entry_count: 2 lcme_id: 1 lcme_mirror_id: 0 lcme_flags: init lcme_extent.e_start: 0 lcme_extent.e_end: 1048576 lmm_stripe_count: 0 lmm_stripe_size: 1048576 lmm_pattern: mdt lmm_layout_gen: 0 lmm_stripe_offset: 0 lcme_id: 2 lcme_mirror_id: 0 lcme_flags: init lcme_extent.e_start: 1048576 lcme_extent.e_end: EOF lmm_stripe_count: 1 lmm_stripe_size: 1048576 lmm_pattern: raid0 lmm_layout_gen: 0 lmm_stripe_offset: 0 lmm_objects: - 0: { l_ost_idx: 0, l_fid: [0x240000400:0x3dd:0x0] } multiop /mnt/lustre/f107b.sanityn vOG14091995_g14091995c TMPPIPE=/tmp/multiop_open_wait_pipe.9356 Grouplock blocks IO First grouplock blocks second one Second grouplock blocks IO PASS 107b (7s) debug_raw_pointers=1 debug_raw_pointers=1 cleanup: ====================================================== == sanityn test complete, duration 389 sec =============== 05:37:14 (1715333834) === sanityn: start cleanup 05:37:15 (1715333835) === Stopping clients: oleg160-client.virtnet /mnt/lustre2 (opts:) Stopping client oleg160-client.virtnet /mnt/lustre2 opts: === sanityn: finish cleanup 05:37:15 (1715333835) ===