-----============= acceptance-small: sanity ============----- Fri Apr 19 08:35:18 EDT 2024 excepting tests: 56oc 42a 42c 42b 118c 118d 407 411b skipping tests SLOW=no: 27m 60i 64b 68 71 135 136 230d 300o 842 === sanity: start setup 08:35:20 (1713530120) === oleg105-client.virtnet: executing check_config_client /mnt/lustre oleg105-client.virtnet: Checking config lustre mounted on /mnt/lustre Checking servers environments Checking clients oleg105-client.virtnet environments Using TIMEOUT=20 osc.lustre-OST0000-osc-ffff8800b5c03800.idle_timeout=debug osc.lustre-OST0001-osc-ffff8800b5c03800.idle_timeout=debug disable quota as required oleg105-server: oleg105-server.virtnet: executing set_default_debug vfstrace rpctrace dlmtrace neterror ha config ioctl super lfsck all osd-ldiskfs.track_declares_assert=1 === sanity: finish setup 08:35:27 (1713530127) === 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/f7353] preparing for tests involving mounts mke2fs 1.46.2.wc5 (26-Mar-2022) debug=all debug_raw_pointers=Y debug_raw_pointers=Y == sanity test 0a: touch; rm ============================= 08:35:28 (1713530128) /mnt/lustre/f0a.sanity has type file OK /mnt/lustre/f0a.sanity: absent OK PASS 0a (2s) debug_raw_pointers=0 debug_raw_pointers=0 debug_raw_pointers=Y debug_raw_pointers=Y == sanity test 0b: chmod 0755 /mnt/lustre ======================================================================================= 08:35:31 (1713530131) /mnt/lustre has perms 0755 OK PASS 0b (2s) debug_raw_pointers=0 debug_raw_pointers=0 debug_raw_pointers=Y debug_raw_pointers=Y == sanity test 0c: check import proc ===================== 08:35:34 (1713530134) state: FULL state: FULL target: lustre-MDT0000_UUID target: lustre-MDT0001_UUID PASS 0c (2s) debug_raw_pointers=0 debug_raw_pointers=0 debug_raw_pointers=Y debug_raw_pointers=Y == sanity test 0d: check export proc ======================================================================================= 08:35:37 (1713530137) mgc.MGC192.168.201.105@tcp.import= import: name: MGC192.168.201.105@tcp target: MGS state: FULL connect_flags: [ version, barrier, adaptive_timeouts, full20, imp_recov, bulk_mbits, second_flags, reply_mbits, large_nid ] connect_data: flags: 0xa000011001002020 instance: 0 target_version: 2.15.61.227 import_flags: [ pingable, connect_tried ] connection: failover_nids: [ "192.168.201.105@tcp" ] current_connection: "192.168.201.105@tcp" connection_attempts: 1 generation: 1 in-progress_invalidations: 0 idle: 10 sec mgs.MGS.exports.192.168.201.5@tcp.export= 88f85731-081a-4f0c-ba1c-ed5f74c381d0: name: MGS client: 192.168.201.5@tcp connect_flags: [ version, barrier, adaptive_timeouts, full20, imp_recov, bulk_mbits, second_flags, reply_mbits, large_nid ] connect_data: flags: 0xa000011001002020 instance: 0 target_version: 2.15.61.227 export_flags: [ ] PASS 0d (2s) debug_raw_pointers=0 debug_raw_pointers=0 debug_raw_pointers=Y debug_raw_pointers=Y == sanity test 0e: Enable DNE MDT balancing for mkdir in the ROOT ========================================================== 08:35:41 (1713530141) PASS 0e (1s) debug_raw_pointers=0 debug_raw_pointers=0 debug_raw_pointers=Y debug_raw_pointers=Y == sanity test 0f: Symlink to /sys/kernel/debug/*/*/brw_stats should work properly ========================================================== 08:35:44 (1713530144) PASS 0f (1s) debug_raw_pointers=0 debug_raw_pointers=0 debug_raw_pointers=Y debug_raw_pointers=Y == sanity test 1: mkdir; remkdir; rmdir ================== 08:35:47 (1713530147) striped dir -i1 -c2 -H fnv_1a_64 /mnt/lustre/d1.sanity striped dir -i1 -c2 -H crush2 /mnt/lustre/d1.sanity/d2 mkdir: cannot create directory '/mnt/lustre/d1.sanity/d2': File exists /mnt/lustre/d1.sanity/d2 has type dir OK /mnt/lustre/d1.sanity: absent OK PASS 1 (1s) debug_raw_pointers=0 debug_raw_pointers=0 debug_raw_pointers=Y debug_raw_pointers=Y == sanity test 2: mkdir; touch; rmdir; check file ======== 08:35:50 (1713530150) striped dir -i0 -c2 -H all_char /mnt/lustre/d2.sanity /mnt/lustre/d2.sanity/f2.sanity has type file OK /mnt/lustre/d2.sanity/f2.sanity: absent OK PASS 2 (1s) debug_raw_pointers=0 debug_raw_pointers=0 debug_raw_pointers=Y debug_raw_pointers=Y == sanity test 3: mkdir; touch; rmdir; check dir ========= 08:35:53 (1713530153) striped dir -i1 -c2 -H crush /mnt/lustre/d3.sanity /mnt/lustre/d3.sanity has type dir OK /mnt/lustre/d3.sanity/f3.sanity has type file OK /mnt/lustre/d3.sanity: absent OK PASS 3 (1s) debug_raw_pointers=0 debug_raw_pointers=0 debug_raw_pointers=Y debug_raw_pointers=Y == sanity test 4: mkdir; touch dir/file; rmdir; checkdir (expect error) ========================================================== 08:35:56 (1713530156) striped dir -i1 -c2 -H all_char /mnt/lustre/d4.sanity rmdir: failed to remove '/mnt/lustre/d4.sanity': Directory not empty PASS 4 (1s) debug_raw_pointers=0 debug_raw_pointers=0 debug_raw_pointers=Y debug_raw_pointers=Y == sanity test 5: mkdir .../d5 .../d5/d2; chmod .../d5/d2 ========================================================== 08:35:59 (1713530159) striped dir -i1 -c2 -H crush2 /mnt/lustre/d5.sanity striped dir -i1 -c2 -H crush2 /mnt/lustre/d5.sanity/d2 /mnt/lustre/d5.sanity/d2 has type dir OK /mnt/lustre/d5.sanity/d2 has perms 0707 OK /mnt/lustre/d5.sanity/d2 has type dir OK PASS 5 (1s) debug_raw_pointers=0 debug_raw_pointers=0 debug_raw_pointers=Y debug_raw_pointers=Y == sanity test 6a: touch f6a; chmod f6a; runas -u 500 -g 500 chmod f6a (should return error) ============================================================ 08:36:02 (1713530162) /mnt/lustre/f6a.sanity has type file OK /mnt/lustre/f6a.sanity has perms 0666 OK /mnt/lustre/f6a.sanity is owned by user #0 OK running as uid/gid/euid/egid 500/500/500/500, groups: [chmod] [0444] [/mnt/lustre/f6a.sanity] chmod: changing permissions of '/mnt/lustre/f6a.sanity': Operation not permitted /mnt/lustre/f6a.sanity has type file OK /mnt/lustre/f6a.sanity has perms 0666 OK /mnt/lustre/f6a.sanity is owned by user #0 OK PASS 6a (1s) debug_raw_pointers=0 debug_raw_pointers=0 debug_raw_pointers=Y debug_raw_pointers=Y == sanity test 6c: touch f6c; chown f6c; runas -u 500 -g 500 chown f6c (should return error) ============================================================ 08:36:05 (1713530165) /mnt/lustre/f6c.sanity has type file OK /mnt/lustre/f6c.sanity is owned by user #500 OK running as uid/gid/euid/egid 500/500/500/500, groups: [chown] [0] [/mnt/lustre/f6c.sanity] chown: changing ownership of '/mnt/lustre/f6c.sanity': Operation not permitted /mnt/lustre/f6c.sanity has type file OK /mnt/lustre/f6c.sanity is owned by user #500 OK PASS 6c (1s) debug_raw_pointers=0 debug_raw_pointers=0 debug_raw_pointers=Y debug_raw_pointers=Y == sanity test 6e: touch+chgrp ; runas -u 500 -g 500 chgrp (should return error) ========================================================== 08:36:08 (1713530168) /mnt/lustre/f6e.sanity has type file OK /mnt/lustre/f6e.sanity is owned by user #0 OK /mnt/lustre/f6e.sanity is owned by group #500 OK running as uid/gid/euid/egid 500/500/500/500, groups: [chgrp] [0] [/mnt/lustre/f6e.sanity] chgrp: changing group of '/mnt/lustre/f6e.sanity': Operation not permitted /mnt/lustre/f6e.sanity has type file OK /mnt/lustre/f6e.sanity is owned by user #0 OK /mnt/lustre/f6e.sanity is owned by group #500 OK PASS 6e (1s) debug_raw_pointers=0 debug_raw_pointers=0 debug_raw_pointers=Y debug_raw_pointers=Y == sanity test 6g: verify new dir in sgid dir inherits group ========================================================== 08:36:11 (1713530171) striped dir -i0 -c2 -H all_char /mnt/lustre/d6g.sanity running as uid/gid/euid/egid 500/500/500/500, groups: [mkdir] [/mnt/lustre/d6g.sanity/d] striped dir -i0 -c2 -H crush2 /mnt/lustre/d6g.sanity/d/subdir /mnt/lustre/d6g.sanity/d/subdir is owned by group #500 OK /mnt/lustre/d6g.sanity.local/d6g.sanity.remote is owned by group #500 OK /mnt/lustre/d6g.sanity.local/d6g.sanity.remote has perms 02755 OK PASS 6g (1s) debug_raw_pointers=0 debug_raw_pointers=0 debug_raw_pointers=Y debug_raw_pointers=Y == sanity test 6h: runas -u 500 -g 500 chown RUNAS_ID.0 .../ (should return error) ========================================================== 08:36:14 (1713530174) running as uid/gid/euid/egid 500/500/500/500, groups: 500 [chown] [500:0] [/mnt/lustre/f6h.sanity] chown: changing ownership of '/mnt/lustre/f6h.sanity': Operation not permitted /mnt/lustre/f6h.sanity has type file OK /mnt/lustre/f6h.sanity is owned by user #500 OK /mnt/lustre/f6h.sanity is owned by group #500 OK PASS 6h (1s) debug_raw_pointers=0 debug_raw_pointers=0 debug_raw_pointers=Y debug_raw_pointers=Y == sanity test 7a: mkdir .../d7; mcreate .../d7/f; chmod .../d7/f ============================================================== 08:36:17 (1713530177) striped dir -i1 -c2 -H all_char /mnt/lustre/d7a.sanity /mnt/lustre/d7a.sanity/f7a.sanity has type file OK /mnt/lustre/d7a.sanity/f7a.sanity has perms 0666 OK PASS 7a (1s) debug_raw_pointers=0 debug_raw_pointers=0 debug_raw_pointers=Y debug_raw_pointers=Y == sanity test 7b: mkdir .../d7; mcreate d7/f2; echo foo > d7/f2 =============================================================== 08:36:20 (1713530180) striped dir -i1 -c2 -H crush /mnt/lustre/d7b.sanity /mnt/lustre/d7b.sanity/f7b.sanity has type file OK /mnt/lustre/d7b.sanity/f7b.sanity has size 3 OK PASS 7b (1s) debug_raw_pointers=0 debug_raw_pointers=0 debug_raw_pointers=Y debug_raw_pointers=Y == sanity test 8: mkdir .../d8; touch .../d8/f; chmod .../d8/f ================================================================= 08:36:23 (1713530183) striped dir -i0 -c2 -H crush /mnt/lustre/d8.sanity /mnt/lustre/d8.sanity/f8.sanity has type file OK /mnt/lustre/d8.sanity/f8.sanity has perms 0666 OK PASS 8 (1s) debug_raw_pointers=0 debug_raw_pointers=0 debug_raw_pointers=Y debug_raw_pointers=Y == sanity test 9: mkdir .../d9 .../d9/d2 .../d9/d2/d3 ========================================================================== 08:36:26 (1713530186) striped dir -i1 -c2 -H crush /mnt/lustre/d9.sanity striped dir -i1 -c2 -H crush /mnt/lustre/d9.sanity/d2 striped dir -i1 -c2 -H fnv_1a_64 /mnt/lustre/d9.sanity/d2/d3 /mnt/lustre/d9.sanity/d2/d3 has type dir OK PASS 9 (1s) debug_raw_pointers=0 debug_raw_pointers=0 debug_raw_pointers=Y debug_raw_pointers=Y == sanity test 10: mkdir .../d10 .../d10/d2; touch .../d10/d2/f ================================================================ 08:36:29 (1713530189) striped dir -i0 -c2 -H crush2 /mnt/lustre/d10.sanity striped dir -i0 -c2 -H fnv_1a_64 /mnt/lustre/d10.sanity/d2 /mnt/lustre/d10.sanity/d2/f10.sanity has type file OK PASS 10 (1s) debug_raw_pointers=0 debug_raw_pointers=0 debug_raw_pointers=Y debug_raw_pointers=Y == sanity test 11: mkdir .../d11 d11/d2; chmod .../d11/d2 ====================================================================== 08:36:32 (1713530192) striped dir -i1 -c2 -H crush /mnt/lustre/d11.sanity striped dir -i1 -c2 -H all_char /mnt/lustre/d11.sanity/d2 /mnt/lustre/d11.sanity/d2 has type dir OK /mnt/lustre/d11.sanity/d2 has perms 0705 OK PASS 11 (1s) debug_raw_pointers=0 debug_raw_pointers=0 debug_raw_pointers=Y debug_raw_pointers=Y == sanity test 12: touch .../d12/f; chmod .../d12/f .../d12/f ================================================================== 08:36:35 (1713530195) striped dir -i0 -c2 -H crush /mnt/lustre/d12.sanity /mnt/lustre/d12.sanity/f12.sanity has type file OK /mnt/lustre/d12.sanity/f12.sanity has perms 0654 OK PASS 12 (1s) debug_raw_pointers=0 debug_raw_pointers=0 debug_raw_pointers=Y debug_raw_pointers=Y == sanity test 13: creat .../d13/f; dd .../d13/f; > .../d13/f ================================================================== 08:36:38 (1713530198) striped dir -i1 -c2 -H crush /mnt/lustre/d13.sanity 10+0 records in 10+0 records out 5120 bytes (5.1 kB) copied, 0.00446457 s, 1.1 MB/s /mnt/lustre/d13.sanity/f13.sanity has type file OK /mnt/lustre/d13.sanity/f13.sanity has size 0 OK PASS 13 (1s) debug_raw_pointers=0 debug_raw_pointers=0 debug_raw_pointers=Y debug_raw_pointers=Y == sanity test 14: touch .../d14/f; rm .../d14/f; rm .../d14/f ================================================================= 08:36:41 (1713530201) striped dir -i0 -c2 -H crush /mnt/lustre/d14.sanity /mnt/lustre/d14.sanity/f14.sanity: absent OK PASS 14 (1s) debug_raw_pointers=0 debug_raw_pointers=0 debug_raw_pointers=Y debug_raw_pointers=Y == sanity test 15: touch .../d15/f; mv .../d15/f .../d15/f2 ==================================================================== 08:36:44 (1713530204) striped dir -i1 -c2 -H all_char /mnt/lustre/d15.sanity /mnt/lustre/d15.sanity/f15.sanity_2 has type file OK PASS 15 (1s) debug_raw_pointers=0 debug_raw_pointers=0 debug_raw_pointers=Y debug_raw_pointers=Y == sanity test 16: touch .../d16/f; rm -rf .../d16/f ===== 08:36:47 (1713530207) striped dir -i0 -c2 -H crush2 /mnt/lustre/d16.sanity /mnt/lustre/d16.sanity/f16.sanity: absent OK PASS 16 (1s) debug_raw_pointers=0 debug_raw_pointers=0 debug_raw_pointers=Y debug_raw_pointers=Y == sanity test 17a: symlinks: create, remove (real) ====== 08:36:50 (1713530210) striped dir -i1 -c2 -H all_char /mnt/lustre/d17a.sanity total 0 -rw-r--r-- 1 root root 0 Apr 19 08:36 f17a.sanity lrwxrwxrwx 1 root root 35 Apr 19 08:36 l-exist -> /mnt/lustre/d17a.sanity/f17a.sanity /mnt/lustre/d17a.sanity/l-exist links to /mnt/lustre/d17a.sanity/f17a.sanity OK /mnt/lustre/d17a.sanity/l-exist has type f OK /mnt/lustre/d17a.sanity/l-exist: absent OK PASS 17a (1s) debug_raw_pointers=0 debug_raw_pointers=0 debug_raw_pointers=Y debug_raw_pointers=Y == sanity test 17b: symlinks: create, remove (dangling) == 08:36:53 (1713530213) striped dir -i1 -c2 -H crush2 /mnt/lustre/d17b.sanity total 0 lrwxrwxrwx 1 root root 12 Apr 19 08:36 l-dangle -> no-such-file /mnt/lustre/d17b.sanity/l-dangle links to no-such-file OK /mnt/lustre/d17b.sanity/l-dangle: absent OK /mnt/lustre/d17b.sanity/l-dangle: absent OK PASS 17b (1s) debug_raw_pointers=0 debug_raw_pointers=0 debug_raw_pointers=Y debug_raw_pointers=Y == sanity test 17c: symlinks: open dangling (should return error) ========================================================== 08:36:56 (1713530216) striped dir -i1 -c2 -H all_char /mnt/lustre/d17c.sanity cat: /mnt/lustre/d17c.sanity/f17c.sanity: No such file or directory PASS 17c (1s) debug_raw_pointers=0 debug_raw_pointers=0 debug_raw_pointers=Y debug_raw_pointers=Y == sanity test 17d: symlinks: create dangling ============ 08:36:59 (1713530219) striped dir -i1 -c2 -H crush2 /mnt/lustre/d17d.sanity PASS 17d (1s) debug_raw_pointers=0 debug_raw_pointers=0 debug_raw_pointers=Y debug_raw_pointers=Y == sanity test 17e: symlinks: create recursive symlink (should return error) ========================================================== 08:37:02 (1713530222) striped dir -i1 -c2 -H all_char /mnt/lustre/d17e.sanity lrwxrwxrwx 1 root root 35 Apr 19 08:37 /mnt/lustre/d17e.sanity/f17e.sanity -> /mnt/lustre/d17e.sanity/f17e.sanity ls: cannot access /mnt/lustre/d17e.sanity/f17e.sanity: Too many levels of symbolic links PASS 17e (1s) debug_raw_pointers=0 debug_raw_pointers=0 debug_raw_pointers=Y debug_raw_pointers=Y == sanity test 17f: symlinks: long and very long symlink name ========================================================== 08:37:05 (1713530225) striped dir -i1 -c2 -H fnv_1a_64 /mnt/lustre/d17f.sanity total 20 lrwxrwxrwx 1 root root 43 Apr 19 08:37 111 -> 1234567890/2234567890/3234567890/4234567890 lrwxrwxrwx 1 root root 65 Apr 19 08:37 222 -> 1234567890/2234567890/3234567890/4234567890/5234567890/6234567890 lrwxrwxrwx 1 root root 87 Apr 19 08:37 333 -> 1234567890/2234567890/3234567890/4234567890/5234567890/6234567890/7234567890/8234567890 lrwxrwxrwx 1 root root 120 Apr 19 08:37 444 -> 1234567890/2234567890/3234567890/4234567890/5234567890/6234567890/7234567890/8234567890/9234567890/a234567890/b234567890 lrwxrwxrwx 1 root root 153 Apr 19 08:37 555 -> 1234567890/2234567890/3234567890/4234567890/5234567890/6234567890/7234567890/8234567890/9234567890/a234567890/b234567890/c234567890/d234567890/f234567890 lrwxrwxrwx 1 root root 220 Apr 19 08:37 666 -> 1234567890/2234567890/3234567890/4234567890/5234567890/6234567890/7234567890/8234567890/9234567890/a234567890/b234567890/c234567890/d234567890/f234567890/aaaaaaaaaa/bbbbbbbbbb/cccccccccc/dddddddddd/eeeeeeeeee/ffffffffff/ PASS 17f (1s) debug_raw_pointers=0 debug_raw_pointers=0 debug_raw_pointers=Y debug_raw_pointers=Y == sanity test 17g: symlinks: really long symlink name and inode boundaries ========================================================== 08:37:08 (1713530228) striped dir -i1 -c2 -H fnv_1a_64 /mnt/lustre/d17g.sanity xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx PASS 17g (2s) debug_raw_pointers=0 debug_raw_pointers=0 debug_raw_pointers=Y debug_raw_pointers=Y