* parts of pages on NFS being replaced by swaths of NULs @ 2025-07-30 14:52 Jeff Layton 2025-07-31 21:56 ` Trond Myklebust 0 siblings, 1 reply; 20+ messages in thread From: Jeff Layton @ 2025-07-30 14:52 UTC (permalink / raw) To: Trond Myklebust, Anna Schumaker; +Cc: Chuck Lever, linux-nfs [-- Attachment #1: Type: text/plain, Size: 7625 bytes --] We've been seeing a rather nasty bit of data corruption with NFS in our environment. The clients in this env run a patched v6.9 kernel (mostly due to GPU driver requirements). Most of the patches are NFS containerization fixes. The workload is python scripts writing JSONL files sequentially using bog-standard buffered write() calls. We're fairly certain that userland is not seeking so there should be no gaps in the data written. The problem is that we see ranges of written files being replaced by NULs. The length of the file seemingly doesn't change from what it should be, but a chunk of it will be zeroed-out. Looking at the offsets of the zeroed out ranges, the front part of one page is fine, but the data from some random offset in the page to the end of the page is zeroes. We have a reproducer but we have to run it in a heavily parallel configuration to make it happen, so it's evidently a tight race of some sort. We've turned up some tracepoints and reproduced this twice. What we see in both cases is that the client just doesn't write some section of the file. In the first trace, there was is a gap of 2201 bytes between these two writes on the wire: kworker/u1038:1-2597138 [106] ..... 46138.516795: nfs_initiate_write: fileid=00:aa:10056165185 fhandle=0x6bd94d55 offset=53248 count=1895 stable=UNSTABLE oil-localfs-252-2605046 [163] ..... 46138.551459: nfs_initiate_write: fileid=00:aa:10056165185 fhandle=0x6bd94d55 offset=57344 count=443956 stable=FILE_SYNC The zeroed-out range is from 55143-57344. At the same time that the file is growing from 53248 to 55143 (due to sequential write() activity), the client is kicking off writeback for the range up to 55143. It's issuing 2 writes, one for 0-53248 and one for 53248-55143 (note that I've filtered out all but one of the DS filehandles for brevity): oil-localfs-252-2605046 [162] ..... 46138.516414: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=49152 newsize=50130 oil-localfs-252-2605046 [162] ..... 46138.516593: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=50130 newsize=53248 kworker/u1038:1-2597138 [106] ..... 46138.516740: nfs_initiate_write: fileid=00:aa:10056165185 fhandle=0x6bd94d55 offset=0 count=53248 stable=UNSTABLE oil-localfs-252-2605046 [162] ..... 46138.516753: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=53248 newsize=55143 kworker/u1038:1-2597138 [106] ..... 46138.516795: nfs_initiate_write: fileid=00:aa:10056165185 fhandle=0x6bd94d55 offset=53248 count=1895 stable=UNSTABLE kworker/u1037:2-2871862 [097] ..... 46138.517659: nfs4_pnfs_write: error=0 (OK) fileid=00:aa:10056165185 fhandle=0x6bd94d55 offset=0 count=53248 res=53248 stateid=1:0x79a9c471 layoutstateid=1:0xcbd8aaad kworker/u1037:2-2871862 [097] ..... 46138.517662: nfs_writeback_done: error=53248 fileid=00:aa:10056165185 fhandle=0x6bd94d55 offset=0 count=53248 res=53248 stable=UNSTABLE verifier=5199cdae2816c899 kworker/u1037:5-2593935 [226] ..... 46138.517669: nfs4_pnfs_write: error=0 (OK) fileid=00:aa:10056165185 fhandle=0x6bd94d55 offset=53248 count=1895 res=1895 stateid=1:0x79a9c471 layoutstateid=1:0xcbd8aaad kworker/u1037:5-2593935 [226] ..... 46138.517672: nfs_writeback_done: error=1895 fileid=00:aa:10056165185 fhandle=0x6bd94d55 offset=53248 count=1895 res=1895 stable=UNSTABLE verifier=5199cdae2816c899 oil-localfs-252-2605046 [162] ..... 46138.518360: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=55143 newsize=57344 oil-localfs-252-2605046 [162] ..... 46138.518556: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=57344 newsize=60156 ...and just after writeback completes, we see the file size grow from 55143 to the end of the page (57344). The second trace has similar symptoms. There is a lot more (smaller) write activity (due to memory pressure?). There is a gap of 3791 bytes between these on-the-wire writes, however: kworker/u1036:0-2339252 [217] ..... 479572.054622: nfs_initiate_write: fileid=00:96:10067193438 fhandle=0xc9992232 offset=221184 count=4401 stable=UNSTABLE kworker/u1030:1-2297876 [042] ..... 479572.074194: nfs_initiate_write: fileid=00:96:10067193438 fhandle=0xc9992232 offset=229376 count=261898 stable=UNSTABLE Same situation -- the at page at offset 53248 has 305 bytes on it, and the remaining is zeroed. This trace shows similar racing write() and writeback activity as in Friday's trace. At around the same time as the client was growing the file over the affected range, writeback was kicking off for everything up to the affected range (this has some other wb related calls filtered for brevity): oil-localfs-86-727850 [215] ..... 479572.053987: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=217088 newsize=220572 kworker/u1036:8-2339326 [088] ..... 479572.054008: nfs_initiate_write: fileid=00:96:10067193438 fhandle=0xc9992232 offset=217088 count=3484 stable=UNSTABLE oil-localfs-86-727850 [215] ..... 479572.054405: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=220572 newsize=221184 kworker/u1036:1-2297875 [217] ..... 479572.054418: nfs_initiate_write: fileid=00:96:10067193438 fhandle=0xc9992232 offset=220572 count=612 stable=UNSTABLE oil-localfs-86-727850 [215] ..... 479572.054581: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=221184 newsize=225280 oil-localfs-86-727850 [215] ..... 479572.054584: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=225280 newsize=225585 kworker/u1036:0-2339252 [217] ..... 479572.054622: nfs_initiate_write: fileid=00:96:10067193438 fhandle=0xc9992232 offset=221184 count=4401 stable=UNSTABLE oil-localfs-86-727850 [215] ..... 479572.054997: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=225585 newsize=229376 oil-localfs-86-727850 [215] ..... 479572.055190: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=229376 newsize=230598 Could this be a race between extending an existing dirty page, and writeback kicking off for the pre-extension range on the page? Maybe the client is clearing the dirty bit, thinking that the write covers the dirty range, but it has an outdated idea about what that range is or doesn't properly check? Traces for both events, filtered on the relevant fileid are attached. I've rolled patches for some new tracepoints that I'm going to attempt to turn up next, but I thought that this was a good point to solicit ideas. Happy to entertain other thoughts or patches! -- Jeff Layton <jlayton@kernel.org> [-- Attachment #2: 20250729.txt --] [-- Type: text/plain, Size: 166129 bytes --] oil-localfs-86-727850 [215] ..... 479572.008843: nfs_getattr_enter: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 oil-localfs-86-727850 [215] ..... 479572.008844: nfs_getattr_exit: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=0 cache_validity=0x0 () nfs_flags=0x4 (ACL_LRU_SET) oil-localfs-86-727850 [215] ..... 479572.008856: nfs_getattr_enter: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 oil-localfs-86-727850 [215] ..... 479572.008857: nfs_getattr_exit: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=0 cache_validity=0x0 () nfs_flags=0x4 (ACL_LRU_SET) oil-localfs-86-727850 [215] ..... 479572.021714: nfs_getattr_enter: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 oil-localfs-86-727850 [215] ..... 479572.021715: nfs_getattr_exit: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=0 cache_validity=0x0 () nfs_flags=0x4 (ACL_LRU_SET) oil-localfs-86-727850 [215] ..... 479572.021722: nfs_getattr_enter: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 oil-localfs-86-727850 [215] ..... 479572.021722: nfs_getattr_exit: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=0 cache_validity=0x0 () nfs_flags=0x4 (ACL_LRU_SET) oil-localfs-86-727850 [215] ..... 479572.032497: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=0 newsize=4096 oil-localfs-86-727850 [215] ..... 479572.032504: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=4096 newsize=5013 oil-localfs-86-727850 [215] ..... 479572.032891: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=5013 newsize=8192 oil-localfs-86-727850 [215] ..... 479572.033185: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=8192 newsize=10026 oil-localfs-86-727850 [215] ..... 479572.033466: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=10026 newsize=12288 oil-localfs-86-727850 [215] ..... 479572.033739: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=12288 newsize=15039 oil-localfs-86-727850 [215] ..... 479572.033988: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=15039 newsize=16384 kworker/u1027:7-2369635 [023] ..... 479572.034060: nfs_initiate_write: fileid=00:96:10067193438 fhandle=0xc9992232 offset=0 count=16384 stable=UNSTABLE kworker/u1027:7-2369635 [023] ..... 479572.034069: nfs_initiate_write: fileid=00:96:10067193438 fhandle=0x6af4272f offset=0 count=16384 stable=UNSTABLE kworker/u1027:7-2369635 [023] ..... 479572.034073: nfs_initiate_write: fileid=00:96:10067193438 fhandle=0xf88816fa offset=0 count=16384 stable=UNSTABLE oil-localfs-86-727850 [215] ..... 479572.034248: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=16384 newsize=20052 kworker/u1027:1-2286624 [148] ..... 479572.034332: nfs_initiate_write: fileid=00:96:10067193438 fhandle=0xc9992232 offset=16384 count=3668 stable=UNSTABLE kworker/u1027:1-2286624 [148] ..... 479572.034337: nfs_initiate_write: fileid=00:96:10067193438 fhandle=0x6af4272f offset=16384 count=3668 stable=UNSTABLE kworker/u1027:1-2286624 [148] ..... 479572.034340: nfs_initiate_write: fileid=00:96:10067193438 fhandle=0xf88816fa offset=16384 count=3668 stable=UNSTABLE kworker/u1033:2-2344691 [197] ..... 479572.034425: nfs4_pnfs_write: error=0 (OK) fileid=00:96:10067193438 fhandle=0xf88816fa offset=0 count=16384 res=16384 stateid=1:0xd68163a6 layoutstateid=1:0xaa2ed7d2 kworker/u1033:2-2344691 [197] ..... 479572.034430: nfs_set_cache_invalid: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=20052 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1033:2-2344691 [197] ..... 479572.034432: nfs_writeback_done: error=16384 fileid=00:96:10067193438 fhandle=0xf88816fa offset=0 count=16384 res=16384 stable=UNSTABLE verifier=a5cd34d9a5d3efdb kworker/u1037:1-2369493 [230] ..... 479572.034453: nfs4_pnfs_write: error=0 (OK) fileid=00:96:10067193438 fhandle=0xc9992232 offset=0 count=16384 res=16384 stateid=1:0xd68163a6 layoutstateid=1:0xaa2ed7d2 kworker/u1037:1-2369493 [230] ..... 479572.034457: nfs_set_cache_invalid: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=20052 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:1-2369493 [230] ..... 479572.034459: nfs_writeback_done: error=16384 fileid=00:96:10067193438 fhandle=0xc9992232 offset=0 count=16384 res=16384 stable=UNSTABLE verifier=e7a66eedc4f3c318 kworker/u1037:0-2348081 [103] ..... 479572.034466: nfs4_pnfs_write: error=0 (OK) fileid=00:96:10067193438 fhandle=0x6af4272f offset=0 count=16384 res=16384 stateid=1:0xd68163a6 layoutstateid=1:0xaa2ed7d2 kworker/u1037:0-2348081 [103] ..... 479572.034467: nfs_set_cache_invalid: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=20052 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:0-2348081 [103] ..... 479572.034468: nfs_writeback_done: error=16384 fileid=00:96:10067193438 fhandle=0x6af4272f offset=0 count=16384 res=16384 stable=UNSTABLE verifier=7fb1042b4dd46a93 kworker/u1033:6-2344693 [070] ..... 479572.034478: nfs4_pnfs_write: error=0 (OK) fileid=00:96:10067193438 fhandle=0xf88816fa offset=16384 count=3668 res=3668 stateid=1:0xd68163a6 layoutstateid=1:0xaa2ed7d2 kworker/u1033:6-2344693 [070] ..... 479572.034480: nfs_set_cache_invalid: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=20052 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1033:6-2344693 [070] ..... 479572.034481: nfs_refresh_inode_enter: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 kworker/u1033:6-2344693 [070] ..... 479572.034482: nfs_set_cache_invalid: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=20052 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1033:6-2344693 [070] ..... 479572.034482: nfs_refresh_inode_exit: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=20052 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1033:6-2344693 [070] ..... 479572.034483: nfs_writeback_done: error=3668 fileid=00:96:10067193438 fhandle=0xf88816fa offset=16384 count=3668 res=3668 stable=UNSTABLE verifier=a5cd34d9a5d3efdb kworker/u1037:4-2348084 [225] ..... 479572.034518: nfs4_pnfs_write: error=0 (OK) fileid=00:96:10067193438 fhandle=0xc9992232 offset=16384 count=3668 res=3668 stateid=1:0xd68163a6 layoutstateid=1:0xaa2ed7d2 kworker/u1037:4-2348084 [225] ..... 479572.034520: nfs_set_cache_invalid: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=20052 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:4-2348084 [225] ..... 479572.034521: nfs_refresh_inode_enter: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 kworker/u1037:4-2348084 [225] ..... 479572.034522: nfs_set_cache_invalid: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=20052 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:4-2348084 [225] ..... 479572.034522: nfs_refresh_inode_exit: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=20052 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:4-2348084 [225] ..... 479572.034523: nfs_writeback_done: error=3668 fileid=00:96:10067193438 fhandle=0xc9992232 offset=16384 count=3668 res=3668 stable=UNSTABLE verifier=e7a66eedc4f3c318 kworker/u1037:4-2348084 [225] ..... 479572.034526: nfs4_pnfs_write: error=0 (OK) fileid=00:96:10067193438 fhandle=0x6af4272f offset=16384 count=3668 res=3668 stateid=1:0xd68163a6 layoutstateid=1:0xaa2ed7d2 kworker/u1037:4-2348084 [225] ..... 479572.034527: nfs_set_cache_invalid: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=20052 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:4-2348084 [225] ..... 479572.034527: nfs_refresh_inode_enter: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 kworker/u1037:4-2348084 [225] ..... 479572.034527: nfs_set_cache_invalid: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=20052 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:4-2348084 [225] ..... 479572.034527: nfs_refresh_inode_exit: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=20052 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:4-2348084 [225] ..... 479572.034527: nfs_writeback_done: error=3668 fileid=00:96:10067193438 fhandle=0x6af4272f offset=16384 count=3668 res=3668 stable=UNSTABLE verifier=7fb1042b4dd46a93 oil-localfs-86-727850 [215] ..... 479572.035090: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=20052 newsize=20480 kworker/u1027:4-2369632 [145] ..... 479572.035142: nfs_initiate_write: fileid=00:96:10067193438 fhandle=0xc9992232 offset=20052 count=428 stable=UNSTABLE kworker/u1027:4-2369632 [145] ..... 479572.035145: nfs_initiate_write: fileid=00:96:10067193438 fhandle=0x6af4272f offset=20052 count=428 stable=UNSTABLE kworker/u1027:4-2369632 [145] ..... 479572.035147: nfs_initiate_write: fileid=00:96:10067193438 fhandle=0xf88816fa offset=20052 count=428 stable=UNSTABLE kworker/u1033:6-2344693 [070] ..... 479572.035252: nfs4_pnfs_write: error=0 (OK) fileid=00:96:10067193438 fhandle=0xf88816fa offset=20052 count=428 res=428 stateid=1:0xd68163a6 layoutstateid=1:0xaa2ed7d2 kworker/u1033:6-2344693 [070] ..... 479572.035253: nfs_set_cache_invalid: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=20480 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1033:6-2344693 [070] ..... 479572.035253: nfs_refresh_inode_enter: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 kworker/u1033:6-2344693 [070] ..... 479572.035254: nfs_set_cache_invalid: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=20480 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1033:6-2344693 [070] ..... 479572.035254: nfs_refresh_inode_exit: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=20480 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1033:6-2344693 [070] ..... 479572.035254: nfs_writeback_done: error=428 fileid=00:96:10067193438 fhandle=0xf88816fa offset=20052 count=428 res=428 stable=UNSTABLE verifier=a5cd34d9a5d3efdb kworker/u1037:1-2369493 [230] ..... 479572.035264: nfs4_pnfs_write: error=0 (OK) fileid=00:96:10067193438 fhandle=0xc9992232 offset=20052 count=428 res=428 stateid=1:0xd68163a6 layoutstateid=1:0xaa2ed7d2 kworker/u1037:1-2369493 [230] ..... 479572.035264: nfs_set_cache_invalid: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=20480 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:1-2369493 [230] ..... 479572.035265: nfs_refresh_inode_enter: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 kworker/u1037:1-2369493 [230] ..... 479572.035265: nfs_set_cache_invalid: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=20480 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:1-2369493 [230] ..... 479572.035266: nfs_refresh_inode_exit: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=20480 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:1-2369493 [230] ..... 479572.035266: nfs_writeback_done: error=428 fileid=00:96:10067193438 fhandle=0xc9992232 offset=20052 count=428 res=428 stable=UNSTABLE verifier=e7a66eedc4f3c318 kworker/u1037:7-2298146 [100] ..... 479572.035267: nfs4_pnfs_write: error=0 (OK) fileid=00:96:10067193438 fhandle=0x6af4272f offset=20052 count=428 res=428 stateid=1:0xd68163a6 layoutstateid=1:0xaa2ed7d2 kworker/u1037:7-2298146 [100] ..... 479572.035268: nfs_set_cache_invalid: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=20480 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:7-2298146 [100] ..... 479572.035269: nfs_refresh_inode_enter: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 kworker/u1037:7-2298146 [100] ..... 479572.035269: nfs_set_cache_invalid: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=20480 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:7-2298146 [100] ..... 479572.035269: nfs_refresh_inode_exit: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=20480 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:7-2298146 [100] ..... 479572.035270: nfs_writeback_done: error=428 fileid=00:96:10067193438 fhandle=0x6af4272f offset=20052 count=428 res=428 stable=UNSTABLE verifier=7fb1042b4dd46a93 oil-localfs-86-727850 [215] ..... 479572.035342: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=20480 newsize=24576 oil-localfs-86-727850 [215] ..... 479572.035345: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=24576 newsize=25065 kworker/u1027:7-2369635 [023] ..... 479572.035385: nfs_initiate_write: fileid=00:96:10067193438 fhandle=0xc9992232 offset=20480 count=4585 stable=UNSTABLE kworker/u1027:7-2369635 [023] ..... 479572.035388: nfs_initiate_write: fileid=00:96:10067193438 fhandle=0x6af4272f offset=20480 count=4585 stable=UNSTABLE kworker/u1027:7-2369635 [023] ..... 479572.035389: nfs_initiate_write: fileid=00:96:10067193438 fhandle=0xf88816fa offset=20480 count=4585 stable=UNSTABLE kworker/u1033:6-2344693 [070] ..... 479572.035536: nfs4_pnfs_write: error=0 (OK) fileid=00:96:10067193438 fhandle=0xf88816fa offset=20480 count=4585 res=4585 stateid=1:0xd68163a6 layoutstateid=1:0xaa2ed7d2 kworker/u1033:6-2344693 [070] ..... 479572.035536: nfs_set_cache_invalid: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=25065 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1033:6-2344693 [070] ..... 479572.035537: nfs_refresh_inode_enter: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 kworker/u1033:6-2344693 [070] ..... 479572.035537: nfs_set_cache_invalid: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=25065 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1033:6-2344693 [070] ..... 479572.035537: nfs_refresh_inode_exit: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=25065 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1033:6-2344693 [070] ..... 479572.035538: nfs_writeback_done: error=4585 fileid=00:96:10067193438 fhandle=0xf88816fa offset=20480 count=4585 res=4585 stable=UNSTABLE verifier=a5cd34d9a5d3efdb kworker/u1037:7-2298146 [100] ..... 479572.035558: nfs4_pnfs_write: error=0 (OK) fileid=00:96:10067193438 fhandle=0xc9992232 offset=20480 count=4585 res=4585 stateid=1:0xd68163a6 layoutstateid=1:0xaa2ed7d2 kworker/u1037:7-2298146 [100] ..... 479572.035558: nfs_set_cache_invalid: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=25065 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:7-2298146 [100] ..... 479572.035558: nfs_refresh_inode_enter: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 kworker/u1037:4-2348084 [225] ..... 479572.035559: nfs4_pnfs_write: error=0 (OK) fileid=00:96:10067193438 fhandle=0x6af4272f offset=20480 count=4585 res=4585 stateid=1:0xd68163a6 layoutstateid=1:0xaa2ed7d2 kworker/u1037:7-2298146 [100] ..... 479572.035559: nfs_set_cache_invalid: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=25065 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:7-2298146 [100] ..... 479572.035559: nfs_refresh_inode_exit: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=25065 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:7-2298146 [100] ..... 479572.035559: nfs_writeback_done: error=4585 fileid=00:96:10067193438 fhandle=0xc9992232 offset=20480 count=4585 res=4585 stable=UNSTABLE verifier=e7a66eedc4f3c318 kworker/u1037:4-2348084 [225] ..... 479572.035559: nfs_set_cache_invalid: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=25065 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:4-2348084 [225] ..... 479572.035560: nfs_refresh_inode_enter: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 kworker/u1037:4-2348084 [225] ..... 479572.035560: nfs_set_cache_invalid: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=25065 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:4-2348084 [225] ..... 479572.035560: nfs_refresh_inode_exit: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=25065 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:4-2348084 [225] ..... 479572.035560: nfs_writeback_done: error=4585 fileid=00:96:10067193438 fhandle=0x6af4272f offset=20480 count=4585 res=4585 stable=UNSTABLE verifier=7fb1042b4dd46a93 oil-localfs-86-727850 [215] ..... 479572.035904: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=25065 newsize=28672 kworker/u1027:1-2369517 [146] ..... 479572.035932: nfs_initiate_write: fileid=00:96:10067193438 fhandle=0xc9992232 offset=24576 count=4096 stable=UNSTABLE kworker/u1027:1-2369517 [146] ..... 479572.035935: nfs_initiate_write: fileid=00:96:10067193438 fhandle=0x6af4272f offset=24576 count=4096 stable=UNSTABLE kworker/u1027:1-2369517 [146] ..... 479572.035936: nfs_initiate_write: fileid=00:96:10067193438 fhandle=0xf88816fa offset=24576 count=4096 stable=UNSTABLE kworker/u1037:4-2348084 [225] ..... 479572.036041: nfs4_pnfs_write: error=0 (OK) fileid=00:96:10067193438 fhandle=0xc9992232 offset=24576 count=4096 res=4096 stateid=1:0xd68163a6 layoutstateid=1:0xaa2ed7d2 kworker/u1037:4-2348084 [225] ..... 479572.036041: nfs_set_cache_invalid: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=28672 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:4-2348084 [225] ..... 479572.036042: nfs_refresh_inode_enter: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 kworker/u1037:4-2348084 [225] ..... 479572.036042: nfs_set_cache_invalid: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=28672 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:4-2348084 [225] ..... 479572.036042: nfs_refresh_inode_exit: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=28672 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:4-2348084 [225] ..... 479572.036043: nfs_writeback_done: error=4096 fileid=00:96:10067193438 fhandle=0xc9992232 offset=24576 count=4096 res=4096 stable=UNSTABLE verifier=e7a66eedc4f3c318 kworker/u1033:6-2344693 [070] ..... 479572.036045: nfs4_pnfs_write: error=0 (OK) fileid=00:96:10067193438 fhandle=0xf88816fa offset=24576 count=4096 res=4096 stateid=1:0xd68163a6 layoutstateid=1:0xaa2ed7d2 kworker/u1033:6-2344693 [070] ..... 479572.036045: nfs_set_cache_invalid: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=28672 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1033:6-2344693 [070] ..... 479572.036046: nfs_refresh_inode_enter: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 kworker/u1033:6-2344693 [070] ..... 479572.036046: nfs_set_cache_invalid: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=28672 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1033:6-2344693 [070] ..... 479572.036046: nfs_refresh_inode_exit: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=28672 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1033:6-2344693 [070] ..... 479572.036047: nfs_writeback_done: error=4096 fileid=00:96:10067193438 fhandle=0xf88816fa offset=24576 count=4096 res=4096 stable=UNSTABLE verifier=a5cd34d9a5d3efdb kworker/u1037:4-2348084 [225] ..... 479572.036052: nfs4_pnfs_write: error=0 (OK) fileid=00:96:10067193438 fhandle=0x6af4272f offset=24576 count=4096 res=4096 stateid=1:0xd68163a6 layoutstateid=1:0xaa2ed7d2 kworker/u1037:4-2348084 [225] ..... 479572.036053: nfs_set_cache_invalid: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=28672 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:4-2348084 [225] ..... 479572.036053: nfs_refresh_inode_enter: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 kworker/u1037:4-2348084 [225] ..... 479572.036053: nfs_set_cache_invalid: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=28672 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:4-2348084 [225] ..... 479572.036053: nfs_refresh_inode_exit: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=28672 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:4-2348084 [225] ..... 479572.036053: nfs_writeback_done: error=4096 fileid=00:96:10067193438 fhandle=0x6af4272f offset=24576 count=4096 res=4096 stable=UNSTABLE verifier=7fb1042b4dd46a93 oil-localfs-86-727850 [215] ..... 479572.036116: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=28672 newsize=30078 kworker/u1027:1-2392846 [150] ..... 479572.036153: nfs_initiate_write: fileid=00:96:10067193438 fhandle=0xc9992232 offset=28672 count=1406 stable=UNSTABLE kworker/u1027:1-2392846 [150] ..... 479572.036156: nfs_initiate_write: fileid=00:96:10067193438 fhandle=0x6af4272f offset=28672 count=1406 stable=UNSTABLE kworker/u1027:1-2392846 [150] ..... 479572.036158: nfs_initiate_write: fileid=00:96:10067193438 fhandle=0xf88816fa offset=28672 count=1406 stable=UNSTABLE kworker/u1033:2-2344691 [197] ..... 479572.036275: nfs4_pnfs_write: error=0 (OK) fileid=00:96:10067193438 fhandle=0xf88816fa offset=28672 count=1406 res=1406 stateid=1:0xd68163a6 layoutstateid=1:0xaa2ed7d2 kworker/u1033:2-2344691 [197] ..... 479572.036276: nfs_set_cache_invalid: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=30078 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1033:2-2344691 [197] ..... 479572.036277: nfs_refresh_inode_enter: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 kworker/u1033:2-2344691 [197] ..... 479572.036277: nfs_set_cache_invalid: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=30078 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1033:2-2344691 [197] ..... 479572.036277: nfs_refresh_inode_exit: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=30078 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1033:2-2344691 [197] ..... 479572.036277: nfs_writeback_done: error=1406 fileid=00:96:10067193438 fhandle=0xf88816fa offset=28672 count=1406 res=1406 stable=UNSTABLE verifier=a5cd34d9a5d3efdb kworker/u1037:7-2298146 [100] ..... 479572.036318: nfs4_pnfs_write: error=0 (OK) fileid=00:96:10067193438 fhandle=0xc9992232 offset=28672 count=1406 res=1406 stateid=1:0xd68163a6 layoutstateid=1:0xaa2ed7d2 kworker/u1037:7-2298146 [100] ..... 479572.036319: nfs_set_cache_invalid: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=30078 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:7-2298146 [100] ..... 479572.036319: nfs_refresh_inode_enter: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 kworker/u1037:7-2298146 [100] ..... 479572.036320: nfs_set_cache_invalid: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=30078 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:7-2298146 [100] ..... 479572.036320: nfs_refresh_inode_exit: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=30078 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:7-2298146 [100] ..... 479572.036320: nfs_writeback_done: error=1406 fileid=00:96:10067193438 fhandle=0xc9992232 offset=28672 count=1406 res=1406 stable=UNSTABLE verifier=e7a66eedc4f3c318 kworker/u1037:7-2298146 [100] ..... 479572.036387: nfs4_pnfs_write: error=0 (OK) fileid=00:96:10067193438 fhandle=0x6af4272f offset=28672 count=1406 res=1406 stateid=1:0xd68163a6 layoutstateid=1:0xaa2ed7d2 kworker/u1037:7-2298146 [100] ..... 479572.036389: nfs_set_cache_invalid: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=30078 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:7-2298146 [100] ..... 479572.036389: nfs_refresh_inode_enter: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 kworker/u1037:7-2298146 [100] ..... 479572.036390: nfs_set_cache_invalid: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=30078 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:7-2298146 [100] ..... 479572.036390: nfs_refresh_inode_exit: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=30078 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:7-2298146 [100] ..... 479572.036390: nfs_writeback_done: error=1406 fileid=00:96:10067193438 fhandle=0x6af4272f offset=28672 count=1406 res=1406 stable=UNSTABLE verifier=7fb1042b4dd46a93 oil-localfs-86-727850 [215] ..... 479572.036835: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=30078 newsize=32768 oil-localfs-86-727850 [215] ..... 479572.037058: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=32768 newsize=35091 oil-localfs-86-727850 [215] ..... 479572.037269: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=35091 newsize=36864 oil-localfs-86-727850 [215] ..... 479572.037481: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=36864 newsize=40104 oil-localfs-86-727850 [215] ..... 479572.037688: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=40104 newsize=40960 oil-localfs-86-727850 [215] ..... 479572.037872: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=40960 newsize=45056 oil-localfs-86-727850 [215] ..... 479572.037875: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=45056 newsize=45117 oil-localfs-86-727850 [215] ..... 479572.038094: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=45117 newsize=49152 oil-localfs-86-727850 [215] ..... 479572.038283: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=49152 newsize=50130 oil-localfs-86-727850 [215] ..... 479572.038486: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=50130 newsize=53248 oil-localfs-86-727850 [215] ..... 479572.038701: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=53248 newsize=55143 oil-localfs-86-727850 [215] ..... 479572.038916: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=55143 newsize=57344 oil-localfs-86-727850 [215] ..... 479572.039094: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=57344 newsize=60156 oil-localfs-86-727850 [215] ..... 479572.039298: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=60156 newsize=61440 oil-localfs-86-727850 [215] ..... 479572.039521: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=61440 newsize=65169 oil-localfs-86-727850 [215] ..... 479572.039721: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=65169 newsize=65536 oil-localfs-86-727850 [215] ..... 479572.039922: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=65536 newsize=69632 oil-localfs-86-727850 [215] ..... 479572.039924: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=69632 newsize=70182 oil-localfs-86-727850 [215] ..... 479572.040135: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=70182 newsize=73728 oil-localfs-86-727850 [215] ..... 479572.040301: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=73728 newsize=75195 oil-localfs-86-727850 [215] ..... 479572.040525: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=75195 newsize=77824 oil-localfs-86-727850 [215] ..... 479572.040723: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=77824 newsize=80208 oil-localfs-86-727850 [215] ..... 479572.040923: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=80208 newsize=81920 oil-localfs-86-727850 [215] ..... 479572.041122: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=81920 newsize=85221 oil-localfs-86-727850 [215] ..... 479572.041324: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=85221 newsize=86016 oil-localfs-86-727850 [215] ..... 479572.041512: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=86016 newsize=90112 oil-localfs-86-727850 [215] ..... 479572.041514: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=90112 newsize=90234 oil-localfs-86-727850 [215] ..... 479572.041731: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=90234 newsize=94208 oil-localfs-86-727850 [215] ..... 479572.041923: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=94208 newsize=95247 oil-localfs-86-727850 [215] ..... 479572.042116: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=95247 newsize=98304 oil-localfs-86-727850 [215] ..... 479572.042308: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=98304 newsize=100260 oil-localfs-86-727850 [215] ..... 479572.042522: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=100260 newsize=102400 oil-localfs-86-727850 [215] ..... 479572.042711: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=102400 newsize=105273 oil-localfs-86-727850 [215] ..... 479572.042918: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=105273 newsize=106496 oil-localfs-86-727850 [215] ..... 479572.043105: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=106496 newsize=110286 oil-localfs-86-727850 [215] ..... 479572.043292: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=110286 newsize=110592 oil-localfs-86-727850 [215] ..... 479572.043505: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=110592 newsize=114688 oil-localfs-86-727850 [215] ..... 479572.043507: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=114688 newsize=115299 oil-localfs-86-727850 [215] ..... 479572.043738: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=115299 newsize=118784 oil-localfs-86-727850 [215] ..... 479572.043925: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=118784 newsize=120312 oil-localfs-86-727850 [215] ..... 479572.044130: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=120312 newsize=122880 oil-localfs-86-727850 [215] ..... 479572.044327: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=122880 newsize=125325 oil-localfs-86-727850 [215] ..... 479572.044533: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=125325 newsize=126976 oil-localfs-86-727850 [215] ..... 479572.044734: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=126976 newsize=130338 oil-localfs-86-727850 [215] ..... 479572.044931: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=130338 newsize=131072 oil-localfs-86-727850 [215] ..... 479572.045105: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=131072 newsize=135168 oil-localfs-86-727850 [215] ..... 479572.045107: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=135168 newsize=135351 oil-localfs-86-727850 [215] ..... 479572.045322: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=135351 newsize=139264 oil-localfs-86-727850 [215] ..... 479572.045523: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=139264 newsize=140364 oil-localfs-86-727850 [215] ..... 479572.045729: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=140364 newsize=143360 oil-localfs-86-727850 [215] ..... 479572.045936: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=143360 newsize=145377 oil-localfs-86-727850 [215] ..... 479572.046143: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=145377 newsize=147456 oil-localfs-86-727850 [215] ..... 479572.046329: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=147456 newsize=150390 oil-localfs-86-727850 [215] ..... 479572.046548: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=150390 newsize=151552 oil-localfs-86-727850 [215] ..... 479572.046736: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=151552 newsize=155403 oil-localfs-86-727850 [215] ..... 479572.046915: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=155403 newsize=155648 oil-localfs-86-727850 [215] ..... 479572.047096: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=155648 newsize=159744 oil-localfs-86-727850 [215] ..... 479572.047098: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=159744 newsize=160416 oil-localfs-86-727850 [215] ..... 479572.047295: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=160416 newsize=163840 oil-localfs-86-727850 [215] ..... 479572.047477: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=163840 newsize=165429 kworker/u1036:9-2181405 [092] ..... 479572.047561: nfs_initiate_write: fileid=00:96:10067193438 fhandle=0xc9992232 offset=28672 count=136757 stable=UNSTABLE kworker/u1036:9-2181405 [092] ..... 479572.047570: nfs_initiate_write: fileid=00:96:10067193438 fhandle=0x6af4272f offset=28672 count=136757 stable=UNSTABLE kworker/u1036:9-2181405 [092] ..... 479572.047576: nfs_initiate_write: fileid=00:96:10067193438 fhandle=0xf88816fa offset=28672 count=136757 stable=UNSTABLE kworker/u1033:2-2344691 [197] ..... 479572.047942: nfs4_pnfs_write: error=0 (OK) fileid=00:96:10067193438 fhandle=0xf88816fa offset=28672 count=136757 res=136757 stateid=1:0xd68163a6 layoutstateid=1:0xaa2ed7d2 kworker/u1033:2-2344691 [197] ..... 479572.047945: nfs_set_cache_invalid: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=165429 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1033:2-2344691 [197] ..... 479572.047946: nfs_refresh_inode_enter: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 kworker/u1033:2-2344691 [197] ..... 479572.047947: nfs_set_cache_invalid: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=165429 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1033:2-2344691 [197] ..... 479572.047947: nfs_refresh_inode_exit: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=165429 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1033:2-2344691 [197] ..... 479572.047947: nfs_writeback_done: error=136757 fileid=00:96:10067193438 fhandle=0xf88816fa offset=28672 count=136757 res=136757 stable=UNSTABLE verifier=a5cd34d9a5d3efdb kworker/u1037:7-2298146 [100] ..... 479572.048038: nfs4_pnfs_write: error=0 (OK) fileid=00:96:10067193438 fhandle=0x6af4272f offset=28672 count=136757 res=136757 stateid=1:0xd68163a6 layoutstateid=1:0xaa2ed7d2 kworker/u1037:7-2298146 [100] ..... 479572.048040: nfs_set_cache_invalid: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=165429 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:7-2298146 [100] ..... 479572.048041: nfs_refresh_inode_enter: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 kworker/u1037:7-2298146 [100] ..... 479572.048042: nfs_set_cache_invalid: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=165429 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:7-2298146 [100] ..... 479572.048042: nfs_refresh_inode_exit: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=165429 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:7-2298146 [100] ..... 479572.048042: nfs_writeback_done: error=136757 fileid=00:96:10067193438 fhandle=0x6af4272f offset=28672 count=136757 res=136757 stable=UNSTABLE verifier=7fb1042b4dd46a93 kworker/u1037:7-2298146 [100] ..... 479572.048174: nfs4_pnfs_write: error=0 (OK) fileid=00:96:10067193438 fhandle=0xc9992232 offset=28672 count=136757 res=136757 stateid=1:0xd68163a6 layoutstateid=1:0xaa2ed7d2 kworker/u1037:7-2298146 [100] ..... 479572.048175: nfs_set_cache_invalid: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=165429 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:7-2298146 [100] ..... 479572.048175: nfs_refresh_inode_enter: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 kworker/u1037:7-2298146 [100] ..... 479572.048175: nfs_set_cache_invalid: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=165429 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:7-2298146 [100] ..... 479572.048175: nfs_refresh_inode_exit: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=165429 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:7-2298146 [100] ..... 479572.048176: nfs_writeback_done: error=136757 fileid=00:96:10067193438 fhandle=0xc9992232 offset=28672 count=136757 res=136757 stable=UNSTABLE verifier=e7a66eedc4f3c318 oil-localfs-86-727850 [215] ..... 479572.048629: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=165429 newsize=167936 kworker/u1036:1-2339253 [216] ..... 479572.048651: nfs_initiate_write: fileid=00:96:10067193438 fhandle=0xc9992232 offset=165429 count=2507 stable=UNSTABLE kworker/u1036:1-2339253 [216] ..... 479572.048654: nfs_initiate_write: fileid=00:96:10067193438 fhandle=0x6af4272f offset=165429 count=2507 stable=UNSTABLE kworker/u1036:1-2339253 [216] ..... 479572.048655: nfs_initiate_write: fileid=00:96:10067193438 fhandle=0xf88816fa offset=165429 count=2507 stable=UNSTABLE kworker/u1037:7-2298146 [100] ..... 479572.048770: nfs4_pnfs_write: error=0 (OK) fileid=00:96:10067193438 fhandle=0x6af4272f offset=165429 count=2507 res=2507 stateid=1:0xd68163a6 layoutstateid=1:0xaa2ed7d2 kworker/u1037:7-2298146 [100] ..... 479572.048771: nfs_set_cache_invalid: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=167936 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:7-2298146 [100] ..... 479572.048771: nfs_refresh_inode_enter: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 kworker/u1037:7-2298146 [100] ..... 479572.048771: nfs_set_cache_invalid: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=167936 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:7-2298146 [100] ..... 479572.048771: nfs_refresh_inode_exit: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=167936 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:7-2298146 [100] ..... 479572.048772: nfs_writeback_done: error=2507 fileid=00:96:10067193438 fhandle=0x6af4272f offset=165429 count=2507 res=2507 stable=UNSTABLE verifier=7fb1042b4dd46a93 kworker/u1037:1-2369493 [230] ..... 479572.048778: nfs4_pnfs_write: error=0 (OK) fileid=00:96:10067193438 fhandle=0xc9992232 offset=165429 count=2507 res=2507 stateid=1:0xd68163a6 layoutstateid=1:0xaa2ed7d2 kworker/u1037:1-2369493 [230] ..... 479572.048779: nfs_set_cache_invalid: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=167936 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:1-2369493 [230] ..... 479572.048779: nfs_refresh_inode_enter: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 kworker/u1037:1-2369493 [230] ..... 479572.048779: nfs_set_cache_invalid: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=167936 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:1-2369493 [230] ..... 479572.048779: nfs_refresh_inode_exit: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=167936 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:1-2369493 [230] ..... 479572.048779: nfs_writeback_done: error=2507 fileid=00:96:10067193438 fhandle=0xc9992232 offset=165429 count=2507 res=2507 stable=UNSTABLE verifier=e7a66eedc4f3c318 kworker/u1033:6-2344693 [070] ..... 479572.048796: nfs4_pnfs_write: error=0 (OK) fileid=00:96:10067193438 fhandle=0xf88816fa offset=165429 count=2507 res=2507 stateid=1:0xd68163a6 layoutstateid=1:0xaa2ed7d2 kworker/u1033:6-2344693 [070] ..... 479572.048797: nfs_set_cache_invalid: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=167936 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1033:6-2344693 [070] ..... 479572.048797: nfs_refresh_inode_enter: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 kworker/u1033:6-2344693 [070] ..... 479572.048798: nfs_set_cache_invalid: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=167936 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1033:6-2344693 [070] ..... 479572.048798: nfs_refresh_inode_exit: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=167936 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1033:6-2344693 [070] ..... 479572.048798: nfs_writeback_done: error=2507 fileid=00:96:10067193438 fhandle=0xf88816fa offset=165429 count=2507 res=2507 stable=UNSTABLE verifier=a5cd34d9a5d3efdb oil-localfs-86-727850 [215] ..... 479572.048828: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=167936 newsize=170442 kworker/u1036:7-2339325 [220] ..... 479572.048836: nfs_initiate_write: fileid=00:96:10067193438 fhandle=0xc9992232 offset=167936 count=2506 stable=UNSTABLE kworker/u1036:7-2339325 [220] ..... 479572.048839: nfs_initiate_write: fileid=00:96:10067193438 fhandle=0x6af4272f offset=167936 count=2506 stable=UNSTABLE kworker/u1036:7-2339325 [220] ..... 479572.048840: nfs_initiate_write: fileid=00:96:10067193438 fhandle=0xf88816fa offset=167936 count=2506 stable=UNSTABLE kworker/u1037:4-2348084 [225] ..... 479572.048959: nfs4_pnfs_write: error=0 (OK) fileid=00:96:10067193438 fhandle=0x6af4272f offset=167936 count=2506 res=2506 stateid=1:0xd68163a6 layoutstateid=1:0xaa2ed7d2 kworker/u1037:4-2348084 [225] ..... 479572.048960: nfs_set_cache_invalid: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=170442 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:4-2348084 [225] ..... 479572.048960: nfs_refresh_inode_enter: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 kworker/u1037:4-2348084 [225] ..... 479572.048961: nfs_set_cache_invalid: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=170442 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:4-2348084 [225] ..... 479572.048961: nfs_refresh_inode_exit: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=170442 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:4-2348084 [225] ..... 479572.048961: nfs_writeback_done: error=2506 fileid=00:96:10067193438 fhandle=0x6af4272f offset=167936 count=2506 res=2506 stable=UNSTABLE verifier=7fb1042b4dd46a93 kworker/u1037:1-2369493 [230] ..... 479572.049095: nfs4_pnfs_write: error=0 (OK) fileid=00:96:10067193438 fhandle=0xc9992232 offset=167936 count=2506 res=2506 stateid=1:0xd68163a6 layoutstateid=1:0xaa2ed7d2 kworker/u1037:1-2369493 [230] ..... 479572.049096: nfs_set_cache_invalid: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=170442 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:1-2369493 [230] ..... 479572.049096: nfs_refresh_inode_enter: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 kworker/u1037:1-2369493 [230] ..... 479572.049096: nfs_set_cache_invalid: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=170442 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:1-2369493 [230] ..... 479572.049097: nfs_refresh_inode_exit: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=170442 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:1-2369493 [230] ..... 479572.049097: nfs_writeback_done: error=2506 fileid=00:96:10067193438 fhandle=0xc9992232 offset=167936 count=2506 res=2506 stable=UNSTABLE verifier=e7a66eedc4f3c318 kworker/u1033:6-2344693 [070] ..... 479572.049131: nfs4_pnfs_write: error=0 (OK) fileid=00:96:10067193438 fhandle=0xf88816fa offset=167936 count=2506 res=2506 stateid=1:0xd68163a6 layoutstateid=1:0xaa2ed7d2 kworker/u1033:6-2344693 [070] ..... 479572.049132: nfs_set_cache_invalid: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=170442 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1033:6-2344693 [070] ..... 479572.049132: nfs_refresh_inode_enter: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 kworker/u1033:6-2344693 [070] ..... 479572.049133: nfs_set_cache_invalid: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=170442 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1033:6-2344693 [070] ..... 479572.049133: nfs_refresh_inode_exit: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=170442 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1033:6-2344693 [070] ..... 479572.049133: nfs_writeback_done: error=2506 fileid=00:96:10067193438 fhandle=0xf88816fa offset=167936 count=2506 res=2506 stable=UNSTABLE verifier=a5cd34d9a5d3efdb oil-localfs-86-727850 [215] ..... 479572.049579: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=170442 newsize=172032 kworker/u1036:1-2369512 [218] ..... 479572.049590: nfs_initiate_write: fileid=00:96:10067193438 fhandle=0xc9992232 offset=167936 count=4096 stable=UNSTABLE kworker/u1036:1-2369512 [218] ..... 479572.049593: nfs_initiate_write: fileid=00:96:10067193438 fhandle=0x6af4272f offset=167936 count=4096 stable=UNSTABLE kworker/u1036:1-2369512 [218] ..... 479572.049595: nfs_initiate_write: fileid=00:96:10067193438 fhandle=0xf88816fa offset=167936 count=4096 stable=UNSTABLE kworker/u1037:7-2298146 [100] ..... 479572.049708: nfs4_pnfs_write: error=0 (OK) fileid=00:96:10067193438 fhandle=0x6af4272f offset=167936 count=4096 res=4096 stateid=1:0xd68163a6 layoutstateid=1:0xaa2ed7d2 kworker/u1037:7-2298146 [100] ..... 479572.049709: nfs_set_cache_invalid: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=172032 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:7-2298146 [100] ..... 479572.049709: nfs_refresh_inode_enter: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 kworker/u1037:7-2298146 [100] ..... 479572.049710: nfs_set_cache_invalid: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=172032 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:7-2298146 [100] ..... 479572.049710: nfs_refresh_inode_exit: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=172032 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:7-2298146 [100] ..... 479572.049711: nfs_writeback_done: error=4096 fileid=00:96:10067193438 fhandle=0x6af4272f offset=167936 count=4096 res=4096 stable=UNSTABLE verifier=7fb1042b4dd46a93 kworker/u1037:7-2298146 [100] ..... 479572.049724: nfs4_pnfs_write: error=0 (OK) fileid=00:96:10067193438 fhandle=0xc9992232 offset=167936 count=4096 res=4096 stateid=1:0xd68163a6 layoutstateid=1:0xaa2ed7d2 kworker/u1037:7-2298146 [100] ..... 479572.049725: nfs_set_cache_invalid: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=172032 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:7-2298146 [100] ..... 479572.049725: nfs_refresh_inode_enter: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 kworker/u1037:7-2298146 [100] ..... 479572.049725: nfs_set_cache_invalid: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=172032 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:7-2298146 [100] ..... 479572.049725: nfs_refresh_inode_exit: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=172032 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:7-2298146 [100] ..... 479572.049725: nfs_writeback_done: error=4096 fileid=00:96:10067193438 fhandle=0xc9992232 offset=167936 count=4096 res=4096 stable=UNSTABLE verifier=e7a66eedc4f3c318 kworker/u1033:6-2344693 [070] ..... 479572.049728: nfs4_pnfs_write: error=0 (OK) fileid=00:96:10067193438 fhandle=0xf88816fa offset=167936 count=4096 res=4096 stateid=1:0xd68163a6 layoutstateid=1:0xaa2ed7d2 kworker/u1033:6-2344693 [070] ..... 479572.049729: nfs_set_cache_invalid: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=172032 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1033:6-2344693 [070] ..... 479572.049730: nfs_refresh_inode_enter: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 kworker/u1033:6-2344693 [070] ..... 479572.049731: nfs_set_cache_invalid: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=172032 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1033:6-2344693 [070] ..... 479572.049731: nfs_refresh_inode_exit: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=172032 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1033:6-2344693 [070] ..... 479572.049731: nfs_writeback_done: error=4096 fileid=00:96:10067193438 fhandle=0xf88816fa offset=167936 count=4096 res=4096 stable=UNSTABLE verifier=a5cd34d9a5d3efdb oil-localfs-86-727850 [215] ..... 479572.049779: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=172032 newsize=175455 kworker/u1036:1-2339253 [216] ..... 479572.049794: nfs_initiate_write: fileid=00:96:10067193438 fhandle=0xc9992232 offset=172032 count=3423 stable=UNSTABLE kworker/u1036:1-2339253 [216] ..... 479572.049796: nfs_initiate_write: fileid=00:96:10067193438 fhandle=0x6af4272f offset=172032 count=3423 stable=UNSTABLE kworker/u1036:1-2339253 [216] ..... 479572.049800: nfs_initiate_write: fileid=00:96:10067193438 fhandle=0xf88816fa offset=172032 count=3423 stable=UNSTABLE kworker/u1037:7-2298146 [100] ..... 479572.049943: nfs4_pnfs_write: error=0 (OK) fileid=00:96:10067193438 fhandle=0xc9992232 offset=172032 count=3423 res=3423 stateid=1:0xd68163a6 layoutstateid=1:0xaa2ed7d2 kworker/u1037:7-2298146 [100] ..... 479572.049944: nfs_set_cache_invalid: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=175455 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:7-2298146 [100] ..... 479572.049944: nfs_refresh_inode_enter: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 kworker/u1037:7-2298146 [100] ..... 479572.049944: nfs_set_cache_invalid: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=175455 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:7-2298146 [100] ..... 479572.049945: nfs_refresh_inode_exit: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=175455 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:7-2298146 [100] ..... 479572.049945: nfs_writeback_done: error=3423 fileid=00:96:10067193438 fhandle=0xc9992232 offset=172032 count=3423 res=3423 stable=UNSTABLE verifier=e7a66eedc4f3c318 kworker/u1033:1-2209763 [064] ..... 479572.049954: nfs4_pnfs_write: error=0 (OK) fileid=00:96:10067193438 fhandle=0xf88816fa offset=172032 count=3423 res=3423 stateid=1:0xd68163a6 layoutstateid=1:0xaa2ed7d2 kworker/u1033:1-2209763 [064] ..... 479572.049955: nfs_set_cache_invalid: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=175455 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1033:1-2209763 [064] ..... 479572.049955: nfs_refresh_inode_enter: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 kworker/u1033:1-2209763 [064] ..... 479572.049956: nfs_set_cache_invalid: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=175455 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1033:1-2209763 [064] ..... 479572.049956: nfs_refresh_inode_exit: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=175455 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1033:1-2209763 [064] ..... 479572.049956: nfs_writeback_done: error=3423 fileid=00:96:10067193438 fhandle=0xf88816fa offset=172032 count=3423 res=3423 stable=UNSTABLE verifier=a5cd34d9a5d3efdb kworker/u1037:7-2298146 [100] ..... 479572.049976: nfs4_pnfs_write: error=0 (OK) fileid=00:96:10067193438 fhandle=0x6af4272f offset=172032 count=3423 res=3423 stateid=1:0xd68163a6 layoutstateid=1:0xaa2ed7d2 kworker/u1037:7-2298146 [100] ..... 479572.049976: nfs_set_cache_invalid: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=175455 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:7-2298146 [100] ..... 479572.049977: nfs_refresh_inode_enter: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 kworker/u1037:7-2298146 [100] ..... 479572.049977: nfs_set_cache_invalid: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=175455 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:7-2298146 [100] ..... 479572.049977: nfs_refresh_inode_exit: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=175455 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:7-2298146 [100] ..... 479572.049977: nfs_writeback_done: error=3423 fileid=00:96:10067193438 fhandle=0x6af4272f offset=172032 count=3423 res=3423 stable=UNSTABLE verifier=7fb1042b4dd46a93 oil-localfs-86-727850 [215] ..... 479572.050224: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=175455 newsize=176128 oil-localfs-86-727850 [215] ..... 479572.050391: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=176128 newsize=180224 oil-localfs-86-727850 [215] ..... 479572.050393: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=180224 newsize=180468 oil-localfs-86-727850 [215] ..... 479572.050619: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=180468 newsize=184320 oil-localfs-86-727850 [215] ..... 479572.050797: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=184320 newsize=185481 oil-localfs-86-727850 [215] ..... 479572.050984: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=185481 newsize=188416 oil-localfs-86-727850 [215] ..... 479572.051172: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=188416 newsize=190494 oil-localfs-86-727850 [215] ..... 479572.051363: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=190494 newsize=192512 oil-localfs-86-727850 [215] ..... 479572.051529: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=192512 newsize=195507 oil-localfs-86-727850 [215] ..... 479572.051716: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=195507 newsize=196608 oil-localfs-86-727850 [215] ..... 479572.051891: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=196608 newsize=200520 oil-localfs-86-727850 [215] ..... 479572.052054: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=200520 newsize=200704 oil-localfs-86-727850 [215] ..... 479572.052238: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=200704 newsize=204800 oil-localfs-86-727850 [215] ..... 479572.052240: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=204800 newsize=205533 oil-localfs-86-727850 [215] ..... 479572.052448: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=205533 newsize=208896 kworker/u1027:1-2286620 [017] ..... 479572.052495: nfs_initiate_write: fileid=00:96:10067193438 fhandle=0xc9992232 offset=175455 count=33441 stable=UNSTABLE kworker/u1027:1-2286620 [017] ..... 479572.052499: nfs_initiate_write: fileid=00:96:10067193438 fhandle=0x6af4272f offset=175455 count=33441 stable=UNSTABLE kworker/u1027:1-2286620 [017] ..... 479572.052501: nfs_initiate_write: fileid=00:96:10067193438 fhandle=0xf88816fa offset=175455 count=33441 stable=UNSTABLE oil-localfs-86-727850 [215] ..... 479572.052617: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=208896 newsize=210546 kworker/u1037:4-2348084 [225] ..... 479572.052662: nfs4_pnfs_write: error=0 (OK) fileid=00:96:10067193438 fhandle=0xc9992232 offset=175455 count=33441 res=33441 stateid=1:0xd68163a6 layoutstateid=1:0xaa2ed7d2 kworker/u1037:4-2348084 [225] ..... 479572.052663: nfs_set_cache_invalid: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=210546 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:4-2348084 [225] ..... 479572.052663: nfs_writeback_done: error=33441 fileid=00:96:10067193438 fhandle=0xc9992232 offset=175455 count=33441 res=33441 stable=UNSTABLE verifier=e7a66eedc4f3c318 kworker/u1033:6-2344693 [070] ..... 479572.052672: nfs4_pnfs_write: error=0 (OK) fileid=00:96:10067193438 fhandle=0xf88816fa offset=175455 count=33441 res=33441 stateid=1:0xd68163a6 layoutstateid=1:0xaa2ed7d2 kworker/u1033:6-2344693 [070] ..... 479572.052673: nfs_set_cache_invalid: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=210546 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1033:6-2344693 [070] ..... 479572.052674: nfs_writeback_done: error=33441 fileid=00:96:10067193438 fhandle=0xf88816fa offset=175455 count=33441 res=33441 stable=UNSTABLE verifier=a5cd34d9a5d3efdb kworker/u1027:5-2369633 [022] ..... 479572.052691: nfs_initiate_write: fileid=00:96:10067193438 fhandle=0xc9992232 offset=208896 count=1650 stable=UNSTABLE kworker/u1027:5-2369633 [022] ..... 479572.052695: nfs_initiate_write: fileid=00:96:10067193438 fhandle=0x6af4272f offset=208896 count=1650 stable=UNSTABLE kworker/u1027:5-2369633 [022] ..... 479572.052696: nfs_initiate_write: fileid=00:96:10067193438 fhandle=0xf88816fa offset=208896 count=1650 stable=UNSTABLE kworker/u1037:4-2348084 [225] ..... 479572.052700: nfs4_pnfs_write: error=0 (OK) fileid=00:96:10067193438 fhandle=0x6af4272f offset=175455 count=33441 res=33441 stateid=1:0xd68163a6 layoutstateid=1:0xaa2ed7d2 kworker/u1037:4-2348084 [225] ..... 479572.052700: nfs_set_cache_invalid: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=210546 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:4-2348084 [225] ..... 479572.052701: nfs_writeback_done: error=33441 fileid=00:96:10067193438 fhandle=0x6af4272f offset=175455 count=33441 res=33441 stable=UNSTABLE verifier=7fb1042b4dd46a93 kworker/u1033:2-2344691 [197] ..... 479572.052788: nfs4_pnfs_write: error=0 (OK) fileid=00:96:10067193438 fhandle=0xf88816fa offset=208896 count=1650 res=1650 stateid=1:0xd68163a6 layoutstateid=1:0xaa2ed7d2 kworker/u1033:2-2344691 [197] ..... 479572.052788: nfs_set_cache_invalid: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=210546 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1033:2-2344691 [197] ..... 479572.052789: nfs_refresh_inode_enter: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 kworker/u1033:2-2344691 [197] ..... 479572.052789: nfs_set_cache_invalid: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=210546 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1033:2-2344691 [197] ..... 479572.052789: nfs_refresh_inode_exit: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=210546 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1033:2-2344691 [197] ..... 479572.052790: nfs_writeback_done: error=1650 fileid=00:96:10067193438 fhandle=0xf88816fa offset=208896 count=1650 res=1650 stable=UNSTABLE verifier=a5cd34d9a5d3efdb kworker/u1037:1-2369493 [230] ..... 479572.052802: nfs4_pnfs_write: error=0 (OK) fileid=00:96:10067193438 fhandle=0xc9992232 offset=208896 count=1650 res=1650 stateid=1:0xd68163a6 layoutstateid=1:0xaa2ed7d2 kworker/u1037:1-2369493 [230] ..... 479572.052802: nfs_set_cache_invalid: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=210546 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:1-2369493 [230] ..... 479572.052803: nfs_refresh_inode_enter: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 kworker/u1037:1-2369493 [230] ..... 479572.052803: nfs_set_cache_invalid: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=210546 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:1-2369493 [230] ..... 479572.052803: nfs_refresh_inode_exit: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=210546 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:1-2369493 [230] ..... 479572.052804: nfs_writeback_done: error=1650 fileid=00:96:10067193438 fhandle=0xc9992232 offset=208896 count=1650 res=1650 stable=UNSTABLE verifier=e7a66eedc4f3c318 kworker/u1037:4-2348084 [225] ..... 479572.052804: nfs4_pnfs_write: error=0 (OK) fileid=00:96:10067193438 fhandle=0x6af4272f offset=208896 count=1650 res=1650 stateid=1:0xd68163a6 layoutstateid=1:0xaa2ed7d2 kworker/u1037:4-2348084 [225] ..... 479572.052804: nfs_set_cache_invalid: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=210546 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:4-2348084 [225] ..... 479572.052805: nfs_refresh_inode_enter: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 kworker/u1037:4-2348084 [225] ..... 479572.052805: nfs_set_cache_invalid: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=210546 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:4-2348084 [225] ..... 479572.052805: nfs_refresh_inode_exit: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=210546 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:4-2348084 [225] ..... 479572.052805: nfs_writeback_done: error=1650 fileid=00:96:10067193438 fhandle=0x6af4272f offset=208896 count=1650 res=1650 stable=UNSTABLE verifier=7fb1042b4dd46a93 oil-localfs-86-727850 [215] ..... 479572.053111: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=210546 newsize=212992 kworker/u1027:1-2392847 [151] ..... 479572.053134: nfs_initiate_write: fileid=00:96:10067193438 fhandle=0xc9992232 offset=208896 count=4096 stable=UNSTABLE kworker/u1027:1-2392847 [151] ..... 479572.053137: nfs_initiate_write: fileid=00:96:10067193438 fhandle=0x6af4272f offset=208896 count=4096 stable=UNSTABLE kworker/u1027:1-2392847 [151] ..... 479572.053138: nfs_initiate_write: fileid=00:96:10067193438 fhandle=0xf88816fa offset=208896 count=4096 stable=UNSTABLE kworker/u1037:4-2348084 [225] ..... 479572.053247: nfs4_pnfs_write: error=0 (OK) fileid=00:96:10067193438 fhandle=0xc9992232 offset=208896 count=4096 res=4096 stateid=1:0xd68163a6 layoutstateid=1:0xaa2ed7d2 kworker/u1037:4-2348084 [225] ..... 479572.053247: nfs_set_cache_invalid: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=212992 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:4-2348084 [225] ..... 479572.053248: nfs_refresh_inode_enter: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 kworker/u1037:4-2348084 [225] ..... 479572.053248: nfs_set_cache_invalid: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=212992 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:4-2348084 [225] ..... 479572.053249: nfs_refresh_inode_exit: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=212992 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:4-2348084 [225] ..... 479572.053249: nfs_writeback_done: error=4096 fileid=00:96:10067193438 fhandle=0xc9992232 offset=208896 count=4096 res=4096 stable=UNSTABLE verifier=e7a66eedc4f3c318 kworker/u1033:1-2209763 [064] ..... 479572.053255: nfs4_pnfs_write: error=0 (OK) fileid=00:96:10067193438 fhandle=0xf88816fa offset=208896 count=4096 res=4096 stateid=1:0xd68163a6 layoutstateid=1:0xaa2ed7d2 kworker/u1033:1-2209763 [064] ..... 479572.053255: nfs_set_cache_invalid: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=212992 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1033:1-2209763 [064] ..... 479572.053256: nfs_refresh_inode_enter: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 kworker/u1037:1-2369493 [230] ..... 479572.053256: nfs4_pnfs_write: error=0 (OK) fileid=00:96:10067193438 fhandle=0x6af4272f offset=208896 count=4096 res=4096 stateid=1:0xd68163a6 layoutstateid=1:0xaa2ed7d2 kworker/u1033:1-2209763 [064] ..... 479572.053256: nfs_set_cache_invalid: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=212992 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1033:1-2209763 [064] ..... 479572.053257: nfs_refresh_inode_exit: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=212992 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1033:1-2209763 [064] ..... 479572.053257: nfs_writeback_done: error=4096 fileid=00:96:10067193438 fhandle=0xf88816fa offset=208896 count=4096 res=4096 stable=UNSTABLE verifier=a5cd34d9a5d3efdb kworker/u1037:1-2369493 [230] ..... 479572.053257: nfs_set_cache_invalid: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=212992 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:1-2369493 [230] ..... 479572.053257: nfs_refresh_inode_enter: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 kworker/u1037:1-2369493 [230] ..... 479572.053258: nfs_set_cache_invalid: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=212992 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:1-2369493 [230] ..... 479572.053258: nfs_refresh_inode_exit: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=212992 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:1-2369493 [230] ..... 479572.053258: nfs_writeback_done: error=4096 fileid=00:96:10067193438 fhandle=0x6af4272f offset=208896 count=4096 res=4096 stable=UNSTABLE verifier=7fb1042b4dd46a93 oil-localfs-86-727850 [215] ..... 479572.053377: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=212992 newsize=215559 kworker/u1027:1-2286624 [148] ..... 479572.053402: nfs_initiate_write: fileid=00:96:10067193438 fhandle=0xc9992232 offset=212992 count=2567 stable=UNSTABLE kworker/u1027:1-2286624 [148] ..... 479572.053406: nfs_initiate_write: fileid=00:96:10067193438 fhandle=0x6af4272f offset=212992 count=2567 stable=UNSTABLE kworker/u1027:1-2286624 [148] ..... 479572.053408: nfs_initiate_write: fileid=00:96:10067193438 fhandle=0xf88816fa offset=212992 count=2567 stable=UNSTABLE kworker/u1033:6-2344693 [070] ..... 479572.053523: nfs4_pnfs_write: error=0 (OK) fileid=00:96:10067193438 fhandle=0xf88816fa offset=212992 count=2567 res=2567 stateid=1:0xd68163a6 layoutstateid=1:0xaa2ed7d2 kworker/u1033:6-2344693 [070] ..... 479572.053523: nfs_set_cache_invalid: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=215559 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1033:6-2344693 [070] ..... 479572.053524: nfs_refresh_inode_enter: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 kworker/u1033:6-2344693 [070] ..... 479572.053524: nfs_set_cache_invalid: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=215559 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1033:6-2344693 [070] ..... 479572.053524: nfs_refresh_inode_exit: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=215559 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1033:6-2344693 [070] ..... 479572.053524: nfs_writeback_done: error=2567 fileid=00:96:10067193438 fhandle=0xf88816fa offset=212992 count=2567 res=2567 stable=UNSTABLE verifier=a5cd34d9a5d3efdb kworker/u1037:7-2298146 [100] ..... 479572.053527: nfs4_pnfs_write: error=0 (OK) fileid=00:96:10067193438 fhandle=0xc9992232 offset=212992 count=2567 res=2567 stateid=1:0xd68163a6 layoutstateid=1:0xaa2ed7d2 kworker/u1037:7-2298146 [100] ..... 479572.053527: nfs_set_cache_invalid: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=215559 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:7-2298146 [100] ..... 479572.053528: nfs_refresh_inode_enter: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 kworker/u1037:7-2298146 [100] ..... 479572.053528: nfs_set_cache_invalid: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=215559 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:7-2298146 [100] ..... 479572.053528: nfs_refresh_inode_exit: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=215559 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:7-2298146 [100] ..... 479572.053529: nfs_writeback_done: error=2567 fileid=00:96:10067193438 fhandle=0xc9992232 offset=212992 count=2567 res=2567 stable=UNSTABLE verifier=e7a66eedc4f3c318 kworker/u1037:7-2298146 [100] ..... 479572.053554: nfs4_pnfs_write: error=0 (OK) fileid=00:96:10067193438 fhandle=0x6af4272f offset=212992 count=2567 res=2567 stateid=1:0xd68163a6 layoutstateid=1:0xaa2ed7d2 kworker/u1037:7-2298146 [100] ..... 479572.053554: nfs_set_cache_invalid: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=215559 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:7-2298146 [100] ..... 479572.053555: nfs_refresh_inode_enter: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 kworker/u1037:7-2298146 [100] ..... 479572.053555: nfs_set_cache_invalid: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=215559 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:7-2298146 [100] ..... 479572.053555: nfs_refresh_inode_exit: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=215559 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:7-2298146 [100] ..... 479572.053555: nfs_writeback_done: error=2567 fileid=00:96:10067193438 fhandle=0x6af4272f offset=212992 count=2567 res=2567 stable=UNSTABLE verifier=7fb1042b4dd46a93 oil-localfs-86-727850 [215] ..... 479572.053789: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=215559 newsize=217088 kworker/u1036:0-2339252 [222] ..... 479572.053806: nfs_initiate_write: fileid=00:96:10067193438 fhandle=0xc9992232 offset=212992 count=4096 stable=UNSTABLE kworker/u1036:0-2339252 [222] ..... 479572.053809: nfs_initiate_write: fileid=00:96:10067193438 fhandle=0x6af4272f offset=212992 count=4096 stable=UNSTABLE kworker/u1036:0-2339252 [222] ..... 479572.053810: nfs_initiate_write: fileid=00:96:10067193438 fhandle=0xf88816fa offset=212992 count=4096 stable=UNSTABLE kworker/u1037:4-2348084 [225] ..... 479572.053919: nfs4_pnfs_write: error=0 (OK) fileid=00:96:10067193438 fhandle=0xc9992232 offset=212992 count=4096 res=4096 stateid=1:0xd68163a6 layoutstateid=1:0xaa2ed7d2 kworker/u1037:4-2348084 [225] ..... 479572.053920: nfs_set_cache_invalid: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=217088 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:4-2348084 [225] ..... 479572.053920: nfs_refresh_inode_enter: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 kworker/u1037:4-2348084 [225] ..... 479572.053920: nfs_set_cache_invalid: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=217088 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1033:1-2209763 [064] ..... 479572.053920: nfs4_pnfs_write: error=0 (OK) fileid=00:96:10067193438 fhandle=0xf88816fa offset=212992 count=4096 res=4096 stateid=1:0xd68163a6 layoutstateid=1:0xaa2ed7d2 kworker/u1037:4-2348084 [225] ..... 479572.053921: nfs_refresh_inode_exit: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=217088 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:4-2348084 [225] ..... 479572.053921: nfs_writeback_done: error=4096 fileid=00:96:10067193438 fhandle=0xc9992232 offset=212992 count=4096 res=4096 stable=UNSTABLE verifier=e7a66eedc4f3c318 kworker/u1033:1-2209763 [064] ..... 479572.053921: nfs_set_cache_invalid: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=217088 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1033:1-2209763 [064] ..... 479572.053921: nfs_refresh_inode_enter: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 kworker/u1033:1-2209763 [064] ..... 479572.053922: nfs_set_cache_invalid: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=217088 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1033:1-2209763 [064] ..... 479572.053922: nfs_refresh_inode_exit: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=217088 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1033:1-2209763 [064] ..... 479572.053922: nfs_writeback_done: error=4096 fileid=00:96:10067193438 fhandle=0xf88816fa offset=212992 count=4096 res=4096 stable=UNSTABLE verifier=a5cd34d9a5d3efdb kworker/u1037:4-2348084 [225] ..... 479572.053933: nfs4_pnfs_write: error=0 (OK) fileid=00:96:10067193438 fhandle=0x6af4272f offset=212992 count=4096 res=4096 stateid=1:0xd68163a6 layoutstateid=1:0xaa2ed7d2 kworker/u1037:4-2348084 [225] ..... 479572.053934: nfs_set_cache_invalid: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=217088 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:4-2348084 [225] ..... 479572.053934: nfs_refresh_inode_enter: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 kworker/u1037:4-2348084 [225] ..... 479572.053935: nfs_set_cache_invalid: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=217088 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:4-2348084 [225] ..... 479572.053935: nfs_refresh_inode_exit: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=217088 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:4-2348084 [225] ..... 479572.053935: nfs_writeback_done: error=4096 fileid=00:96:10067193438 fhandle=0x6af4272f offset=212992 count=4096 res=4096 stable=UNSTABLE verifier=7fb1042b4dd46a93 oil-localfs-86-727850 [215] ..... 479572.053987: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=217088 newsize=220572 kworker/u1036:8-2339326 [088] ..... 479572.054008: nfs_initiate_write: fileid=00:96:10067193438 fhandle=0xc9992232 offset=217088 count=3484 stable=UNSTABLE kworker/u1036:8-2339326 [088] ..... 479572.054011: nfs_initiate_write: fileid=00:96:10067193438 fhandle=0x6af4272f offset=217088 count=3484 stable=UNSTABLE kworker/u1036:8-2339326 [088] ..... 479572.054013: nfs_initiate_write: fileid=00:96:10067193438 fhandle=0xf88816fa offset=217088 count=3484 stable=UNSTABLE kworker/u1037:1-2369493 [230] ..... 479572.054142: nfs4_pnfs_write: error=0 (OK) fileid=00:96:10067193438 fhandle=0xc9992232 offset=217088 count=3484 res=3484 stateid=1:0xd68163a6 layoutstateid=1:0xaa2ed7d2 kworker/u1037:1-2369493 [230] ..... 479572.054143: nfs_set_cache_invalid: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=220572 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:1-2369493 [230] ..... 479572.054143: nfs_refresh_inode_enter: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 kworker/u1037:1-2369493 [230] ..... 479572.054144: nfs_set_cache_invalid: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=220572 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:1-2369493 [230] ..... 479572.054144: nfs_refresh_inode_exit: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=220572 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:1-2369493 [230] ..... 479572.054144: nfs_writeback_done: error=3484 fileid=00:96:10067193438 fhandle=0xc9992232 offset=217088 count=3484 res=3484 stable=UNSTABLE verifier=e7a66eedc4f3c318 kworker/u1033:6-2344693 [070] ..... 479572.054145: nfs4_pnfs_write: error=0 (OK) fileid=00:96:10067193438 fhandle=0xf88816fa offset=217088 count=3484 res=3484 stateid=1:0xd68163a6 layoutstateid=1:0xaa2ed7d2 kworker/u1033:6-2344693 [070] ..... 479572.054145: nfs_set_cache_invalid: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=220572 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1033:6-2344693 [070] ..... 479572.054145: nfs_refresh_inode_enter: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 kworker/u1033:6-2344693 [070] ..... 479572.054146: nfs_set_cache_invalid: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=220572 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1033:6-2344693 [070] ..... 479572.054146: nfs_refresh_inode_exit: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=220572 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1033:6-2344693 [070] ..... 479572.054146: nfs_writeback_done: error=3484 fileid=00:96:10067193438 fhandle=0xf88816fa offset=217088 count=3484 res=3484 stable=UNSTABLE verifier=a5cd34d9a5d3efdb kworker/u1037:1-2369493 [230] ..... 479572.054154: nfs4_pnfs_write: error=0 (OK) fileid=00:96:10067193438 fhandle=0x6af4272f offset=217088 count=3484 res=3484 stateid=1:0xd68163a6 layoutstateid=1:0xaa2ed7d2 kworker/u1037:1-2369493 [230] ..... 479572.054154: nfs_set_cache_invalid: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=220572 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:1-2369493 [230] ..... 479572.054155: nfs_refresh_inode_enter: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 kworker/u1037:1-2369493 [230] ..... 479572.054155: nfs_set_cache_invalid: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=220572 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:1-2369493 [230] ..... 479572.054155: nfs_refresh_inode_exit: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=220572 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:1-2369493 [230] ..... 479572.054155: nfs_writeback_done: error=3484 fileid=00:96:10067193438 fhandle=0x6af4272f offset=217088 count=3484 res=3484 stable=UNSTABLE verifier=7fb1042b4dd46a93 oil-localfs-86-727850 [215] ..... 479572.054405: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=220572 newsize=221184 kworker/u1036:1-2297875 [217] ..... 479572.054418: nfs_initiate_write: fileid=00:96:10067193438 fhandle=0xc9992232 offset=220572 count=612 stable=UNSTABLE kworker/u1036:1-2297875 [217] ..... 479572.054420: nfs_initiate_write: fileid=00:96:10067193438 fhandle=0x6af4272f offset=220572 count=612 stable=UNSTABLE kworker/u1036:1-2297875 [217] ..... 479572.054422: nfs_initiate_write: fileid=00:96:10067193438 fhandle=0xf88816fa offset=220572 count=612 stable=UNSTABLE kworker/u1037:7-2298146 [100] ..... 479572.054522: nfs4_pnfs_write: error=0 (OK) fileid=00:96:10067193438 fhandle=0xc9992232 offset=220572 count=612 res=612 stateid=1:0xd68163a6 layoutstateid=1:0xaa2ed7d2 kworker/u1037:7-2298146 [100] ..... 479572.054523: nfs_set_cache_invalid: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=221184 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:7-2298146 [100] ..... 479572.054524: nfs_refresh_inode_enter: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 kworker/u1037:7-2298146 [100] ..... 479572.054524: nfs_set_cache_invalid: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=221184 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:7-2298146 [100] ..... 479572.054524: nfs_refresh_inode_exit: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=221184 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:7-2298146 [100] ..... 479572.054525: nfs_writeback_done: error=612 fileid=00:96:10067193438 fhandle=0xc9992232 offset=220572 count=612 res=612 stable=UNSTABLE verifier=e7a66eedc4f3c318 kworker/u1037:4-2348084 [225] ..... 479572.054527: nfs4_pnfs_write: error=0 (OK) fileid=00:96:10067193438 fhandle=0x6af4272f offset=220572 count=612 res=612 stateid=1:0xd68163a6 layoutstateid=1:0xaa2ed7d2 kworker/u1037:4-2348084 [225] ..... 479572.054528: nfs_set_cache_invalid: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=221184 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:4-2348084 [225] ..... 479572.054528: nfs_refresh_inode_enter: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 kworker/u1037:4-2348084 [225] ..... 479572.054528: nfs_set_cache_invalid: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=221184 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:4-2348084 [225] ..... 479572.054528: nfs_refresh_inode_exit: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=221184 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:4-2348084 [225] ..... 479572.054528: nfs_writeback_done: error=612 fileid=00:96:10067193438 fhandle=0x6af4272f offset=220572 count=612 res=612 stable=UNSTABLE verifier=7fb1042b4dd46a93 kworker/u1033:1-2209763 [064] ..... 479572.054537: nfs4_pnfs_write: error=0 (OK) fileid=00:96:10067193438 fhandle=0xf88816fa offset=220572 count=612 res=612 stateid=1:0xd68163a6 layoutstateid=1:0xaa2ed7d2 kworker/u1033:1-2209763 [064] ..... 479572.054538: nfs_set_cache_invalid: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=221184 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1033:1-2209763 [064] ..... 479572.054538: nfs_refresh_inode_enter: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 kworker/u1033:1-2209763 [064] ..... 479572.054538: nfs_set_cache_invalid: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=221184 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1033:1-2209763 [064] ..... 479572.054539: nfs_refresh_inode_exit: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=221184 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1033:1-2209763 [064] ..... 479572.054539: nfs_writeback_done: error=612 fileid=00:96:10067193438 fhandle=0xf88816fa offset=220572 count=612 res=612 stable=UNSTABLE verifier=a5cd34d9a5d3efdb oil-localfs-86-727850 [215] ..... 479572.054581: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=221184 newsize=225280 oil-localfs-86-727850 [215] ..... 479572.054584: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=225280 newsize=225585 kworker/u1036:0-2339252 [217] ..... 479572.054622: nfs_initiate_write: fileid=00:96:10067193438 fhandle=0xc9992232 offset=221184 count=4401 stable=UNSTABLE kworker/u1036:0-2339252 [217] ..... 479572.054624: nfs_initiate_write: fileid=00:96:10067193438 fhandle=0x6af4272f offset=221184 count=4401 stable=UNSTABLE kworker/u1036:0-2339252 [217] ..... 479572.054626: nfs_initiate_write: fileid=00:96:10067193438 fhandle=0xf88816fa offset=221184 count=4401 stable=UNSTABLE kworker/u1037:4-2348084 [225] ..... 479572.054752: nfs4_pnfs_write: error=0 (OK) fileid=00:96:10067193438 fhandle=0x6af4272f offset=221184 count=4401 res=4401 stateid=1:0xd68163a6 layoutstateid=1:0xaa2ed7d2 kworker/u1037:4-2348084 [225] ..... 479572.054753: nfs_set_cache_invalid: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=225585 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:4-2348084 [225] ..... 479572.054753: nfs_refresh_inode_enter: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 kworker/u1037:4-2348084 [225] ..... 479572.054753: nfs_set_cache_invalid: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=225585 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:4-2348084 [225] ..... 479572.054753: nfs_refresh_inode_exit: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=225585 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:4-2348084 [225] ..... 479572.054754: nfs_writeback_done: error=4401 fileid=00:96:10067193438 fhandle=0x6af4272f offset=221184 count=4401 res=4401 stable=UNSTABLE verifier=7fb1042b4dd46a93 kworker/u1037:7-2298146 [100] ..... 479572.054754: nfs4_pnfs_write: error=0 (OK) fileid=00:96:10067193438 fhandle=0xc9992232 offset=221184 count=4401 res=4401 stateid=1:0xd68163a6 layoutstateid=1:0xaa2ed7d2 kworker/u1037:7-2298146 [100] ..... 479572.054754: nfs_set_cache_invalid: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=225585 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:7-2298146 [100] ..... 479572.054755: nfs_refresh_inode_enter: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 kworker/u1037:7-2298146 [100] ..... 479572.054755: nfs_set_cache_invalid: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=225585 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:7-2298146 [100] ..... 479572.054755: nfs_refresh_inode_exit: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=225585 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:7-2298146 [100] ..... 479572.054755: nfs_writeback_done: error=4401 fileid=00:96:10067193438 fhandle=0xc9992232 offset=221184 count=4401 res=4401 stable=UNSTABLE verifier=e7a66eedc4f3c318 kworker/u1033:0-2344690 [066] ..... 479572.054766: nfs4_pnfs_write: error=0 (OK) fileid=00:96:10067193438 fhandle=0xf88816fa offset=221184 count=4401 res=4401 stateid=1:0xd68163a6 layoutstateid=1:0xaa2ed7d2 kworker/u1033:0-2344690 [066] ..... 479572.054767: nfs_set_cache_invalid: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=225585 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1033:0-2344690 [066] ..... 479572.054767: nfs_refresh_inode_enter: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 kworker/u1033:0-2344690 [066] ..... 479572.054768: nfs_set_cache_invalid: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=225585 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1033:0-2344690 [066] ..... 479572.054768: nfs_refresh_inode_exit: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=225585 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1033:0-2344690 [066] ..... 479572.054768: nfs_writeback_done: error=4401 fileid=00:96:10067193438 fhandle=0xf88816fa offset=221184 count=4401 res=4401 stable=UNSTABLE verifier=a5cd34d9a5d3efdb oil-localfs-86-727850 [215] ..... 479572.054997: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=225585 newsize=229376 oil-localfs-86-727850 [215] ..... 479572.055190: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=229376 newsize=230598 oil-localfs-86-727850 [215] ..... 479572.055379: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=230598 newsize=233472 oil-localfs-86-727850 [215] ..... 479572.055562: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=233472 newsize=235611 oil-localfs-86-727850 [215] ..... 479572.055752: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=235611 newsize=237568 oil-localfs-86-727850 [215] ..... 479572.055913: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=237568 newsize=240624 oil-localfs-86-727850 [215] ..... 479572.056101: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=240624 newsize=241664 oil-localfs-86-727850 [215] ..... 479572.056274: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=241664 newsize=245637 oil-localfs-86-727850 [215] ..... 479572.056466: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=245637 newsize=245760 oil-localfs-86-727850 [215] ..... 479572.056657: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=245760 newsize=249856 oil-localfs-86-727850 [215] ..... 479572.056659: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=249856 newsize=250650 oil-localfs-86-727850 [215] ..... 479572.056858: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=250650 newsize=253952 oil-localfs-86-727850 [215] ..... 479572.057009: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=253952 newsize=255663 oil-localfs-86-727850 [215] ..... 479572.057227: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=255663 newsize=258048 oil-localfs-86-727850 [215] ..... 479572.057417: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=258048 newsize=260676 oil-localfs-86-727850 [215] ..... 479572.057606: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=260676 newsize=262144 oil-localfs-86-727850 [215] ..... 479572.057789: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=262144 newsize=265689 oil-localfs-86-727850 [215] ..... 479572.057976: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=265689 newsize=266240 oil-localfs-86-727850 [215] ..... 479572.058143: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=266240 newsize=270336 oil-localfs-86-727850 [215] ..... 479572.058150: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=270336 newsize=270702 oil-localfs-86-727850 [215] ..... 479572.058348: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=270702 newsize=274432 oil-localfs-86-727850 [215] ..... 479572.058524: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=274432 newsize=275715 oil-localfs-86-727850 [215] ..... 479572.058699: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=275715 newsize=278528 oil-localfs-86-727850 [215] ..... 479572.058874: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=278528 newsize=280728 oil-localfs-86-727850 [215] ..... 479572.059053: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=280728 newsize=282624 oil-localfs-86-727850 [215] ..... 479572.059213: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=282624 newsize=285741 oil-localfs-86-727850 [215] ..... 479572.059414: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=285741 newsize=286720 oil-localfs-86-727850 [215] ..... 479572.059594: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=286720 newsize=290754 oil-localfs-86-727850 [215] ..... 479572.059771: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=290754 newsize=290816 oil-localfs-86-727850 [215] ..... 479572.059949: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=290816 newsize=294912 oil-localfs-86-727850 [215] ..... 479572.059950: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=294912 newsize=295767 oil-localfs-86-727850 [215] ..... 479572.060130: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=295767 newsize=299008 oil-localfs-86-727850 [215] ..... 479572.060302: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=299008 newsize=300780 oil-localfs-86-727850 [215] ..... 479572.060512: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=300780 newsize=303104 oil-localfs-86-727850 [215] ..... 479572.060688: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=303104 newsize=305793 oil-localfs-86-727850 [215] ..... 479572.060855: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=305793 newsize=307200 oil-localfs-86-727850 [215] ..... 479572.061027: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=307200 newsize=310806 oil-localfs-86-727850 [215] ..... 479572.061214: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=310806 newsize=311296 oil-localfs-86-727850 [215] ..... 479572.061383: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=311296 newsize=315392 oil-localfs-86-727850 [215] ..... 479572.061386: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=315392 newsize=315819 oil-localfs-86-727850 [215] ..... 479572.061584: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=315819 newsize=319488 oil-localfs-86-727850 [215] ..... 479572.061762: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=319488 newsize=320832 oil-localfs-86-727850 [215] ..... 479572.061940: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=320832 newsize=323584 oil-localfs-86-727850 [215] ..... 479572.062126: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=323584 newsize=325845 oil-localfs-86-727850 [215] ..... 479572.062318: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=325845 newsize=327680 oil-localfs-86-727850 [215] ..... 479572.062485: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=327680 newsize=330858 oil-localfs-86-727850 [215] ..... 479572.062670: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=330858 newsize=331776 oil-localfs-86-727850 [215] ..... 479572.062846: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=331776 newsize=335871 oil-localfs-86-727850 [215] ..... 479572.063011: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=335871 newsize=335872 oil-localfs-86-727850 [215] ..... 479572.063185: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=335872 newsize=339968 oil-localfs-86-727850 [215] ..... 479572.063187: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=339968 newsize=340884 oil-localfs-86-727850 [215] ..... 479572.063385: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=340884 newsize=344064 oil-localfs-86-727850 [215] ..... 479572.063547: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=344064 newsize=345897 oil-localfs-86-727850 [215] ..... 479572.063732: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=345897 newsize=348160 oil-localfs-86-727850 [215] ..... 479572.063898: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=348160 newsize=350910 oil-localfs-86-727850 [215] ..... 479572.064063: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=350910 newsize=352256 oil-localfs-86-727850 [215] ..... 479572.064239: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=352256 newsize=355923 oil-localfs-86-727850 [215] ..... 479572.064446: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=355923 newsize=356352 oil-localfs-86-727850 [215] ..... 479572.064631: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=356352 newsize=360448 oil-localfs-86-727850 [215] ..... 479572.064633: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=360448 newsize=360936 oil-localfs-86-727850 [215] ..... 479572.064845: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=360936 newsize=364544 oil-localfs-86-727850 [215] ..... 479572.065028: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=364544 newsize=365949 oil-localfs-86-727850 [215] ..... 479572.065207: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=365949 newsize=368640 oil-localfs-86-727850 [215] ..... 479572.065388: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=368640 newsize=370962 oil-localfs-86-727850 [215] ..... 479572.065583: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=370962 newsize=372736 oil-localfs-86-727850 [215] ..... 479572.065751: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=372736 newsize=375975 oil-localfs-86-727850 [215] ..... 479572.065935: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=375975 newsize=376832 oil-localfs-86-727850 [215] ..... 479572.066106: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=376832 newsize=380928 oil-localfs-86-727850 [215] ..... 479572.066108: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=380928 newsize=380988 oil-localfs-86-727850 [215] ..... 479572.066283: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=380988 newsize=385024 oil-localfs-86-727850 [215] ..... 479572.066462: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=385024 newsize=386001 oil-localfs-86-727850 [215] ..... 479572.066661: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=386001 newsize=389120 oil-localfs-86-727850 [215] ..... 479572.066824: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=389120 newsize=391014 oil-localfs-86-727850 [215] ..... 479572.067012: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=391014 newsize=393216 oil-localfs-86-727850 [215] ..... 479572.067180: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=393216 newsize=396027 oil-localfs-86-727850 [215] ..... 479572.067361: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=396027 newsize=397312 oil-localfs-86-727850 [215] ..... 479572.067545: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=397312 newsize=401040 oil-localfs-86-727850 [215] ..... 479572.067730: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=401040 newsize=401408 oil-localfs-86-727850 [215] ..... 479572.067888: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=401408 newsize=405504 oil-localfs-86-727850 [215] ..... 479572.067889: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=405504 newsize=406053 oil-localfs-86-727850 [215] ..... 479572.068084: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=406053 newsize=409600 oil-localfs-86-727850 [215] ..... 479572.068252: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=409600 newsize=411066 oil-localfs-86-727850 [215] ..... 479572.068432: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=411066 newsize=413696 oil-localfs-86-727850 [215] ..... 479572.068631: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=413696 newsize=416079 oil-localfs-86-727850 [215] ..... 479572.068820: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=416079 newsize=417792 oil-localfs-86-727850 [215] ..... 479572.068986: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=417792 newsize=421092 oil-localfs-86-727850 [215] ..... 479572.069169: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=421092 newsize=421888 oil-localfs-86-727850 [215] ..... 479572.069328: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=421888 newsize=425984 oil-localfs-86-727850 [215] ..... 479572.069329: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=425984 newsize=426105 oil-localfs-86-727850 [215] ..... 479572.069511: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=426105 newsize=430080 oil-localfs-86-727850 [215] ..... 479572.069685: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=430080 newsize=431118 oil-localfs-86-727850 [215] ..... 479572.069873: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=431118 newsize=434176 oil-localfs-86-727850 [215] ..... 479572.070030: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=434176 newsize=436131 oil-localfs-86-727850 [215] ..... 479572.070213: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=436131 newsize=438272 oil-localfs-86-727850 [215] ..... 479572.070390: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=438272 newsize=441144 oil-localfs-86-727850 [215] ..... 479572.070574: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=441144 newsize=442368 oil-localfs-86-727850 [215] ..... 479572.070768: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=442368 newsize=446157 oil-localfs-86-727850 [215] ..... 479572.070956: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=446157 newsize=446464 oil-localfs-86-727850 [215] ..... 479572.071126: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=446464 newsize=450560 oil-localfs-86-727850 [215] ..... 479572.071128: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=450560 newsize=451170 oil-localfs-86-727850 [215] ..... 479572.071326: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=451170 newsize=454656 oil-localfs-86-727850 [215] ..... 479572.071503: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=454656 newsize=456183 oil-localfs-86-727850 [215] ..... 479572.071670: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=456183 newsize=458752 oil-localfs-86-727850 [215] ..... 479572.071843: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=458752 newsize=461196 oil-localfs-86-727850 [215] ..... 479572.072022: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=461196 newsize=462848 oil-localfs-86-727850 [215] ..... 479572.072197: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=462848 newsize=466209 oil-localfs-86-727850 [215] ..... 479572.072396: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=466209 newsize=466944 oil-localfs-86-727850 [215] ..... 479572.072571: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=466944 newsize=471040 oil-localfs-86-727850 [215] ..... 479572.072573: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=471040 newsize=471222 oil-localfs-86-727850 [215] ..... 479572.072748: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=471222 newsize=475136 oil-localfs-86-727850 [215] ..... 479572.072932: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=475136 newsize=476235 oil-localfs-86-727850 [215] ..... 479572.073118: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=476235 newsize=479232 oil-localfs-86-727850 [215] ..... 479572.073303: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=479232 newsize=481248 oil-localfs-86-727850 [215] ..... 479572.073503: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=481248 newsize=483328 oil-localfs-86-727850 [215] ..... 479572.073686: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=483328 newsize=486261 oil-localfs-86-727850 [215] ..... 479572.073857: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=486261 newsize=487424 oil-localfs-86-727850 [215] ..... 479572.074044: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=487424 newsize=491274 kworker/u1030:1-2297876 [042] ..... 479572.074194: nfs_initiate_write: fileid=00:96:10067193438 fhandle=0xc9992232 offset=229376 count=261898 stable=UNSTABLE kworker/u1030:1-2297876 [042] ..... 479572.074225: nfs_initiate_write: fileid=00:96:10067193438 fhandle=0x6af4272f offset=229376 count=261898 stable=UNSTABLE kworker/u1030:1-2297876 [042] ..... 479572.074230: nfs_initiate_write: fileid=00:96:10067193438 fhandle=0xf88816fa offset=229376 count=261898 stable=UNSTABLE kworker/u1037:4-2348084 [225] ..... 479572.074944: nfs4_pnfs_write: error=0 (OK) fileid=00:96:10067193438 fhandle=0xc9992232 offset=229376 count=261898 res=261898 stateid=1:0xd68163a6 layoutstateid=1:0xaa2ed7d2 kworker/u1037:4-2348084 [225] ..... 479572.074945: nfs_set_cache_invalid: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=491274 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:4-2348084 [225] ..... 479572.074946: nfs_refresh_inode_enter: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 kworker/u1037:4-2348084 [225] ..... 479572.074946: nfs_set_cache_invalid: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=491274 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1033:1-2209763 [068] ..... 479572.074947: nfs4_pnfs_write: error=0 (OK) fileid=00:96:10067193438 fhandle=0xf88816fa offset=229376 count=261898 res=261898 stateid=1:0xd68163a6 layoutstateid=1:0xaa2ed7d2 kworker/u1037:4-2348084 [225] ..... 479572.074947: nfs_refresh_inode_exit: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=491274 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:4-2348084 [225] ..... 479572.074947: nfs_writeback_done: error=261898 fileid=00:96:10067193438 fhandle=0xc9992232 offset=229376 count=261898 res=261898 stable=UNSTABLE verifier=e7a66eedc4f3c318 kworker/u1033:1-2209763 [068] ..... 479572.074949: nfs_set_cache_invalid: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=491274 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1033:1-2209763 [068] ..... 479572.074950: nfs_refresh_inode_enter: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 kworker/u1033:1-2209763 [068] ..... 479572.074951: nfs_set_cache_invalid: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=491274 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1033:1-2209763 [068] ..... 479572.074951: nfs_refresh_inode_exit: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=491274 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1033:1-2209763 [068] ..... 479572.074951: nfs_writeback_done: error=261898 fileid=00:96:10067193438 fhandle=0xf88816fa offset=229376 count=261898 res=261898 stable=UNSTABLE verifier=a5cd34d9a5d3efdb kworker/u1037:4-2348084 [225] ..... 479572.075079: nfs4_pnfs_write: error=0 (OK) fileid=00:96:10067193438 fhandle=0x6af4272f offset=229376 count=261898 res=261898 stateid=1:0xd68163a6 layoutstateid=1:0xaa2ed7d2 kworker/u1037:4-2348084 [225] ..... 479572.075079: nfs_set_cache_invalid: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=491274 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:4-2348084 [225] ..... 479572.075080: nfs_refresh_inode_enter: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 kworker/u1037:4-2348084 [225] ..... 479572.075080: nfs_set_cache_invalid: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=491274 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:4-2348084 [225] ..... 479572.075080: nfs_refresh_inode_exit: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=491274 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:4-2348084 [225] ..... 479572.075080: nfs_writeback_done: error=261898 fileid=00:96:10067193438 fhandle=0x6af4272f offset=229376 count=261898 res=261898 stable=UNSTABLE verifier=7fb1042b4dd46a93 oil-localfs-86-727850 [226] ..... 479572.075704: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=491274 newsize=491520 kworker/u1036:2-2339254 [092] ..... 479572.075719: nfs_initiate_write: fileid=00:96:10067193438 fhandle=0xc9992232 offset=487424 count=4096 stable=UNSTABLE kworker/u1036:2-2339254 [092] ..... 479572.075722: nfs_initiate_write: fileid=00:96:10067193438 fhandle=0x6af4272f offset=487424 count=4096 stable=UNSTABLE kworker/u1036:2-2339254 [092] ..... 479572.075725: nfs_initiate_write: fileid=00:96:10067193438 fhandle=0xf88816fa offset=487424 count=4096 stable=UNSTABLE kworker/u1037:4-2348084 [096] ..... 479572.075847: nfs4_pnfs_write: error=0 (OK) fileid=00:96:10067193438 fhandle=0xc9992232 offset=487424 count=4096 res=4096 stateid=1:0xd68163a6 layoutstateid=1:0xaa2ed7d2 kworker/u1033:1-2209763 [068] ..... 479572.075847: nfs4_pnfs_write: error=0 (OK) fileid=00:96:10067193438 fhandle=0xf88816fa offset=487424 count=4096 res=4096 stateid=1:0xd68163a6 layoutstateid=1:0xaa2ed7d2 kworker/u1037:4-2348084 [096] ..... 479572.075854: nfs_set_cache_invalid: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=491520 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:4-2348084 [096] ..... 479572.075855: nfs_refresh_inode_enter: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 kworker/u1037:4-2348084 [096] ..... 479572.075855: nfs_set_cache_invalid: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=491520 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:4-2348084 [096] ..... 479572.075855: nfs_refresh_inode_exit: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=491520 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:4-2348084 [096] ..... 479572.075856: nfs_writeback_done: error=4096 fileid=00:96:10067193438 fhandle=0xc9992232 offset=487424 count=4096 res=4096 stable=UNSTABLE verifier=e7a66eedc4f3c318 kworker/u1033:1-2209763 [068] ..... 479572.075856: nfs_set_cache_invalid: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=491520 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1033:1-2209763 [068] ..... 479572.075856: nfs_refresh_inode_enter: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 kworker/u1033:1-2209763 [068] ..... 479572.075857: nfs_set_cache_invalid: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=491520 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1033:1-2209763 [068] ..... 479572.075857: nfs_refresh_inode_exit: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=491520 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1033:1-2209763 [068] ..... 479572.075857: nfs_writeback_done: error=4096 fileid=00:96:10067193438 fhandle=0xf88816fa offset=487424 count=4096 res=4096 stable=UNSTABLE verifier=a5cd34d9a5d3efdb kworker/u1037:1-2369493 [230] ..... 479572.075859: nfs4_pnfs_write: error=0 (OK) fileid=00:96:10067193438 fhandle=0x6af4272f offset=487424 count=4096 res=4096 stateid=1:0xd68163a6 layoutstateid=1:0xaa2ed7d2 kworker/u1037:1-2369493 [230] ..... 479572.075860: nfs_set_cache_invalid: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=491520 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:1-2369493 [230] ..... 479572.075860: nfs_refresh_inode_enter: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 kworker/u1037:1-2369493 [230] ..... 479572.075860: nfs_set_cache_invalid: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=491520 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:1-2369493 [230] ..... 479572.075861: nfs_refresh_inode_exit: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=491520 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:1-2369493 [230] ..... 479572.075861: nfs_writeback_done: error=4096 fileid=00:96:10067193438 fhandle=0x6af4272f offset=487424 count=4096 res=4096 stable=UNSTABLE verifier=7fb1042b4dd46a93 oil-localfs-86-727850 [226] ..... 479572.075971: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=491520 newsize=495616 oil-localfs-86-727850 [226] ..... 479572.075975: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=495616 newsize=496287 kworker/u1036:3-2339255 [223] ..... 479572.075997: nfs_initiate_write: fileid=00:96:10067193438 fhandle=0xc9992232 offset=491520 count=4767 stable=UNSTABLE kworker/u1036:3-2339255 [223] ..... 479572.076001: nfs_initiate_write: fileid=00:96:10067193438 fhandle=0x6af4272f offset=491520 count=4767 stable=UNSTABLE kworker/u1036:3-2339255 [223] ..... 479572.076004: nfs_initiate_write: fileid=00:96:10067193438 fhandle=0xf88816fa offset=491520 count=4767 stable=UNSTABLE kworker/u1037:7-2298146 [100] ..... 479572.076132: nfs4_pnfs_write: error=0 (OK) fileid=00:96:10067193438 fhandle=0x6af4272f offset=491520 count=4767 res=4767 stateid=1:0xd68163a6 layoutstateid=1:0xaa2ed7d2 kworker/u1037:7-2298146 [100] ..... 479572.076132: nfs_set_cache_invalid: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=496287 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:7-2298146 [100] ..... 479572.076133: nfs_refresh_inode_enter: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 kworker/u1037:7-2298146 [100] ..... 479572.076133: nfs_set_cache_invalid: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=496287 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:7-2298146 [100] ..... 479572.076133: nfs_refresh_inode_exit: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=496287 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:7-2298146 [100] ..... 479572.076133: nfs_writeback_done: error=4767 fileid=00:96:10067193438 fhandle=0x6af4272f offset=491520 count=4767 res=4767 stable=UNSTABLE verifier=7fb1042b4dd46a93 kworker/u1037:1-2369493 [230] ..... 479572.076134: nfs4_pnfs_write: error=0 (OK) fileid=00:96:10067193438 fhandle=0xc9992232 offset=491520 count=4767 res=4767 stateid=1:0xd68163a6 layoutstateid=1:0xaa2ed7d2 kworker/u1037:1-2369493 [230] ..... 479572.076134: nfs_set_cache_invalid: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=496287 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:1-2369493 [230] ..... 479572.076134: nfs_refresh_inode_enter: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 kworker/u1037:1-2369493 [230] ..... 479572.076135: nfs_set_cache_invalid: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=496287 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:1-2369493 [230] ..... 479572.076135: nfs_refresh_inode_exit: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=496287 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:1-2369493 [230] ..... 479572.076135: nfs_writeback_done: error=4767 fileid=00:96:10067193438 fhandle=0xc9992232 offset=491520 count=4767 res=4767 stable=UNSTABLE verifier=e7a66eedc4f3c318 kworker/u1033:0-2344690 [068] ..... 479572.076144: nfs4_pnfs_write: error=0 (OK) fileid=00:96:10067193438 fhandle=0xf88816fa offset=491520 count=4767 res=4767 stateid=1:0xd68163a6 layoutstateid=1:0xaa2ed7d2 kworker/u1033:0-2344690 [068] ..... 479572.076144: nfs_set_cache_invalid: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=496287 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1033:0-2344690 [068] ..... 479572.076145: nfs_refresh_inode_enter: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 kworker/u1033:0-2344690 [068] ..... 479572.076145: nfs_set_cache_invalid: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=496287 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1033:0-2344690 [068] ..... 479572.076145: nfs_refresh_inode_exit: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=496287 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1033:0-2344690 [068] ..... 479572.076145: nfs_writeback_done: error=4767 fileid=00:96:10067193438 fhandle=0xf88816fa offset=491520 count=4767 res=4767 stable=UNSTABLE verifier=a5cd34d9a5d3efdb oil-localfs-86-727850 [226] ..... 479572.076404: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=496287 newsize=499712 kworker/u1036:0-2339252 [217] ..... 479572.076423: nfs_initiate_write: fileid=00:96:10067193438 fhandle=0xc9992232 offset=496287 count=3425 stable=UNSTABLE kworker/u1036:0-2339252 [217] ..... 479572.076425: nfs_initiate_write: fileid=00:96:10067193438 fhandle=0x6af4272f offset=496287 count=3425 stable=UNSTABLE kworker/u1036:0-2339252 [217] ..... 479572.076427: nfs_initiate_write: fileid=00:96:10067193438 fhandle=0xf88816fa offset=496287 count=3425 stable=UNSTABLE kworker/u1037:7-2298146 [100] ..... 479572.076535: nfs4_pnfs_write: error=0 (OK) fileid=00:96:10067193438 fhandle=0x6af4272f offset=496287 count=3425 res=3425 stateid=1:0xd68163a6 layoutstateid=1:0xaa2ed7d2 kworker/u1037:7-2298146 [100] ..... 479572.076535: nfs_set_cache_invalid: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=499712 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:7-2298146 [100] ..... 479572.076536: nfs_refresh_inode_enter: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 kworker/u1037:7-2298146 [100] ..... 479572.076536: nfs_set_cache_invalid: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=499712 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:7-2298146 [100] ..... 479572.076537: nfs_refresh_inode_exit: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=499712 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:7-2298146 [100] ..... 479572.076537: nfs_writeback_done: error=3425 fileid=00:96:10067193438 fhandle=0x6af4272f offset=496287 count=3425 res=3425 stable=UNSTABLE verifier=7fb1042b4dd46a93 kworker/u1033:0-2344690 [068] ..... 479572.076541: nfs4_pnfs_write: error=0 (OK) fileid=00:96:10067193438 fhandle=0xf88816fa offset=496287 count=3425 res=3425 stateid=1:0xd68163a6 layoutstateid=1:0xaa2ed7d2 kworker/u1033:0-2344690 [068] ..... 479572.076542: nfs_set_cache_invalid: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=499712 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1033:0-2344690 [068] ..... 479572.076542: nfs_refresh_inode_enter: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 kworker/u1033:0-2344690 [068] ..... 479572.076543: nfs_set_cache_invalid: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=499712 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1033:0-2344690 [068] ..... 479572.076543: nfs_refresh_inode_exit: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=499712 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1033:0-2344690 [068] ..... 479572.076543: nfs_writeback_done: error=3425 fileid=00:96:10067193438 fhandle=0xf88816fa offset=496287 count=3425 res=3425 stable=UNSTABLE verifier=a5cd34d9a5d3efdb kworker/u1037:7-2298146 [100] ..... 479572.076557: nfs4_pnfs_write: error=0 (OK) fileid=00:96:10067193438 fhandle=0xc9992232 offset=496287 count=3425 res=3425 stateid=1:0xd68163a6 layoutstateid=1:0xaa2ed7d2 kworker/u1037:7-2298146 [100] ..... 479572.076558: nfs_set_cache_invalid: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=499712 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:7-2298146 [100] ..... 479572.076558: nfs_refresh_inode_enter: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 kworker/u1037:7-2298146 [100] ..... 479572.076558: nfs_set_cache_invalid: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=499712 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:7-2298146 [100] ..... 479572.076559: nfs_refresh_inode_exit: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=499712 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:7-2298146 [100] ..... 479572.076559: nfs_writeback_done: error=3425 fileid=00:96:10067193438 fhandle=0xc9992232 offset=496287 count=3425 res=3425 stable=UNSTABLE verifier=e7a66eedc4f3c318 oil-localfs-86-727850 [226] ..... 479572.076610: nfs_size_grow: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 cursize=499712 newsize=501300 kworker/u1036:1-2044368 [221] ..... 479572.076628: nfs_initiate_write: fileid=00:96:10067193438 fhandle=0xc9992232 offset=499712 count=1588 stable=UNSTABLE kworker/u1036:1-2044368 [221] ..... 479572.076631: nfs_initiate_write: fileid=00:96:10067193438 fhandle=0x6af4272f offset=499712 count=1588 stable=UNSTABLE kworker/u1036:1-2044368 [221] ..... 479572.076632: nfs_initiate_write: fileid=00:96:10067193438 fhandle=0xf88816fa offset=499712 count=1588 stable=UNSTABLE kworker/u1033:1-2209763 [194] ..... 479572.076797: nfs4_pnfs_write: error=0 (OK) fileid=00:96:10067193438 fhandle=0xf88816fa offset=499712 count=1588 res=1588 stateid=1:0xd68163a6 layoutstateid=1:0xaa2ed7d2 kworker/u1033:1-2209763 [194] ..... 479572.076798: nfs_set_cache_invalid: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=501300 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1033:1-2209763 [194] ..... 479572.076799: nfs_refresh_inode_enter: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 kworker/u1033:1-2209763 [194] ..... 479572.076799: nfs_set_cache_invalid: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=501300 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1033:1-2209763 [194] ..... 479572.076799: nfs_refresh_inode_exit: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=501300 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1033:1-2209763 [194] ..... 479572.076800: nfs_writeback_done: error=1588 fileid=00:96:10067193438 fhandle=0xf88816fa offset=499712 count=1588 res=1588 stable=UNSTABLE verifier=a5cd34d9a5d3efdb kworker/u1037:4-2348084 [096] ..... 479572.076809: nfs4_pnfs_write: error=0 (OK) fileid=00:96:10067193438 fhandle=0x6af4272f offset=499712 count=1588 res=1588 stateid=1:0xd68163a6 layoutstateid=1:0xaa2ed7d2 kworker/u1037:4-2348084 [096] ..... 479572.076810: nfs_set_cache_invalid: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=501300 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:4-2348084 [096] ..... 479572.076810: nfs_refresh_inode_enter: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 kworker/u1037:4-2348084 [096] ..... 479572.076810: nfs_set_cache_invalid: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=501300 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:4-2348084 [096] ..... 479572.076811: nfs_refresh_inode_exit: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=501300 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:4-2348084 [096] ..... 479572.076811: nfs_writeback_done: error=1588 fileid=00:96:10067193438 fhandle=0x6af4272f offset=499712 count=1588 res=1588 stable=UNSTABLE verifier=7fb1042b4dd46a93 kworker/u1037:8-2095961 [101] ..... 479572.076817: nfs4_pnfs_write: error=0 (OK) fileid=00:96:10067193438 fhandle=0xc9992232 offset=499712 count=1588 res=1588 stateid=1:0xd68163a6 layoutstateid=1:0xaa2ed7d2 kworker/u1037:8-2095961 [101] ..... 479572.076818: nfs_set_cache_invalid: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=501300 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:8-2095961 [101] ..... 479572.076819: nfs_refresh_inode_enter: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 kworker/u1037:8-2095961 [101] ..... 479572.076819: nfs_set_cache_invalid: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=501300 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:8-2095961 [101] ..... 479572.076820: nfs_refresh_inode_exit: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=501300 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:8-2095961 [101] ..... 479572.076820: nfs_writeback_done: error=1588 fileid=00:96:10067193438 fhandle=0xc9992232 offset=499712 count=1588 res=1588 stable=UNSTABLE verifier=e7a66eedc4f3c318 oil-localfs-86-727850 [226] ..... 479572.076832: nfs_fsync_enter: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 oil-localfs-86-727850 [226] ..... 479572.077046: nfs_fsync_exit: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=501300 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) oil-localfs-86-727850 [226] ..... 479572.077328: nfs_writeback_inode_enter: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 oil-localfs-86-727850 [226] ..... 479572.077331: nfs_writeback_inode_exit: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598774309300 size=501300 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) <...>-1706339 [212] ..... 479572.178837: nfs_refresh_inode_enter: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598774309300 <...>-1706339 [212] ..... 479572.178839: nfs_set_cache_invalid: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598933970106 size=501300 cache_validity=0x3101a (INVALID_DATA|INVALID_ACCESS|INVALID_ACL|INVALID_OTHER|INVALID_NLINK|INVALID_MODE) nfs_flags=0x4 (ACL_LRU_SET) <...>-1706339 [212] ..... 479572.178839: nfs_refresh_inode_exit: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598933970106 size=501300 cache_validity=0x3101a (INVALID_DATA|INVALID_ACCESS|INVALID_ACL|INVALID_OTHER|INVALID_NLINK|INVALID_MODE) nfs_flags=0x4 (ACL_LRU_SET) oil-localfs-86-727850 [227] ..... 479572.181992: nfs_writeback_inode_enter: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598933970106 oil-localfs-86-727850 [227] ..... 479572.181999: nfs_writeback_inode_exit: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598933970106 size=501300 cache_validity=0x3101a (INVALID_DATA|INVALID_ACCESS|INVALID_ACL|INVALID_OTHER|INVALID_NLINK|INVALID_MODE) nfs_flags=0x4 (ACL_LRU_SET) oil-localfs-86-727850 [227] ..... 479572.213513: nfs_set_cache_invalid: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598933970106 size=501300 cache_validity=0x31b1a (INVALID_DATA|INVALID_ACCESS|INVALID_ACL|INVALID_CHANGE|INVALID_CTIME|INVALID_SIZE|INVALID_OTHER|INVALID_NLINK|INVALID_MODE) nfs_flags=0x4 (ACL_LRU_SET) oil-localfs-86-727850 [227] ..... 479572.314116: nfs_refresh_inode_enter: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598933970106 oil-localfs-86-727850 [227] ..... 479572.314120: nfs_set_cache_invalid: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598933970106 size=501300 cache_validity=0x1a (INVALID_DATA|INVALID_ACCESS|INVALID_ACL) nfs_flags=0x4 (ACL_LRU_SET) oil-localfs-86-727850 [227] ..... 479572.314120: nfs_refresh_inode_exit: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598933970106 size=501300 cache_validity=0x1a (INVALID_DATA|INVALID_ACCESS|INVALID_ACL) nfs_flags=0x4 (ACL_LRU_SET) oil-localfs-86-727850 [227] ..... 479572.314229: nfs_getattr_enter: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598933970106 oil-localfs-86-727850 [227] ..... 479572.314241: nfs_getattr_exit: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598933970106 size=501300 cache_validity=0x1a (INVALID_DATA|INVALID_ACCESS|INVALID_ACL) nfs_flags=0x4 (ACL_LRU_SET) oil-localfs-86-727850 [227] ..... 479572.314256: nfs_getattr_enter: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598933970106 oil-localfs-86-727850 [227] ..... 479572.314257: nfs_getattr_exit: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598933970106 size=501300 cache_validity=0x1a (INVALID_DATA|INVALID_ACCESS|INVALID_ACL) nfs_flags=0x4 (ACL_LRU_SET) oil-localfs-86-727850 [227] ..... 479572.324902: nfs_invalidate_mapping_enter: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598933970106 oil-localfs-86-727850 [227] ..... 479572.324903: nfs_writeback_inode_enter: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598933970106 oil-localfs-86-727850 [227] ..... 479572.324908: nfs_writeback_inode_exit: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598933970106 size=501300 cache_validity=0x18 (INVALID_ACCESS|INVALID_ACL) nfs_flags=0xc (ACL_LRU_SET|INVALIDATING) oil-localfs-86-727850 [227] ..... 479572.324968: nfs_invalidate_mapping_exit: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598933970106 size=501300 cache_validity=0x18 (INVALID_ACCESS|INVALID_ACL) nfs_flags=0xc (ACL_LRU_SET|INVALIDATING) kworker/u1037:9-2298147 [098] ..... 479572.325798: nfs_set_cache_invalid: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598933970106 size=501300 cache_validity=0x1c (INVALID_ATIME|INVALID_ACCESS|INVALID_ACL) nfs_flags=0x4 (ACL_LRU_SET) SR_TLSConnectio-727357 [154] ..... 479573.117824: nfs_writeback_inode_enter: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598933970106 SR_TLSConnectio-727357 [154] ..... 479573.117825: nfs_writeback_inode_exit: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598933970106 size=501300 cache_validity=0x1c (INVALID_ATIME|INVALID_ACCESS|INVALID_ACL) nfs_flags=0x4 (ACL_LRU_SET) <...>-1706339 [212] ..... 479573.176810: nfs_refresh_inode_enter: fileid=00:96:10067193438 fhandle=0x14c40498 version=1753823598933970106 <...>-1706339 [212] ..... 479573.176811: nfs_set_cache_invalid: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598933970106 size=501300 cache_validity=0x18 (INVALID_ACCESS|INVALID_ACL) nfs_flags=0x4 (ACL_LRU_SET) <...>-1706339 [212] ..... 479573.176811: nfs_refresh_inode_exit: error=0 (OK) fileid=00:96:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598933970106 size=501300 cache_validity=0x18 (INVALID_ACCESS|INVALID_ACL) nfs_flags=0x4 (ACL_LRU_SET) oil-localfs-254-2395524 [179] ..... 479897.213099: nfs_getattr_enter: fileid=00:7f:10067193438 fhandle=0x14c40498 version=1753823598933970106 oil-localfs-254-2395524 [179] ..... 479897.213100: nfs_getattr_exit: error=0 (OK) fileid=00:7f:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598933970106 size=501300 cache_validity=0x0 () nfs_flags=0x0 () oil-localfs-254-2395524 [051] ..... 479897.977995: nfs_refresh_inode_enter: fileid=00:7f:10067193438 fhandle=0x14c40498 version=1753823598933970106 oil-localfs-254-2395524 [051] ..... 479897.977995: nfs_set_cache_invalid: error=0 (OK) fileid=00:7f:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598933970106 size=501300 cache_validity=0x0 () nfs_flags=0x0 () oil-localfs-254-2395524 [051] ..... 479897.977995: nfs_refresh_inode_exit: error=0 (OK) fileid=00:7f:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598933970106 size=501300 cache_validity=0x0 () nfs_flags=0x0 () oil-localfs-254-2395524 [051] ..... 479898.108026: nfs_getattr_enter: fileid=00:7f:10067193438 fhandle=0x14c40498 version=1753823598933970106 oil-localfs-254-2395524 [051] ..... 479898.108027: nfs_getattr_exit: error=0 (OK) fileid=00:7f:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598933970106 size=501300 cache_validity=0x0 () nfs_flags=0x0 () oil-localfs-254-2395524 [055] ..... 479912.629681: nfs_refresh_inode_enter: fileid=00:7f:10067193438 fhandle=0x14c40498 version=1753823598933970106 oil-localfs-254-2395524 [055] ..... 479912.629681: nfs_set_cache_invalid: error=0 (OK) fileid=00:7f:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598933970106 size=501300 cache_validity=0x0 () nfs_flags=0x0 () oil-localfs-254-2395524 [055] ..... 479912.629681: nfs_refresh_inode_exit: error=0 (OK) fileid=00:7f:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598933970106 size=501300 cache_validity=0x0 () nfs_flags=0x0 () oil-localfs-254-2395524 [055] ..... 479912.942894: nfs_getattr_enter: fileid=00:7f:10067193438 fhandle=0x14c40498 version=1753823598933970106 oil-localfs-254-2395524 [055] ..... 479912.942895: nfs_getattr_exit: error=0 (OK) fileid=00:7f:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598933970106 size=501300 cache_validity=0x0 () nfs_flags=0x0 () oil-localfs-254-2395524 [055] ..... 479918.331078: nfs_refresh_inode_enter: fileid=00:7f:10067193438 fhandle=0x14c40498 version=1753823598933970106 oil-localfs-254-2395524 [055] ..... 479918.331079: nfs_set_cache_invalid: error=0 (OK) fileid=00:7f:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598933970106 size=501300 cache_validity=0x0 () nfs_flags=0x0 () oil-localfs-254-2395524 [055] ..... 479918.331079: nfs_refresh_inode_exit: error=0 (OK) fileid=00:7f:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598933970106 size=501300 cache_validity=0x0 () nfs_flags=0x0 () oil-localfs-254-2395524 [055] ..... 479918.679960: nfs_getattr_enter: fileid=00:7f:10067193438 fhandle=0x14c40498 version=1753823598933970106 oil-localfs-254-2395524 [055] ..... 479918.679960: nfs_getattr_exit: error=0 (OK) fileid=00:7f:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598933970106 size=501300 cache_validity=0x0 () nfs_flags=0x0 () oil-localfs-254-2395524 [055] ..... 479920.956689: nfs_refresh_inode_enter: fileid=00:7f:10067193438 fhandle=0x14c40498 version=1753823598933970106 oil-localfs-254-2395524 [055] ..... 479920.956689: nfs_set_cache_invalid: error=0 (OK) fileid=00:7f:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598933970106 size=501300 cache_validity=0x0 () nfs_flags=0x0 () oil-localfs-254-2395524 [055] ..... 479920.956689: nfs_refresh_inode_exit: error=0 (OK) fileid=00:7f:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598933970106 size=501300 cache_validity=0x0 () nfs_flags=0x0 () oil-localfs-254-2395524 [055] ..... 479921.674574: nfs_getattr_enter: fileid=00:7f:10067193438 fhandle=0x14c40498 version=1753823598933970106 oil-localfs-254-2395524 [055] ..... 479921.674574: nfs_getattr_exit: error=0 (OK) fileid=00:7f:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598933970106 size=501300 cache_validity=0x0 () nfs_flags=0x0 () oil-localfs-246-2395516 [150] ..... 479924.619307: nfs_refresh_inode_enter: fileid=00:7f:10067193438 fhandle=0x14c40498 version=1753823598933970106 oil-localfs-246-2395516 [150] ..... 479924.619307: nfs_set_cache_invalid: error=0 (OK) fileid=00:7f:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598933970106 size=501300 cache_validity=0x0 () nfs_flags=0x0 () oil-localfs-246-2395516 [150] ..... 479924.619307: nfs_refresh_inode_exit: error=0 (OK) fileid=00:7f:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598933970106 size=501300 cache_validity=0x0 () nfs_flags=0x0 () oil-localfs-246-2395516 [150] ..... 479925.121897: nfs_getattr_enter: fileid=00:7f:10067193438 fhandle=0x14c40498 version=1753823598933970106 oil-localfs-246-2395516 [150] ..... 479925.121897: nfs_getattr_exit: error=0 (OK) fileid=00:7f:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598933970106 size=501300 cache_validity=0x0 () nfs_flags=0x0 () oil-localfs-246-2395516 [150] ..... 479928.930828: nfs_refresh_inode_enter: fileid=00:7f:10067193438 fhandle=0x14c40498 version=1753823598933970106 oil-localfs-246-2395516 [150] ..... 479928.930828: nfs_set_cache_invalid: error=0 (OK) fileid=00:7f:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598933970106 size=501300 cache_validity=0x0 () nfs_flags=0x0 () oil-localfs-246-2395516 [150] ..... 479928.930828: nfs_refresh_inode_exit: error=0 (OK) fileid=00:7f:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598933970106 size=501300 cache_validity=0x0 () nfs_flags=0x0 () oil-localfs-246-2395516 [150] ..... 479929.198609: nfs_getattr_enter: fileid=00:7f:10067193438 fhandle=0x14c40498 version=1753823598933970106 oil-localfs-246-2395516 [150] ..... 479929.198610: nfs_getattr_exit: error=0 (OK) fileid=00:7f:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598933970106 size=501300 cache_validity=0x0 () nfs_flags=0x0 () oil-localfs-254-2395524 [055] ..... 479933.090988: nfs_refresh_inode_enter: fileid=00:7f:10067193438 fhandle=0x14c40498 version=1753823598933970106 oil-localfs-254-2395524 [055] ..... 479933.090988: nfs_set_cache_invalid: error=0 (OK) fileid=00:7f:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598933970106 size=501300 cache_validity=0x0 () nfs_flags=0x0 () oil-localfs-254-2395524 [055] ..... 479933.090988: nfs_refresh_inode_exit: error=0 (OK) fileid=00:7f:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598933970106 size=501300 cache_validity=0x0 () nfs_flags=0x0 () oil-localfs-254-2395524 [055] ..... 479933.470110: nfs_getattr_enter: fileid=00:7f:10067193438 fhandle=0x14c40498 version=1753823598933970106 oil-localfs-254-2395524 [055] ..... 479933.470111: nfs_getattr_exit: error=0 (OK) fileid=00:7f:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598933970106 size=501300 cache_validity=0x0 () nfs_flags=0x0 () oil-localfs-246-2395516 [150] ..... 479937.701874: nfs_refresh_inode_enter: fileid=00:7f:10067193438 fhandle=0x14c40498 version=1753823598933970106 oil-localfs-246-2395516 [150] ..... 479937.701874: nfs_set_cache_invalid: error=0 (OK) fileid=00:7f:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598933970106 size=501300 cache_validity=0x0 () nfs_flags=0x0 () oil-localfs-246-2395516 [150] ..... 479937.701875: nfs_refresh_inode_exit: error=0 (OK) fileid=00:7f:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598933970106 size=501300 cache_validity=0x0 () nfs_flags=0x0 () oil-localfs-246-2395516 [150] ..... 479938.419888: nfs_getattr_enter: fileid=00:7f:10067193438 fhandle=0x14c40498 version=1753823598933970106 oil-localfs-246-2395516 [150] ..... 479938.419889: nfs_getattr_exit: error=0 (OK) fileid=00:7f:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598933970106 size=501300 cache_validity=0x0 () nfs_flags=0x0 () oil-localfs-246-2395516 [150] ..... 479942.768481: nfs_refresh_inode_enter: fileid=00:7f:10067193438 fhandle=0x14c40498 version=1753823598933970106 oil-localfs-246-2395516 [150] ..... 479942.768481: nfs_set_cache_invalid: error=0 (OK) fileid=00:7f:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598933970106 size=501300 cache_validity=0x0 () nfs_flags=0x0 () oil-localfs-246-2395516 [150] ..... 479942.768481: nfs_refresh_inode_exit: error=0 (OK) fileid=00:7f:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598933970106 size=501300 cache_validity=0x0 () nfs_flags=0x0 () oil-localfs-246-2395516 [150] ..... 479943.573332: nfs_getattr_enter: fileid=00:7f:10067193438 fhandle=0x14c40498 version=1753823598933970106 oil-localfs-246-2395516 [150] ..... 479943.573332: nfs_getattr_exit: error=0 (OK) fileid=00:7f:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598933970106 size=501300 cache_validity=0x0 () nfs_flags=0x0 () oil-localfs-254-2395524 [055] ..... 479948.195171: nfs_refresh_inode_enter: fileid=00:7f:10067193438 fhandle=0x14c40498 version=1753823598933970106 oil-localfs-254-2395524 [055] ..... 479948.195171: nfs_set_cache_invalid: error=0 (OK) fileid=00:7f:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598933970106 size=501300 cache_validity=0x0 () nfs_flags=0x0 () oil-localfs-254-2395524 [055] ..... 479948.195171: nfs_refresh_inode_exit: error=0 (OK) fileid=00:7f:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598933970106 size=501300 cache_validity=0x0 () nfs_flags=0x0 () oil-localfs-254-2395524 [055] ..... 479948.704686: nfs_getattr_enter: fileid=00:7f:10067193438 fhandle=0x14c40498 version=1753823598933970106 oil-localfs-254-2395524 [055] ..... 479948.704687: nfs_getattr_exit: error=0 (OK) fileid=00:7f:10067193438 fhandle=0x14c40498 type=8 (REG) version=1753823598933970106 size=501300 cache_validity=0x0 () nfs_flags=0x0 () [-- Attachment #3: 20250725.txt --] [-- Type: text/plain, Size: 57239 bytes --] [root@ocloud0094.03.oas1 ~]# grep 10056165185 /sys/kernel/debug/tracing/trace oil-localfs-252-2605046 [162] ..... 46138.503632: nfs_getattr_enter: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 oil-localfs-252-2605046 [162] ..... 46138.503633: nfs_getattr_exit: error=0 (OK) fileid=00:aa:10056165185 fhandle=0x8bfc64c9 type=8 (REG) version=1753485366409158129 size=0 cache_validity=0x0 () nfs_flags=0x4 (ACL_LRU_SET) oil-localfs-252-2605046 [162] ..... 46138.503654: nfs_getattr_enter: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 oil-localfs-252-2605046 [162] ..... 46138.503654: nfs_getattr_exit: error=0 (OK) fileid=00:aa:10056165185 fhandle=0x8bfc64c9 type=8 (REG) version=1753485366409158129 size=0 cache_validity=0x0 () nfs_flags=0x4 (ACL_LRU_SET) oil-localfs-252-2605046 [162] ..... 46138.504437: nfs_getattr_enter: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 oil-localfs-252-2605046 [162] ..... 46138.504437: nfs_getattr_exit: error=0 (OK) fileid=00:aa:10056165185 fhandle=0x8bfc64c9 type=8 (REG) version=1753485366409158129 size=0 cache_validity=0x0 () nfs_flags=0x4 (ACL_LRU_SET) oil-localfs-252-2605046 [162] ..... 46138.504441: nfs_getattr_enter: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 oil-localfs-252-2605046 [162] ..... 46138.504441: nfs_getattr_exit: error=0 (OK) fileid=00:aa:10056165185 fhandle=0x8bfc64c9 type=8 (REG) version=1753485366409158129 size=0 cache_validity=0x0 () nfs_flags=0x4 (ACL_LRU_SET) oil-localfs-252-2605046 [162] ..... 46138.512974: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=0 newsize=4096 oil-localfs-252-2605046 [162] ..... 46138.512983: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=4096 newsize=5013 oil-localfs-252-2605046 [162] ..... 46138.513247: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=5013 newsize=8192 oil-localfs-252-2605046 [162] ..... 46138.513434: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=8192 newsize=10026 oil-localfs-252-2605046 [162] ..... 46138.513671: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=10026 newsize=12288 oil-localfs-252-2605046 [162] ..... 46138.513879: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=12288 newsize=15039 oil-localfs-252-2605046 [162] ..... 46138.514064: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=15039 newsize=16384 oil-localfs-252-2605046 [162] ..... 46138.514240: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=16384 newsize=20052 oil-localfs-252-2605046 [162] ..... 46138.514436: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=20052 newsize=20480 oil-localfs-252-2605046 [162] ..... 46138.514593: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=20480 newsize=24576 oil-localfs-252-2605046 [162] ..... 46138.514597: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=24576 newsize=25065 oil-localfs-252-2605046 [162] ..... 46138.514802: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=25065 newsize=28672 oil-localfs-252-2605046 [162] ..... 46138.514971: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=28672 newsize=30078 oil-localfs-252-2605046 [162] ..... 46138.515150: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=30078 newsize=32768 oil-localfs-252-2605046 [162] ..... 46138.515299: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=32768 newsize=35091 oil-localfs-252-2605046 [162] ..... 46138.515481: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=35091 newsize=36864 oil-localfs-252-2605046 [162] ..... 46138.515689: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=36864 newsize=40104 oil-localfs-252-2605046 [162] ..... 46138.515871: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=40104 newsize=40960 oil-localfs-252-2605046 [162] ..... 46138.516080: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=40960 newsize=45056 oil-localfs-252-2605046 [162] ..... 46138.516085: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=45056 newsize=45117 oil-localfs-252-2605046 [162] ..... 46138.516255: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=45117 newsize=49152 oil-localfs-252-2605046 [162] ..... 46138.516414: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=49152 newsize=50130 oil-localfs-252-2605046 [162] ..... 46138.516593: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=50130 newsize=53248 kworker/u1038:1-2597138 [106] ..... 46138.516740: nfs_initiate_write: fileid=00:aa:10056165185 fhandle=0x6bd94d55 offset=0 count=53248 stable=UNSTABLE oil-localfs-252-2605046 [162] ..... 46138.516753: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=53248 newsize=55143 kworker/u1038:1-2597138 [106] ..... 46138.516759: nfs_initiate_write: fileid=00:aa:10056165185 fhandle=0xbb9c42be offset=0 count=53248 stable=UNSTABLE kworker/u1038:1-2597138 [106] ..... 46138.516778: nfs_initiate_write: fileid=00:aa:10056165185 fhandle=0x297952b1 offset=0 count=53248 stable=UNSTABLE kworker/u1038:1-2597138 [106] ..... 46138.516795: nfs_initiate_write: fileid=00:aa:10056165185 fhandle=0x6bd94d55 offset=53248 count=1895 stable=UNSTABLE kworker/u1038:1-2597138 [106] ..... 46138.516796: nfs_initiate_write: fileid=00:aa:10056165185 fhandle=0xbb9c42be offset=53248 count=1895 stable=UNSTABLE kworker/u1038:1-2597138 [106] ..... 46138.516798: nfs_initiate_write: fileid=00:aa:10056165185 fhandle=0x297952b1 offset=53248 count=1895 stable=UNSTABLE kworker/u1038:1-2593545 [108] ..... 46138.517622: nfs4_pnfs_write: error=0 (OK) fileid=00:aa:10056165185 fhandle=0xbb9c42be offset=0 count=53248 res=53248 stateid=1:0x79a9c471 layoutstateid=1:0xcbd8aaad kworker/u1038:1-2593545 [108] ..... 46138.517623: nfs_set_cache_invalid: error=0 (OK) fileid=00:aa:10056165185 fhandle=0x8bfc64c9 type=8 (REG) version=1753485366409158129 size=55143 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1038:1-2593545 [108] ..... 46138.517623: nfs_writeback_done: error=53248 fileid=00:aa:10056165185 fhandle=0xbb9c42be offset=0 count=53248 res=53248 stable=UNSTABLE verifier=d807dfba72196253 kworker/u1037:2-2871862 [097] ..... 46138.517659: nfs4_pnfs_write: error=0 (OK) fileid=00:aa:10056165185 fhandle=0x6bd94d55 offset=0 count=53248 res=53248 stateid=1:0x79a9c471 layoutstateid=1:0xcbd8aaad kworker/u1037:1-2779638 [099] ..... 46138.517659: nfs4_pnfs_write: error=0 (OK) fileid=00:aa:10056165185 fhandle=0x297952b1 offset=0 count=53248 res=53248 stateid=1:0x79a9c471 layoutstateid=1:0xcbd8aaad kworker/u1037:2-2871862 [097] ..... 46138.517661: nfs_set_cache_invalid: error=0 (OK) fileid=00:aa:10056165185 fhandle=0x8bfc64c9 type=8 (REG) version=1753485366409158129 size=55143 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:2-2871862 [097] ..... 46138.517662: nfs_writeback_done: error=53248 fileid=00:aa:10056165185 fhandle=0x6bd94d55 offset=0 count=53248 res=53248 stable=UNSTABLE verifier=5199cdae2816c899 kworker/u1037:1-2779638 [099] ..... 46138.517662: nfs_set_cache_invalid: error=0 (OK) fileid=00:aa:10056165185 fhandle=0x8bfc64c9 type=8 (REG) version=1753485366409158129 size=55143 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:1-2779638 [099] ..... 46138.517663: nfs_writeback_done: error=53248 fileid=00:aa:10056165185 fhandle=0x297952b1 offset=0 count=53248 res=53248 stable=UNSTABLE verifier=a5cd34d9a5d3efdb kworker/u1038:1-2593545 [108] ..... 46138.517665: nfs4_pnfs_write: error=0 (OK) fileid=00:aa:10056165185 fhandle=0xbb9c42be offset=53248 count=1895 res=1895 stateid=1:0x79a9c471 layoutstateid=1:0xcbd8aaad kworker/u1038:1-2593545 [108] ..... 46138.517666: nfs_set_cache_invalid: error=0 (OK) fileid=00:aa:10056165185 fhandle=0x8bfc64c9 type=8 (REG) version=1753485366409158129 size=55143 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1038:1-2593545 [108] ..... 46138.517666: nfs_refresh_inode_enter: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 kworker/u1038:1-2593545 [108] ..... 46138.517667: nfs_set_cache_invalid: error=0 (OK) fileid=00:aa:10056165185 fhandle=0x8bfc64c9 type=8 (REG) version=1753485366409158129 size=55143 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1038:1-2593545 [108] ..... 46138.517668: nfs_refresh_inode_exit: error=0 (OK) fileid=00:aa:10056165185 fhandle=0x8bfc64c9 type=8 (REG) version=1753485366409158129 size=55143 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1038:1-2593545 [108] ..... 46138.517668: nfs_writeback_done: error=1895 fileid=00:aa:10056165185 fhandle=0xbb9c42be offset=53248 count=1895 res=1895 stable=UNSTABLE verifier=d807dfba72196253 kworker/u1037:5-2593935 [226] ..... 46138.517669: nfs4_pnfs_write: error=0 (OK) fileid=00:aa:10056165185 fhandle=0x6bd94d55 offset=53248 count=1895 res=1895 stateid=1:0x79a9c471 layoutstateid=1:0xcbd8aaad kworker/u1037:5-2593935 [226] ..... 46138.517670: nfs_set_cache_invalid: error=0 (OK) fileid=00:aa:10056165185 fhandle=0x8bfc64c9 type=8 (REG) version=1753485366409158129 size=55143 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:5-2593935 [226] ..... 46138.517671: nfs_refresh_inode_enter: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 kworker/u1037:5-2593935 [226] ..... 46138.517671: nfs_set_cache_invalid: error=0 (OK) fileid=00:aa:10056165185 fhandle=0x8bfc64c9 type=8 (REG) version=1753485366409158129 size=55143 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:5-2593935 [226] ..... 46138.517672: nfs_refresh_inode_exit: error=0 (OK) fileid=00:aa:10056165185 fhandle=0x8bfc64c9 type=8 (REG) version=1753485366409158129 size=55143 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:5-2593935 [226] ..... 46138.517672: nfs_writeback_done: error=1895 fileid=00:aa:10056165185 fhandle=0x6bd94d55 offset=53248 count=1895 res=1895 stable=UNSTABLE verifier=5199cdae2816c899 kworker/u1037:4-2593530 [096] ..... 46138.517688: nfs4_pnfs_write: error=0 (OK) fileid=00:aa:10056165185 fhandle=0x297952b1 offset=53248 count=1895 res=1895 stateid=1:0x79a9c471 layoutstateid=1:0xcbd8aaad kworker/u1037:4-2593530 [096] ..... 46138.517689: nfs_set_cache_invalid: error=0 (OK) fileid=00:aa:10056165185 fhandle=0x8bfc64c9 type=8 (REG) version=1753485366409158129 size=55143 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:4-2593530 [096] ..... 46138.517690: nfs_refresh_inode_enter: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 kworker/u1037:4-2593530 [096] ..... 46138.517690: nfs_set_cache_invalid: error=0 (OK) fileid=00:aa:10056165185 fhandle=0x8bfc64c9 type=8 (REG) version=1753485366409158129 size=55143 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:4-2593530 [096] ..... 46138.517690: nfs_refresh_inode_exit: error=0 (OK) fileid=00:aa:10056165185 fhandle=0x8bfc64c9 type=8 (REG) version=1753485366409158129 size=55143 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:4-2593530 [096] ..... 46138.517691: nfs_writeback_done: error=1895 fileid=00:aa:10056165185 fhandle=0x297952b1 offset=53248 count=1895 res=1895 stable=UNSTABLE verifier=a5cd34d9a5d3efdb oil-localfs-252-2605046 [162] ..... 46138.518360: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=55143 newsize=57344 oil-localfs-252-2605046 [162] ..... 46138.518556: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=57344 newsize=60156 oil-localfs-252-2605046 [162] ..... 46138.518760: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=60156 newsize=61440 oil-localfs-252-2605046 [162] ..... 46138.518932: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=61440 newsize=65169 oil-localfs-252-2605046 [162] ..... 46138.519123: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=65169 newsize=65536 oil-localfs-252-2605046 [162] ..... 46138.519308: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=65536 newsize=69632 oil-localfs-252-2605046 [162] ..... 46138.519312: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=69632 newsize=70182 oil-localfs-252-2605046 [162] ..... 46138.519499: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=70182 newsize=73728 oil-localfs-252-2605046 [162] ..... 46138.519662: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=73728 newsize=75195 oil-localfs-252-2605046 [162] ..... 46138.519854: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=75195 newsize=77824 oil-localfs-252-2605046 [162] ..... 46138.520022: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=77824 newsize=80208 oil-localfs-252-2605046 [162] ..... 46138.520208: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=80208 newsize=81920 oil-localfs-252-2605046 [162] ..... 46138.520379: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=81920 newsize=85221 oil-localfs-252-2605046 [162] ..... 46138.520575: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=85221 newsize=86016 oil-localfs-252-2605046 [162] ..... 46138.520767: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=86016 newsize=90112 oil-localfs-252-2605046 [162] ..... 46138.520771: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=90112 newsize=90234 oil-localfs-252-2605046 [162] ..... 46138.520963: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=90234 newsize=94208 oil-localfs-252-2605046 [162] ..... 46138.521123: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=94208 newsize=95247 oil-localfs-252-2605046 [162] ..... 46138.521311: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=95247 newsize=98304 oil-localfs-252-2605046 [162] ..... 46138.521452: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=98304 newsize=100260 oil-localfs-252-2605046 [162] ..... 46138.521624: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=100260 newsize=102400 oil-localfs-252-2605046 [162] ..... 46138.521794: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=102400 newsize=105273 oil-localfs-252-2605046 [162] ..... 46138.521977: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=105273 newsize=106496 oil-localfs-252-2605046 [162] ..... 46138.522180: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=106496 newsize=110286 oil-localfs-252-2605046 [162] ..... 46138.522365: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=110286 newsize=110592 oil-localfs-252-2605046 [162] ..... 46138.522531: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=110592 newsize=114688 oil-localfs-252-2605046 [162] ..... 46138.522535: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=114688 newsize=115299 oil-localfs-252-2605046 [162] ..... 46138.522746: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=115299 newsize=118784 oil-localfs-252-2605046 [162] ..... 46138.522907: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=118784 newsize=120312 oil-localfs-252-2605046 [162] ..... 46138.523094: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=120312 newsize=122880 oil-localfs-252-2605046 [162] ..... 46138.523251: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=122880 newsize=125325 oil-localfs-252-2605046 [162] ..... 46138.523438: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=125325 newsize=126976 oil-localfs-252-2605046 [162] ..... 46138.523619: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=126976 newsize=130338 oil-localfs-252-2605046 [162] ..... 46138.523828: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=130338 newsize=131072 oil-localfs-252-2605046 [162] ..... 46138.524037: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=131072 newsize=135168 oil-localfs-252-2605046 [162] ..... 46138.524041: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=135168 newsize=135351 oil-localfs-252-2605046 [162] ..... 46138.524245: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=135351 newsize=139264 oil-localfs-252-2605046 [162] ..... 46138.524423: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=139264 newsize=140364 oil-localfs-252-2605046 [162] ..... 46138.524631: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=140364 newsize=143360 oil-localfs-252-2605046 [162] ..... 46138.524788: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=143360 newsize=145377 oil-localfs-252-2605046 [162] ..... 46138.525001: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=145377 newsize=147456 oil-localfs-252-2605046 [162] ..... 46138.525180: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=147456 newsize=150390 oil-localfs-252-2605046 [162] ..... 46138.525366: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=150390 newsize=151552 oil-localfs-252-2605046 [162] ..... 46138.525529: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=151552 newsize=155403 oil-localfs-252-2605046 [162] ..... 46138.525750: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=155403 newsize=155648 oil-localfs-252-2605046 [162] ..... 46138.525947: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=155648 newsize=159744 oil-localfs-252-2605046 [162] ..... 46138.525952: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=159744 newsize=160416 oil-localfs-252-2605046 [162] ..... 46138.526172: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=160416 newsize=163840 oil-localfs-252-2605046 [162] ..... 46138.526354: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=163840 newsize=165429 oil-localfs-252-2605046 [162] ..... 46138.526542: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=165429 newsize=167936 oil-localfs-252-2605046 [162] ..... 46138.526713: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=167936 newsize=170442 oil-localfs-252-2605046 [162] ..... 46138.526932: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=170442 newsize=172032 oil-localfs-252-2605046 [162] ..... 46138.527095: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=172032 newsize=175455 oil-localfs-252-2605046 [162] ..... 46138.527301: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=175455 newsize=176128 oil-localfs-252-2605046 [162] ..... 46138.527564: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=176128 newsize=180224 oil-localfs-252-2605046 [162] ..... 46138.527568: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=180224 newsize=180468 oil-localfs-252-2605046 [162] ..... 46138.527774: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=180468 newsize=184320 oil-localfs-252-2605046 [162] ..... 46138.527933: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=184320 newsize=185481 oil-localfs-252-2605046 [162] ..... 46138.528148: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=185481 newsize=188416 oil-localfs-252-2605046 [162] ..... 46138.528297: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=188416 newsize=190494 oil-localfs-252-2605046 [162] ..... 46138.528498: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=190494 newsize=192512 oil-localfs-252-2605046 [162] ..... 46138.528748: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=192512 newsize=195507 oil-localfs-252-2605046 [162] ..... 46138.528935: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=195507 newsize=196608 oil-localfs-252-2605046 [162] ..... 46138.529090: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=196608 newsize=200520 oil-localfs-252-2605046 [162] ..... 46138.529296: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=200520 newsize=200704 oil-localfs-252-2605046 [162] ..... 46138.529451: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=200704 newsize=204800 oil-localfs-252-2605046 [162] ..... 46138.529455: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=204800 newsize=205533 oil-localfs-252-2605046 [162] ..... 46138.529654: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=205533 newsize=208896 oil-localfs-252-2605046 [162] ..... 46138.529827: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=208896 newsize=210546 oil-localfs-252-2605046 [162] ..... 46138.530021: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=210546 newsize=212992 oil-localfs-252-2605046 [162] ..... 46138.530182: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=212992 newsize=215559 oil-localfs-252-2605046 [162] ..... 46138.530401: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=215559 newsize=217088 oil-localfs-252-2605046 [162] ..... 46138.530562: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=217088 newsize=220572 oil-localfs-252-2605046 [162] ..... 46138.530790: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=220572 newsize=221184 oil-localfs-252-2605046 [162] ..... 46138.530985: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=221184 newsize=225280 oil-localfs-252-2605046 [162] ..... 46138.530990: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=225280 newsize=225585 oil-localfs-252-2605046 [162] ..... 46138.531177: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=225585 newsize=229376 oil-localfs-252-2605046 [162] ..... 46138.531336: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=229376 newsize=230598 oil-localfs-252-2605046 [162] ..... 46138.531544: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=230598 newsize=233472 oil-localfs-252-2605046 [162] ..... 46138.531714: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=233472 newsize=235611 oil-localfs-252-2605046 [162] ..... 46138.531917: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=235611 newsize=237568 oil-localfs-252-2605046 [162] ..... 46138.532144: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=237568 newsize=240624 oil-localfs-252-2605046 [162] ..... 46138.532345: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=240624 newsize=241664 oil-localfs-252-2605046 [162] ..... 46138.532541: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=241664 newsize=245637 oil-localfs-252-2605046 [162] ..... 46138.532782: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=245637 newsize=245760 oil-localfs-252-2605046 [162] ..... 46138.532978: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=245760 newsize=249856 oil-localfs-252-2605046 [162] ..... 46138.532982: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=249856 newsize=250650 oil-localfs-252-2605046 [162] ..... 46138.533177: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=250650 newsize=253952 oil-localfs-252-2605046 [162] ..... 46138.533365: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=253952 newsize=255663 oil-localfs-252-2605046 [162] ..... 46138.533553: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=255663 newsize=258048 oil-localfs-252-2605046 [162] ..... 46138.533715: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=258048 newsize=260676 oil-localfs-252-2605046 [162] ..... 46138.533926: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=260676 newsize=262144 oil-localfs-252-2605046 [162] ..... 46138.534105: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=262144 newsize=265689 oil-localfs-252-2605046 [162] ..... 46138.534309: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=265689 newsize=266240 oil-localfs-252-2605046 [162] ..... 46138.534575: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=266240 newsize=270336 oil-localfs-252-2605046 [162] ..... 46138.534579: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=270336 newsize=270702 oil-localfs-252-2605046 [162] ..... 46138.534783: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=270702 newsize=274432 oil-localfs-252-2605046 [162] ..... 46138.534940: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=274432 newsize=275715 oil-localfs-252-2605046 [162] ..... 46138.535155: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=275715 newsize=278528 oil-localfs-252-2605046 [162] ..... 46138.535297: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=278528 newsize=280728 oil-localfs-252-2605046 [162] ..... 46138.535484: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=280728 newsize=282624 oil-localfs-252-2605046 [162] ..... 46138.535695: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=282624 newsize=285741 oil-localfs-252-2605046 [162] ..... 46138.535879: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=285741 newsize=286720 oil-localfs-252-2605046 [162] ..... 46138.536042: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=286720 newsize=290754 oil-localfs-252-2605046 [162] ..... 46138.536255: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=290754 newsize=290816 oil-localfs-252-2605046 [162] ..... 46138.536419: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=290816 newsize=294912 oil-localfs-252-2605046 [162] ..... 46138.536422: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=294912 newsize=295767 oil-localfs-252-2605046 [162] ..... 46138.536626: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=295767 newsize=299008 oil-localfs-252-2605046 [162] ..... 46138.536816: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=299008 newsize=300780 oil-localfs-252-2605046 [162] ..... 46138.537011: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=300780 newsize=303104 oil-localfs-252-2605046 [162] ..... 46138.537184: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=303104 newsize=305793 oil-localfs-252-2605046 [163] ..... 46138.537434: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=305793 newsize=307200 oil-localfs-252-2605046 [163] ..... 46138.537623: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=307200 newsize=310806 oil-localfs-252-2605046 [163] ..... 46138.537848: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=310806 newsize=311296 oil-localfs-252-2605046 [163] ..... 46138.538046: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=311296 newsize=315392 oil-localfs-252-2605046 [163] ..... 46138.538049: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=315392 newsize=315819 oil-localfs-252-2605046 [163] ..... 46138.538235: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=315819 newsize=319488 oil-localfs-252-2605046 [163] ..... 46138.538408: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=319488 newsize=320832 oil-localfs-252-2605046 [163] ..... 46138.538621: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=320832 newsize=323584 oil-localfs-252-2605046 [163] ..... 46138.538837: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=323584 newsize=325845 oil-localfs-252-2605046 [163] ..... 46138.539032: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=325845 newsize=327680 oil-localfs-252-2605046 [163] ..... 46138.539214: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=327680 newsize=330858 oil-localfs-252-2605046 [163] ..... 46138.539379: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=330858 newsize=331776 oil-localfs-252-2605046 [163] ..... 46138.539552: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=331776 newsize=335871 oil-localfs-252-2605046 [163] ..... 46138.539750: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=335871 newsize=335872 oil-localfs-252-2605046 [163] ..... 46138.539936: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=335872 newsize=339968 oil-localfs-252-2605046 [163] ..... 46138.539940: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=339968 newsize=340884 oil-localfs-252-2605046 [163] ..... 46138.540117: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=340884 newsize=344064 oil-localfs-252-2605046 [163] ..... 46138.540299: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=344064 newsize=345897 oil-localfs-252-2605046 [163] ..... 46138.540454: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=345897 newsize=348160 oil-localfs-252-2605046 [163] ..... 46138.540611: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=348160 newsize=350910 oil-localfs-252-2605046 [163] ..... 46138.540820: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=350910 newsize=352256 oil-localfs-252-2605046 [163] ..... 46138.540974: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=352256 newsize=355923 oil-localfs-252-2605046 [163] ..... 46138.541159: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=355923 newsize=356352 oil-localfs-252-2605046 [163] ..... 46138.541345: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=356352 newsize=360448 oil-localfs-252-2605046 [163] ..... 46138.541348: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=360448 newsize=360936 oil-localfs-252-2605046 [163] ..... 46138.541514: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=360936 newsize=364544 oil-localfs-252-2605046 [163] ..... 46138.541686: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=364544 newsize=365949 oil-localfs-252-2605046 [163] ..... 46138.541893: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=365949 newsize=368640 oil-localfs-252-2605046 [163] ..... 46138.542049: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=368640 newsize=370962 oil-localfs-252-2605046 [163] ..... 46138.542229: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=370962 newsize=372736 oil-localfs-252-2605046 [163] ..... 46138.542400: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=372736 newsize=375975 oil-localfs-252-2605046 [163] ..... 46138.542559: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=375975 newsize=376832 oil-localfs-252-2605046 [163] ..... 46138.542736: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=376832 newsize=380928 oil-localfs-252-2605046 [163] ..... 46138.542739: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=380928 newsize=380988 oil-localfs-252-2605046 [163] ..... 46138.542939: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=380988 newsize=385024 oil-localfs-252-2605046 [163] ..... 46138.543093: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=385024 newsize=386001 oil-localfs-252-2605046 [163] ..... 46138.543270: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=386001 newsize=389120 oil-localfs-252-2605046 [163] ..... 46138.543450: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=389120 newsize=391014 oil-localfs-252-2605046 [163] ..... 46138.543613: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=391014 newsize=393216 oil-localfs-252-2605046 [163] ..... 46138.543782: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=393216 newsize=396027 oil-localfs-252-2605046 [163] ..... 46138.543977: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=396027 newsize=397312 oil-localfs-252-2605046 [163] ..... 46138.544167: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=397312 newsize=401040 oil-localfs-252-2605046 [163] ..... 46138.544339: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=401040 newsize=401408 oil-localfs-252-2605046 [163] ..... 46138.544504: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=401408 newsize=405504 oil-localfs-252-2605046 [163] ..... 46138.544507: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=405504 newsize=406053 oil-localfs-252-2605046 [163] ..... 46138.544677: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=406053 newsize=409600 oil-localfs-252-2605046 [163] ..... 46138.544838: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=409600 newsize=411066 oil-localfs-252-2605046 [163] ..... 46138.545022: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=411066 newsize=413696 oil-localfs-252-2605046 [163] ..... 46138.545171: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=413696 newsize=416079 oil-localfs-252-2605046 [163] ..... 46138.545350: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=416079 newsize=417792 oil-localfs-252-2605046 [163] ..... 46138.545526: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=417792 newsize=421092 oil-localfs-252-2605046 [163] ..... 46138.545695: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=421092 newsize=421888 oil-localfs-252-2605046 [163] ..... 46138.545863: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=421888 newsize=425984 oil-localfs-252-2605046 [163] ..... 46138.545869: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=425984 newsize=426105 oil-localfs-252-2605046 [163] ..... 46138.546055: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=426105 newsize=430080 oil-localfs-252-2605046 [163] ..... 46138.546201: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=430080 newsize=431118 oil-localfs-252-2605046 [163] ..... 46138.546382: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=431118 newsize=434176 oil-localfs-252-2605046 [163] ..... 46138.546545: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=434176 newsize=436131 oil-localfs-252-2605046 [163] ..... 46138.546715: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=436131 newsize=438272 oil-localfs-252-2605046 [163] ..... 46138.546890: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=438272 newsize=441144 oil-localfs-252-2605046 [163] ..... 46138.547083: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=441144 newsize=442368 oil-localfs-252-2605046 [163] ..... 46138.547249: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=442368 newsize=446157 oil-localfs-252-2605046 [163] ..... 46138.547435: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=446157 newsize=446464 oil-localfs-252-2605046 [163] ..... 46138.547613: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=446464 newsize=450560 oil-localfs-252-2605046 [163] ..... 46138.547616: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=450560 newsize=451170 oil-localfs-252-2605046 [163] ..... 46138.547796: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=451170 newsize=454656 oil-localfs-252-2605046 [163] ..... 46138.547962: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=454656 newsize=456183 oil-localfs-252-2605046 [163] ..... 46138.548143: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=456183 newsize=458752 oil-localfs-252-2605046 [163] ..... 46138.548293: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=458752 newsize=461196 oil-localfs-252-2605046 [163] ..... 46138.548461: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=461196 newsize=462848 oil-localfs-252-2605046 [163] ..... 46138.548620: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=462848 newsize=466209 oil-localfs-252-2605046 [163] ..... 46138.548787: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=466209 newsize=466944 oil-localfs-252-2605046 [163] ..... 46138.548967: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=466944 newsize=471040 oil-localfs-252-2605046 [163] ..... 46138.548970: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=471040 newsize=471222 oil-localfs-252-2605046 [163] ..... 46138.549151: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=471222 newsize=475136 oil-localfs-252-2605046 [163] ..... 46138.549297: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=475136 newsize=476235 oil-localfs-252-2605046 [163] ..... 46138.549473: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=476235 newsize=479232 oil-localfs-252-2605046 [163] ..... 46138.549639: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=479232 newsize=481248 oil-localfs-252-2605046 [163] ..... 46138.549812: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=481248 newsize=483328 oil-localfs-252-2605046 [163] ..... 46138.549963: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=483328 newsize=486261 oil-localfs-252-2605046 [163] ..... 46138.550144: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=486261 newsize=487424 oil-localfs-252-2605046 [163] ..... 46138.550325: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=487424 newsize=491274 oil-localfs-252-2605046 [163] ..... 46138.550494: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=491274 newsize=491520 oil-localfs-252-2605046 [163] ..... 46138.550680: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=491520 newsize=495616 oil-localfs-252-2605046 [163] ..... 46138.550684: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=495616 newsize=496287 oil-localfs-252-2605046 [163] ..... 46138.550845: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=496287 newsize=499712 oil-localfs-252-2605046 [163] ..... 46138.551001: nfs_size_grow: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 cursize=499712 newsize=501300 oil-localfs-252-2605046 [163] ..... 46138.551210: nfs_fsync_enter: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 oil-localfs-252-2605046 [163] ..... 46138.551459: nfs_initiate_write: fileid=00:aa:10056165185 fhandle=0x6bd94d55 offset=57344 count=443956 stable=FILE_SYNC oil-localfs-252-2605046 [163] ..... 46138.551594: nfs_initiate_write: fileid=00:aa:10056165185 fhandle=0xbb9c42be offset=57344 count=443956 stable=FILE_SYNC oil-localfs-252-2605046 [163] ..... 46138.551731: nfs_initiate_write: fileid=00:aa:10056165185 fhandle=0x297952b1 offset=57344 count=443956 stable=FILE_SYNC kworker/u1037:5-2593935 [226] ..... 46138.552991: nfs4_pnfs_write: error=0 (OK) fileid=00:aa:10056165185 fhandle=0x6bd94d55 offset=57344 count=443956 res=443956 stateid=1:0x79a9c471 layoutstateid=1:0xcbd8aaad kworker/u1037:5-2593935 [226] ..... 46138.552993: nfs_set_cache_invalid: error=0 (OK) fileid=00:aa:10056165185 fhandle=0x8bfc64c9 type=8 (REG) version=1753485366409158129 size=501300 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:5-2593935 [226] ..... 46138.552994: nfs_refresh_inode_enter: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 kworker/u1037:5-2593935 [226] ..... 46138.552995: nfs_set_cache_invalid: error=0 (OK) fileid=00:aa:10056165185 fhandle=0x8bfc64c9 type=8 (REG) version=1753485366409158129 size=501300 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:5-2593935 [226] ..... 46138.552995: nfs_refresh_inode_exit: error=0 (OK) fileid=00:aa:10056165185 fhandle=0x8bfc64c9 type=8 (REG) version=1753485366409158129 size=501300 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:5-2593935 [226] ..... 46138.552995: nfs_writeback_done: error=443956 fileid=00:aa:10056165185 fhandle=0x6bd94d55 offset=57344 count=443956 res=443956 stable=FILE_SYNC verifier=5199cdae2816c899 kworker/u1037:5-2593935 [226] ..... 46138.553238: nfs4_pnfs_write: error=0 (OK) fileid=00:aa:10056165185 fhandle=0x297952b1 offset=57344 count=443956 res=443956 stateid=1:0x79a9c471 layoutstateid=1:0xcbd8aaad kworker/u1037:5-2593935 [226] ..... 46138.553239: nfs_set_cache_invalid: error=0 (OK) fileid=00:aa:10056165185 fhandle=0x8bfc64c9 type=8 (REG) version=1753485366409158129 size=501300 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:5-2593935 [226] ..... 46138.553239: nfs_refresh_inode_enter: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 kworker/u1037:5-2593935 [226] ..... 46138.553240: nfs_set_cache_invalid: error=0 (OK) fileid=00:aa:10056165185 fhandle=0x8bfc64c9 type=8 (REG) version=1753485366409158129 size=501300 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:5-2593935 [226] ..... 46138.553240: nfs_refresh_inode_exit: error=0 (OK) fileid=00:aa:10056165185 fhandle=0x8bfc64c9 type=8 (REG) version=1753485366409158129 size=501300 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1037:5-2593935 [226] ..... 46138.553240: nfs_writeback_done: error=443956 fileid=00:aa:10056165185 fhandle=0x297952b1 offset=57344 count=443956 res=443956 stable=FILE_SYNC verifier=a5cd34d9a5d3efdb kworker/u1038:1-2593545 [108] ..... 46138.553322: nfs4_pnfs_write: error=0 (OK) fileid=00:aa:10056165185 fhandle=0xbb9c42be offset=57344 count=443956 res=443956 stateid=1:0x79a9c471 layoutstateid=1:0xcbd8aaad kworker/u1038:1-2593545 [108] ..... 46138.553324: nfs_set_cache_invalid: error=0 (OK) fileid=00:aa:10056165185 fhandle=0x8bfc64c9 type=8 (REG) version=1753485366409158129 size=501300 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1038:1-2593545 [108] ..... 46138.553325: nfs_refresh_inode_enter: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 kworker/u1038:1-2593545 [108] ..... 46138.553326: nfs_set_cache_invalid: error=0 (OK) fileid=00:aa:10056165185 fhandle=0x8bfc64c9 type=8 (REG) version=1753485366409158129 size=501300 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1038:1-2593545 [108] ..... 46138.553326: nfs_refresh_inode_exit: error=0 (OK) fileid=00:aa:10056165185 fhandle=0x8bfc64c9 type=8 (REG) version=1753485366409158129 size=501300 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1038:1-2593545 [108] ..... 46138.553326: nfs_writeback_done: error=443956 fileid=00:aa:10056165185 fhandle=0xbb9c42be offset=57344 count=443956 res=443956 stable=FILE_SYNC verifier=d807dfba72196253 oil-localfs-252-2605046 [163] ..... 46138.553519: nfs_fsync_exit: error=0 (OK) fileid=00:aa:10056165185 fhandle=0x8bfc64c9 type=8 (REG) version=1753485366409158129 size=501300 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) oil-localfs-252-2605046 [163] ..... 46138.553740: nfs_writeback_inode_enter: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 oil-localfs-252-2605046 [163] ..... 46138.553743: nfs_writeback_inode_exit: error=0 (OK) fileid=00:aa:10056165185 fhandle=0x8bfc64c9 type=8 (REG) version=1753485366409158129 size=501300 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1025:1-1058132 [006] ..... 46138.584970: nfs_refresh_inode_enter: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366409158129 kworker/u1025:1-1058132 [006] ..... 46138.584973: nfs_set_cache_invalid: error=0 (OK) fileid=00:aa:10056165185 fhandle=0x8bfc64c9 type=8 (REG) version=1753485366506226295 size=501300 cache_validity=0x3101a (INVALID_DATA|INVALID_ACCESS|INVALID_ACL|INVALID_OTHER|INVALID_NLINK|INVALID_MODE) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1025:1-1058132 [006] ..... 46138.584973: nfs_refresh_inode_exit: error=0 (OK) fileid=00:aa:10056165185 fhandle=0x8bfc64c9 type=8 (REG) version=1753485366506226295 size=501300 cache_validity=0x3101a (INVALID_DATA|INVALID_ACCESS|INVALID_ACL|INVALID_OTHER|INVALID_NLINK|INVALID_MODE) nfs_flags=0x4 (ACL_LRU_SET) oil-localfs-252-2605046 [007] ..... 46138.591925: nfs_writeback_inode_enter: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366506226295 oil-localfs-252-2605046 [007] ..... 46138.591932: nfs_writeback_inode_exit: error=0 (OK) fileid=00:aa:10056165185 fhandle=0x8bfc64c9 type=8 (REG) version=1753485366506226295 size=501300 cache_validity=0x3101a (INVALID_DATA|INVALID_ACCESS|INVALID_ACL|INVALID_OTHER|INVALID_NLINK|INVALID_MODE) nfs_flags=0x4 (ACL_LRU_SET) oil-localfs-252-2605046 [007] ..... 46138.629684: nfs_set_cache_invalid: error=0 (OK) fileid=00:aa:10056165185 fhandle=0x8bfc64c9 type=8 (REG) version=1753485366506226295 size=501300 cache_validity=0x31b1a (INVALID_DATA|INVALID_ACCESS|INVALID_ACL|INVALID_CHANGE|INVALID_CTIME|INVALID_SIZE|INVALID_OTHER|INVALID_NLINK|INVALID_MODE) nfs_flags=0x4 (ACL_LRU_SET) oil-localfs-252-2605046 [007] ..... 46138.728413: nfs_refresh_inode_enter: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366506226295 oil-localfs-252-2605046 [007] ..... 46138.728415: nfs_set_cache_invalid: error=0 (OK) fileid=00:aa:10056165185 fhandle=0x8bfc64c9 type=8 (REG) version=1753485366506226295 size=501300 cache_validity=0x1a (INVALID_DATA|INVALID_ACCESS|INVALID_ACL) nfs_flags=0x4 (ACL_LRU_SET) oil-localfs-252-2605046 [007] ..... 46138.728416: nfs_refresh_inode_exit: error=0 (OK) fileid=00:aa:10056165185 fhandle=0x8bfc64c9 type=8 (REG) version=1753485366506226295 size=501300 cache_validity=0x1a (INVALID_DATA|INVALID_ACCESS|INVALID_ACL) nfs_flags=0x4 (ACL_LRU_SET) oil-localfs-252-2605046 [007] ..... 46138.728486: nfs_getattr_enter: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366506226295 oil-localfs-252-2605046 [007] ..... 46138.728492: nfs_getattr_exit: error=0 (OK) fileid=00:aa:10056165185 fhandle=0x8bfc64c9 type=8 (REG) version=1753485366506226295 size=501300 cache_validity=0x1a (INVALID_DATA|INVALID_ACCESS|INVALID_ACL) nfs_flags=0x4 (ACL_LRU_SET) oil-localfs-252-2605046 [007] ..... 46138.728500: nfs_getattr_enter: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366506226295 oil-localfs-252-2605046 [007] ..... 46138.728501: nfs_getattr_exit: error=0 (OK) fileid=00:aa:10056165185 fhandle=0x8bfc64c9 type=8 (REG) version=1753485366506226295 size=501300 cache_validity=0x1a (INVALID_DATA|INVALID_ACCESS|INVALID_ACL) nfs_flags=0x4 (ACL_LRU_SET) oil-localfs-252-2605046 [007] ..... 46138.735689: nfs_invalidate_mapping_enter: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366506226295 oil-localfs-252-2605046 [007] ..... 46138.735690: nfs_writeback_inode_enter: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366506226295 oil-localfs-252-2605046 [007] ..... 46138.735694: nfs_writeback_inode_exit: error=0 (OK) fileid=00:aa:10056165185 fhandle=0x8bfc64c9 type=8 (REG) version=1753485366506226295 size=501300 cache_validity=0x18 (INVALID_ACCESS|INVALID_ACL) nfs_flags=0xc (ACL_LRU_SET|INVALIDATING) oil-localfs-252-2605046 [007] ..... 46138.735752: nfs_invalidate_mapping_exit: error=0 (OK) fileid=00:aa:10056165185 fhandle=0x8bfc64c9 type=8 (REG) version=1753485366506226295 size=501300 cache_validity=0x18 (INVALID_ACCESS|INVALID_ACL) nfs_flags=0xc (ACL_LRU_SET|INVALIDATING) kworker/u1037:3-2593501 [101] ..... 46138.737212: nfs_set_cache_invalid: error=0 (OK) fileid=00:aa:10056165185 fhandle=0x8bfc64c9 type=8 (REG) version=1753485366506226295 size=501300 cache_validity=0x1c (INVALID_ATIME|INVALID_ACCESS|INVALID_ACL) nfs_flags=0x4 (ACL_LRU_SET) ThriftIO86-2603963 [075] ..... 46139.390716: nfs_writeback_inode_enter: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366506226295 ThriftIO86-2603963 [075] ..... 46139.390717: nfs_writeback_inode_exit: error=0 (OK) fileid=00:aa:10056165185 fhandle=0x8bfc64c9 type=8 (REG) version=1753485366506226295 size=501300 cache_validity=0x1c (INVALID_ATIME|INVALID_ACCESS|INVALID_ACL) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1025:1-1058132 [006] ..... 46139.439373: nfs_refresh_inode_enter: fileid=00:aa:10056165185 fhandle=0x8bfc64c9 version=1753485366506226295 kworker/u1025:1-1058132 [006] ..... 46139.439375: nfs_set_cache_invalid: error=0 (OK) fileid=00:aa:10056165185 fhandle=0x8bfc64c9 type=8 (REG) version=1753485366506226295 size=501300 cache_validity=0x18 (INVALID_ACCESS|INVALID_ACL) nfs_flags=0x4 (ACL_LRU_SET) kworker/u1025:1-1058132 [006] ..... 46139.439376: nfs_refresh_inode_exit: error=0 (OK) fileid=00:aa:10056165185 fhandle=0x8bfc64c9 type=8 (REG) version=1753485366506226295 size=501300 cache_validity=0x18 (INVALID_ACCESS|INVALID_ACL) nfs_flags=0x4 (ACL_LRU_SET) timed out waiting for input: auto-logout Connection to ocloud0094.03.oas1.facebook.com closed. ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: parts of pages on NFS being replaced by swaths of NULs 2025-07-30 14:52 parts of pages on NFS being replaced by swaths of NULs Jeff Layton @ 2025-07-31 21:56 ` Trond Myklebust 2025-07-31 23:04 ` Jeff Layton ` (2 more replies) 0 siblings, 3 replies; 20+ messages in thread From: Trond Myklebust @ 2025-07-31 21:56 UTC (permalink / raw) To: Jeff Layton, Anna Schumaker; +Cc: Chuck Lever, linux-nfs On Wed, 2025-07-30 at 10:52 -0400, Jeff Layton wrote: > We've been seeing a rather nasty bit of data corruption with NFS in > our > environment. The clients in this env run a patched v6.9 kernel > (mostly > due to GPU driver requirements). Most of the patches are NFS > containerization fixes. > > The workload is python scripts writing JSONL files sequentially using > bog-standard buffered write() calls. We're fairly certain that > userland > is not seeking so there should be no gaps in the data written. > > The problem is that we see ranges of written files being replaced by > NULs. The length of the file seemingly doesn't change from what it > should be, but a chunk of it will be zeroed-out. Looking at the > offsets > of the zeroed out ranges, the front part of one page is fine, but the > data from some random offset in the page to the end of the page is > zeroes. > > We have a reproducer but we have to run it in a heavily parallel > configuration to make it happen, so it's evidently a tight race of > some > sort. > > We've turned up some tracepoints and reproduced this twice. What we > see > in both cases is that the client just doesn't write some section of > the > file. > > In the first trace, there was is a gap of 2201 bytes between these > two > writes on the wire: > > kworker/u1038:1-2597138 [106] ..... 46138.516795: > nfs_initiate_write: fileid=00:aa:10056165185 fhandle=0x6bd94d55 > offset=53248 count=1895 stable=UNSTABLE > oil-localfs-252-2605046 [163] ..... 46138.551459: > nfs_initiate_write: fileid=00:aa:10056165185 fhandle=0x6bd94d55 > offset=57344 count=443956 stable=FILE_SYNC > > The zeroed-out range is from 55143-57344. At the same time that the > file is growing from 53248 to 55143 (due to sequential write() > activity), the client is kicking off writeback for the range up to > 55143. It's issuing 2 writes, one for 0-53248 and one for 53248-55143 > (note that I've filtered out all but one of the DS filehandles for > brevity): > > oil-localfs-252-2605046 [162] ..... 46138.516414: nfs_size_grow: > fileid=00:aa:10056165185 fhandle=0x8bfc64c9 > version=1753485366409158129 cursize=49152 newsize=50130 > oil-localfs-252-2605046 [162] ..... 46138.516593: nfs_size_grow: > fileid=00:aa:10056165185 fhandle=0x8bfc64c9 > version=1753485366409158129 cursize=50130 newsize=53248 > kworker/u1038:1-2597138 [106] ..... 46138.516740: > nfs_initiate_write: fileid=00:aa:10056165185 fhandle=0x6bd94d55 > offset=0 count=53248 stable=UNSTABLE > oil-localfs-252-2605046 [162] ..... 46138.516753: nfs_size_grow: > fileid=00:aa:10056165185 fhandle=0x8bfc64c9 > version=1753485366409158129 cursize=53248 newsize=55143 > kworker/u1038:1-2597138 [106] ..... 46138.516795: > nfs_initiate_write: fileid=00:aa:10056165185 fhandle=0x6bd94d55 > offset=53248 count=1895 stable=UNSTABLE > kworker/u1037:2-2871862 [097] ..... 46138.517659: nfs4_pnfs_write: > error=0 (OK) fileid=00:aa:10056165185 fhandle=0x6bd94d55 offset=0 > count=53248 res=53248 stateid=1:0x79a9c471 layoutstateid=1:0xcbd8aaad > kworker/u1037:2-2871862 [097] ..... 46138.517662: > nfs_writeback_done: error=53248 fileid=00:aa:10056165185 > fhandle=0x6bd94d55 offset=0 count=53248 res=53248 stable=UNSTABLE > verifier=5199cdae2816c899 > kworker/u1037:5-2593935 [226] ..... 46138.517669: nfs4_pnfs_write: > error=0 (OK) fileid=00:aa:10056165185 fhandle=0x6bd94d55 offset=53248 > count=1895 res=1895 stateid=1:0x79a9c471 layoutstateid=1:0xcbd8aaad > kworker/u1037:5-2593935 [226] ..... 46138.517672: > nfs_writeback_done: error=1895 fileid=00:aa:10056165185 > fhandle=0x6bd94d55 offset=53248 count=1895 res=1895 stable=UNSTABLE > verifier=5199cdae2816c899 > oil-localfs-252-2605046 [162] ..... 46138.518360: nfs_size_grow: > fileid=00:aa:10056165185 fhandle=0x8bfc64c9 > version=1753485366409158129 cursize=55143 newsize=57344 > oil-localfs-252-2605046 [162] ..... 46138.518556: nfs_size_grow: > fileid=00:aa:10056165185 fhandle=0x8bfc64c9 > version=1753485366409158129 cursize=57344 newsize=60156 > > ...and just after writeback completes, we see the file size grow from > 55143 to the end of the page (57344). > > The second trace has similar symptoms. There is a lot more (smaller) > write activity (due to memory pressure?). There is a gap of 3791 > bytes > between these on-the-wire writes, however: > > kworker/u1036:0-2339252 [217] ..... 479572.054622: > nfs_initiate_write: fileid=00:96:10067193438 fhandle=0xc9992232 > offset=221184 count=4401 stable=UNSTABLE > kworker/u1030:1-2297876 [042] ..... 479572.074194: > nfs_initiate_write: fileid=00:96:10067193438 fhandle=0xc9992232 > offset=229376 count=261898 stable=UNSTABLE > > Same situation -- the at page at offset 53248 has 305 bytes on it, > and > the remaining is zeroed. This trace shows similar racing write() and > writeback activity as in Friday's trace. At around the same time as > the > client was growing the file over the affected range, writeback was > kicking off for everything up to the affected range (this has some > other wb related calls filtered for brevity): > > oil-localfs-86-727850 [215] ..... 479572.053987: nfs_size_grow: > fileid=00:96:10067193438 fhandle=0x14c40498 > version=1753823598774309300 cursize=217088 > newsize=220572 > > kworker/u1036:8-2339326 [088] ..... 479572.054008: > nfs_initiate_write: fileid=00:96:10067193438 fhandle=0xc9992232 > offset=217088 count=3484 > stable=UNSTABLE > > oil-localfs-86-727850 [215] ..... 479572.054405: nfs_size_grow: > fileid=00:96:10067193438 fhandle=0x14c40498 > version=1753823598774309300 cursize=220572 > newsize=221184 > > kworker/u1036:1-2297875 [217] ..... 479572.054418: > nfs_initiate_write: fileid=00:96:10067193438 fhandle=0xc9992232 > offset=220572 count=612 > stable=UNSTABLE > > oil-localfs-86-727850 [215] ..... 479572.054581: nfs_size_grow: > fileid=00:96:10067193438 fhandle=0x14c40498 > version=1753823598774309300 cursize=221184 > newsize=225280 > > oil-localfs-86-727850 [215] ..... 479572.054584: nfs_size_grow: > fileid=00:96:10067193438 fhandle=0x14c40498 > version=1753823598774309300 cursize=225280 > newsize=225585 > > kworker/u1036:0-2339252 [217] ..... 479572.054622: > nfs_initiate_write: fileid=00:96:10067193438 fhandle=0xc9992232 > offset=221184 count=4401 > stable=UNSTABLE > > oil-localfs-86-727850 [215] ..... 479572.054997: nfs_size_grow: > fileid=00:96:10067193438 fhandle=0x14c40498 > version=1753823598774309300 cursize=225585 > newsize=229376 > > oil-localfs-86-727850 [215] ..... 479572.055190: nfs_size_grow: > fileid=00:96:10067193438 fhandle=0x14c40498 > version=1753823598774309300 cursize=229376 > newsize=230598 > > > Could this be a race between extending an existing dirty page, and > writeback kicking off for the pre-extension range on the page? Maybe > the client is clearing the dirty bit, thinking that the write covers > the dirty range, but it has an outdated idea about what that range is > or doesn't properly check? > > Traces for both events, filtered on the relevant fileid are attached. > I've rolled patches for some new tracepoints that I'm going to > attempt > to turn up next, but I thought that this was a good point to solicit > ideas. > > Happy to entertain other thoughts or patches! So... The fact that we are seeing a nfs_size_grow() for the hole at offset 55143 means that either an existing request was updated, or a new one was created in order to cover that hole, and it must have been marked as dirty. I'm not seeing anything in the NFS code that can lose that request without triggering either the nfs_write_error tracepoint, the nfs_commit_error tracepoint, the nfs_invalidate_folio tracepoint or else completing the write. The only other way I can see this data being lost is if something is corrupting folio->private, or if the page cache is somehow managing to throw away a dirty folio. Of the two, there was for a while a netfs bug which would corrupt folio->private, but I assume you're not using cachefs? -- Trond Myklebust Linux NFS client maintainer, Hammerspace trondmy@kernel.org, trond.myklebust@hammerspace.com ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: parts of pages on NFS being replaced by swaths of NULs 2025-07-31 21:56 ` Trond Myklebust @ 2025-07-31 23:04 ` Jeff Layton 2025-08-06 14:20 ` Jeff Layton 2025-08-12 11:58 ` Jeff Layton 2 siblings, 0 replies; 20+ messages in thread From: Jeff Layton @ 2025-07-31 23:04 UTC (permalink / raw) To: Trond Myklebust, Anna Schumaker; +Cc: Chuck Lever, linux-nfs On Thu, 2025-07-31 at 17:56 -0400, Trond Myklebust wrote: > On Wed, 2025-07-30 at 10:52 -0400, Jeff Layton wrote: > > We've been seeing a rather nasty bit of data corruption with NFS in > > our > > environment. The clients in this env run a patched v6.9 kernel > > (mostly > > due to GPU driver requirements). Most of the patches are NFS > > containerization fixes. > > > > The workload is python scripts writing JSONL files sequentially using > > bog-standard buffered write() calls. We're fairly certain that > > userland > > is not seeking so there should be no gaps in the data written. > > > > The problem is that we see ranges of written files being replaced by > > NULs. The length of the file seemingly doesn't change from what it > > should be, but a chunk of it will be zeroed-out. Looking at the > > offsets > > of the zeroed out ranges, the front part of one page is fine, but the > > data from some random offset in the page to the end of the page is > > zeroes. > > > > We have a reproducer but we have to run it in a heavily parallel > > configuration to make it happen, so it's evidently a tight race of > > some > > sort. > > > > We've turned up some tracepoints and reproduced this twice. What we > > see > > in both cases is that the client just doesn't write some section of > > the > > file. > > > > In the first trace, there was is a gap of 2201 bytes between these > > two > > writes on the wire: > > > > kworker/u1038:1-2597138 [106] ..... 46138.516795: > > nfs_initiate_write: fileid=00:aa:10056165185 fhandle=0x6bd94d55 > > offset=53248 count=1895 stable=UNSTABLE > > oil-localfs-252-2605046 [163] ..... 46138.551459: > > nfs_initiate_write: fileid=00:aa:10056165185 fhandle=0x6bd94d55 > > offset=57344 count=443956 stable=FILE_SYNC > > > > The zeroed-out range is from 55143-57344. At the same time that the > > file is growing from 53248 to 55143 (due to sequential write() > > activity), the client is kicking off writeback for the range up to > > 55143. It's issuing 2 writes, one for 0-53248 and one for 53248-55143 > > (note that I've filtered out all but one of the DS filehandles for > > brevity): > > > > oil-localfs-252-2605046 [162] ..... 46138.516414: nfs_size_grow: > > fileid=00:aa:10056165185 fhandle=0x8bfc64c9 > > version=1753485366409158129 cursize=49152 newsize=50130 > > oil-localfs-252-2605046 [162] ..... 46138.516593: nfs_size_grow: > > fileid=00:aa:10056165185 fhandle=0x8bfc64c9 > > version=1753485366409158129 cursize=50130 newsize=53248 > > kworker/u1038:1-2597138 [106] ..... 46138.516740: > > nfs_initiate_write: fileid=00:aa:10056165185 fhandle=0x6bd94d55 > > offset=0 count=53248 stable=UNSTABLE > > oil-localfs-252-2605046 [162] ..... 46138.516753: nfs_size_grow: > > fileid=00:aa:10056165185 fhandle=0x8bfc64c9 > > version=1753485366409158129 cursize=53248 newsize=55143 > > kworker/u1038:1-2597138 [106] ..... 46138.516795: > > nfs_initiate_write: fileid=00:aa:10056165185 fhandle=0x6bd94d55 > > offset=53248 count=1895 stable=UNSTABLE > > kworker/u1037:2-2871862 [097] ..... 46138.517659: nfs4_pnfs_write: > > error=0 (OK) fileid=00:aa:10056165185 fhandle=0x6bd94d55 offset=0 > > count=53248 res=53248 stateid=1:0x79a9c471 layoutstateid=1:0xcbd8aaad > > kworker/u1037:2-2871862 [097] ..... 46138.517662: > > nfs_writeback_done: error=53248 fileid=00:aa:10056165185 > > fhandle=0x6bd94d55 offset=0 count=53248 res=53248 stable=UNSTABLE > > verifier=5199cdae2816c899 > > kworker/u1037:5-2593935 [226] ..... 46138.517669: nfs4_pnfs_write: > > error=0 (OK) fileid=00:aa:10056165185 fhandle=0x6bd94d55 offset=53248 > > count=1895 res=1895 stateid=1:0x79a9c471 layoutstateid=1:0xcbd8aaad > > kworker/u1037:5-2593935 [226] ..... 46138.517672: > > nfs_writeback_done: error=1895 fileid=00:aa:10056165185 > > fhandle=0x6bd94d55 offset=53248 count=1895 res=1895 stable=UNSTABLE > > verifier=5199cdae2816c899 > > oil-localfs-252-2605046 [162] ..... 46138.518360: nfs_size_grow: > > fileid=00:aa:10056165185 fhandle=0x8bfc64c9 > > version=1753485366409158129 cursize=55143 newsize=57344 > > oil-localfs-252-2605046 [162] ..... 46138.518556: nfs_size_grow: > > fileid=00:aa:10056165185 fhandle=0x8bfc64c9 > > version=1753485366409158129 cursize=57344 newsize=60156 > > > > ...and just after writeback completes, we see the file size grow from > > 55143 to the end of the page (57344). > > > > The second trace has similar symptoms. There is a lot more (smaller) > > write activity (due to memory pressure?). There is a gap of 3791 > > bytes > > between these on-the-wire writes, however: > > > > kworker/u1036:0-2339252 [217] ..... 479572.054622: > > nfs_initiate_write: fileid=00:96:10067193438 fhandle=0xc9992232 > > offset=221184 count=4401 stable=UNSTABLE > > kworker/u1030:1-2297876 [042] ..... 479572.074194: > > nfs_initiate_write: fileid=00:96:10067193438 fhandle=0xc9992232 > > offset=229376 count=261898 stable=UNSTABLE > > > > Same situation -- the at page at offset 53248 has 305 bytes on it, > > and > > the remaining is zeroed. This trace shows similar racing write() and > > writeback activity as in Friday's trace. At around the same time as > > the > > client was growing the file over the affected range, writeback was > > kicking off for everything up to the affected range (this has some > > other wb related calls filtered for brevity): > > > > oil-localfs-86-727850 [215] ..... 479572.053987: nfs_size_grow: > > fileid=00:96:10067193438 fhandle=0x14c40498 > > version=1753823598774309300 cursize=217088 > > newsize=220572 > > > > kworker/u1036:8-2339326 [088] ..... 479572.054008: > > nfs_initiate_write: fileid=00:96:10067193438 fhandle=0xc9992232 > > offset=217088 count=3484 > > stable=UNSTABLE > > > > oil-localfs-86-727850 [215] ..... 479572.054405: nfs_size_grow: > > fileid=00:96:10067193438 fhandle=0x14c40498 > > version=1753823598774309300 cursize=220572 > > newsize=221184 > > > > kworker/u1036:1-2297875 [217] ..... 479572.054418: > > nfs_initiate_write: fileid=00:96:10067193438 fhandle=0xc9992232 > > offset=220572 count=612 > > stable=UNSTABLE > > > > oil-localfs-86-727850 [215] ..... 479572.054581: nfs_size_grow: > > fileid=00:96:10067193438 fhandle=0x14c40498 > > version=1753823598774309300 cursize=221184 > > newsize=225280 > > > > oil-localfs-86-727850 [215] ..... 479572.054584: nfs_size_grow: > > fileid=00:96:10067193438 fhandle=0x14c40498 > > version=1753823598774309300 cursize=225280 > > newsize=225585 > > > > kworker/u1036:0-2339252 [217] ..... 479572.054622: > > nfs_initiate_write: fileid=00:96:10067193438 fhandle=0xc9992232 > > offset=221184 count=4401 > > stable=UNSTABLE > > > > oil-localfs-86-727850 [215] ..... 479572.054997: nfs_size_grow: > > fileid=00:96:10067193438 fhandle=0x14c40498 > > version=1753823598774309300 cursize=225585 > > newsize=229376 > > > > oil-localfs-86-727850 [215] ..... 479572.055190: nfs_size_grow: > > fileid=00:96:10067193438 fhandle=0x14c40498 > > version=1753823598774309300 cursize=229376 > > newsize=230598 > > > > > > Could this be a race between extending an existing dirty page, and > > writeback kicking off for the pre-extension range on the page? Maybe > > the client is clearing the dirty bit, thinking that the write covers > > the dirty range, but it has an outdated idea about what that range is > > or doesn't properly check? > > > > Traces for both events, filtered on the relevant fileid are attached. > > I've rolled patches for some new tracepoints that I'm going to > > attempt > > to turn up next, but I thought that this was a good point to solicit > > ideas. > > > > Happy to entertain other thoughts or patches! > > So... The fact that we are seeing a nfs_size_grow() for the hole at > offset 55143 means that either an existing request was updated, or a > new one was created in order to cover that hole, and it must have been > marked as dirty. > > I'm not seeing anything in the NFS code that can lose that request > without triggering either the nfs_write_error tracepoint, the > nfs_commit_error tracepoint, the nfs_invalidate_folio tracepoint or > else completing the write. > I've been looking for a couple of days too and haven't spotted any obvious bugs yet. > The only other way I can see this data being lost is if something is > corrupting folio->private, or if the page cache is somehow managing to > throw away a dirty folio. > Of the two, there was for a while a netfs bug which would corrupt > folio->private, but I assume you're not using cachefs? No, no fscache. Mount options are: proto=tcp6,port=20492,vers=4.2,nosharecache,timeo=30,nconnect=16,noresvport -- Jeff Layton <jlayton@kernel.org> ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: parts of pages on NFS being replaced by swaths of NULs 2025-07-31 21:56 ` Trond Myklebust 2025-07-31 23:04 ` Jeff Layton @ 2025-08-06 14:20 ` Jeff Layton 2025-08-12 11:58 ` Jeff Layton 2 siblings, 0 replies; 20+ messages in thread From: Jeff Layton @ 2025-08-06 14:20 UTC (permalink / raw) To: Trond Myklebust, Anna Schumaker; +Cc: Chuck Lever, linux-nfs On Thu, 2025-07-31 at 17:56 -0400, Trond Myklebust wrote: > On Wed, 2025-07-30 at 10:52 -0400, Jeff Layton wrote: > > We've been seeing a rather nasty bit of data corruption with NFS in > > our > > environment. The clients in this env run a patched v6.9 kernel > > (mostly > > due to GPU driver requirements). Most of the patches are NFS > > containerization fixes. > > > > The workload is python scripts writing JSONL files sequentially using > > bog-standard buffered write() calls. We're fairly certain that > > userland > > is not seeking so there should be no gaps in the data written. > > > > The problem is that we see ranges of written files being replaced by > > NULs. The length of the file seemingly doesn't change from what it > > should be, but a chunk of it will be zeroed-out. Looking at the > > offsets > > of the zeroed out ranges, the front part of one page is fine, but the > > data from some random offset in the page to the end of the page is > > zeroes. > > > > We have a reproducer but we have to run it in a heavily parallel > > configuration to make it happen, so it's evidently a tight race of > > some > > sort. > > > > We've turned up some tracepoints and reproduced this twice. What we > > see > > in both cases is that the client just doesn't write some section of > > the > > file. > > > > In the first trace, there was is a gap of 2201 bytes between these > > two > > writes on the wire: > > > > kworker/u1038:1-2597138 [106] ..... 46138.516795: > > nfs_initiate_write: fileid=00:aa:10056165185 fhandle=0x6bd94d55 > > offset=53248 count=1895 stable=UNSTABLE > > foo-localfs-252-2605046 [163] ..... 46138.551459: > > nfs_initiate_write: fileid=00:aa:10056165185 fhandle=0x6bd94d55 > > offset=57344 count=443956 stable=FILE_SYNC > > > > The zeroed-out range is from 55143-57344. At the same time that the > > file is growing from 53248 to 55143 (due to sequential write() > > activity), the client is kicking off writeback for the range up to > > 55143. It's issuing 2 writes, one for 0-53248 and one for 53248-55143 > > (note that I've filtered out all but one of the DS filehandles for > > brevity): > > > > foo-localfs-252-2605046 [162] ..... 46138.516414: nfs_size_grow: > > fileid=00:aa:10056165185 fhandle=0x8bfc64c9 > > version=1753485366409158129 cursize=49152 newsize=50130 > > foo-localfs-252-2605046 [162] ..... 46138.516593: nfs_size_grow: > > fileid=00:aa:10056165185 fhandle=0x8bfc64c9 > > version=1753485366409158129 cursize=50130 newsize=53248 > > kworker/u1038:1-2597138 [106] ..... 46138.516740: > > nfs_initiate_write: fileid=00:aa:10056165185 fhandle=0x6bd94d55 > > offset=0 count=53248 stable=UNSTABLE > > foo-localfs-252-2605046 [162] ..... 46138.516753: nfs_size_grow: > > fileid=00:aa:10056165185 fhandle=0x8bfc64c9 > > version=1753485366409158129 cursize=53248 newsize=55143 > > kworker/u1038:1-2597138 [106] ..... 46138.516795: > > nfs_initiate_write: fileid=00:aa:10056165185 fhandle=0x6bd94d55 > > offset=53248 count=1895 stable=UNSTABLE > > kworker/u1037:2-2871862 [097] ..... 46138.517659: nfs4_pnfs_write: > > error=0 (OK) fileid=00:aa:10056165185 fhandle=0x6bd94d55 offset=0 > > count=53248 res=53248 stateid=1:0x79a9c471 layoutstateid=1:0xcbd8aaad > > kworker/u1037:2-2871862 [097] ..... 46138.517662: > > nfs_writeback_done: error=53248 fileid=00:aa:10056165185 > > fhandle=0x6bd94d55 offset=0 count=53248 res=53248 stable=UNSTABLE > > verifier=5199cdae2816c899 > > kworker/u1037:5-2593935 [226] ..... 46138.517669: nfs4_pnfs_write: > > error=0 (OK) fileid=00:aa:10056165185 fhandle=0x6bd94d55 offset=53248 > > count=1895 res=1895 stateid=1:0x79a9c471 layoutstateid=1:0xcbd8aaad > > kworker/u1037:5-2593935 [226] ..... 46138.517672: > > nfs_writeback_done: error=1895 fileid=00:aa:10056165185 > > fhandle=0x6bd94d55 offset=53248 count=1895 res=1895 stable=UNSTABLE > > verifier=5199cdae2816c899 > > foo-localfs-252-2605046 [162] ..... 46138.518360: nfs_size_grow: > > fileid=00:aa:10056165185 fhandle=0x8bfc64c9 > > version=1753485366409158129 cursize=55143 newsize=57344 > > foo-localfs-252-2605046 [162] ..... 46138.518556: nfs_size_grow: > > fileid=00:aa:10056165185 fhandle=0x8bfc64c9 > > version=1753485366409158129 cursize=57344 newsize=60156 > > > > ...and just after writeback completes, we see the file size grow from > > 55143 to the end of the page (57344). > > > > The second trace has similar symptoms. There is a lot more (smaller) > > write activity (due to memory pressure?). There is a gap of 3791 > > bytes > > between these on-the-wire writes, however: > > > > kworker/u1036:0-2339252 [217] ..... 479572.054622: > > nfs_initiate_write: fileid=00:96:10067193438 fhandle=0xc9992232 > > offset=221184 count=4401 stable=UNSTABLE > > kworker/u1030:1-2297876 [042] ..... 479572.074194: > > nfs_initiate_write: fileid=00:96:10067193438 fhandle=0xc9992232 > > offset=229376 count=261898 stable=UNSTABLE > > > > Same situation -- the at page at offset 53248 has 305 bytes on it, > > and > > the remaining is zeroed. This trace shows similar racing write() and > > writeback activity as in Friday's trace. At around the same time as > > the > > client was growing the file over the affected range, writeback was > > kicking off for everything up to the affected range (this has some > > other wb related calls filtered for brevity): > > > > foo-localfs-86-727850 [215] ..... 479572.053987: nfs_size_grow: > > fileid=00:96:10067193438 fhandle=0x14c40498 > > version=1753823598774309300 cursize=217088 > > newsize=220572 > > > > kworker/u1036:8-2339326 [088] ..... 479572.054008: > > nfs_initiate_write: fileid=00:96:10067193438 fhandle=0xc9992232 > > offset=217088 count=3484 > > stable=UNSTABLE > > > > foo-localfs-86-727850 [215] ..... 479572.054405: nfs_size_grow: > > fileid=00:96:10067193438 fhandle=0x14c40498 > > version=1753823598774309300 cursize=220572 > > newsize=221184 > > > > kworker/u1036:1-2297875 [217] ..... 479572.054418: > > nfs_initiate_write: fileid=00:96:10067193438 fhandle=0xc9992232 > > offset=220572 count=612 > > stable=UNSTABLE > > > > foo-localfs-86-727850 [215] ..... 479572.054581: nfs_size_grow: > > fileid=00:96:10067193438 fhandle=0x14c40498 > > version=1753823598774309300 cursize=221184 > > newsize=225280 > > > > foo-localfs-86-727850 [215] ..... 479572.054584: nfs_size_grow: > > fileid=00:96:10067193438 fhandle=0x14c40498 > > version=1753823598774309300 cursize=225280 > > newsize=225585 > > > > kworker/u1036:0-2339252 [217] ..... 479572.054622: > > nfs_initiate_write: fileid=00:96:10067193438 fhandle=0xc9992232 > > offset=221184 count=4401 > > stable=UNSTABLE > > > > foo-localfs-86-727850 [215] ..... 479572.054997: nfs_size_grow: > > fileid=00:96:10067193438 fhandle=0x14c40498 > > version=1753823598774309300 cursize=225585 > > newsize=229376 > > > > foo-localfs-86-727850 [215] ..... 479572.055190: nfs_size_grow: > > fileid=00:96:10067193438 fhandle=0x14c40498 > > version=1753823598774309300 cursize=229376 > > newsize=230598 > > > > > > Could this be a race between extending an existing dirty page, and > > writeback kicking off for the pre-extension range on the page? Maybe > > the client is clearing the dirty bit, thinking that the write covers > > the dirty range, but it has an outdated idea about what that range is > > or doesn't properly check? > > > > Traces for both events, filtered on the relevant fileid are attached. > > I've rolled patches for some new tracepoints that I'm going to > > attempt > > to turn up next, but I thought that this was a good point to solicit > > ideas. > > > > Happy to entertain other thoughts or patches! > > So... The fact that we are seeing a nfs_size_grow() for the hole at > offset 55143 means that either an existing request was updated, or a > new one was created in order to cover that hole, and it must have been > marked as dirty. > > I'm not seeing anything in the NFS code that can lose that request > without triggering either the nfs_write_error tracepoint, the > nfs_commit_error tracepoint, the nfs_invalidate_folio tracepoint or > else completing the write. > > The only other way I can see this data being lost is if something is > corrupting folio->private, or if the page cache is somehow managing to > throw away a dirty folio. > Of the two, there was for a while a netfs bug which would corrupt > folio->private, but I assume you're not using cachefs? We reproduced this again, this time with some extra tracepoints that I added. I'll post patches for those soon. I may need to add more. Here's the writeup of it I did this morning. Some names changed to protect the paranoid. Let me know if anyone has ideas: In this case, the corruption happened fairly early. There is a 2262 byte hole between 10026 and 12288: kworker/u1025:9-3435794 [000] ..... 42066.127742: nfs_initiate_write: fileid=00:82:10087279963 fhandle=0x483d45e0 offset=0 count=10026 stable=UNSTABLE foo-localfs-161-1326370 [135] ..... 42066.169637: nfs_initiate_write: fileid=00:82:10087279963 fhandle=0x483d45e0 offset=12288 count=489012 stable=FILE_SYNC The reproducer is a python script doing 5013 byte write() calls exclusively. There is another layer between that and NFS though. It's implemented as a FUSE fs that passes reads and writes through to NFS. This layer alters the I/O pattern in an interesting way: The first write from userland is 5013 bytes. (Side q: Does foofs use io_uring to do these writes?): foo-localfs-161-1326370 [135] ..... 42066.127165: nfs_file_write: fileid=00:82:10087279963 fhandle=0xa6491ad0 version=1754454982197296994 offset=0 count=5013 ki_flags= ...but then it writes everything up to the end of the second page in the next write() call: foo-localfs-161-1326370 [135] ..... 42066.127486: nfs_file_write: fileid=00:82:10087279963 fhandle=0xa6491ad0 version=1754454982197296994 offset=5013 count=3179 ki_flags= ...then it writes the rest of that 5013 byte write: foo-localfs-161-1326370 [135] ..... 42066.127717: nfs_file_write: fileid=00:82:10087279963 fhandle=0xa6491ad0 version=1754454982197296994 offset=8192 count=1834 ki_flags= ...so now we have 2 complete lines. The next write from userland is to the end of the page: foo-localfs-161-1326370 [135] ..... 42066.127954: nfs_file_write: fileid=00:82:10087279963 fhandle=0xa6491ad0 version=1754454982197296994 offset=10026 count=2262 ki_flags= ...and the pattern continues... foo-localfs-161-1326370 [135] ..... 42066.129411: nfs_file_write: fileid=00:82:10087279963 fhandle=0xa6491ad0 version=1754454982197296994 offset=12288 count=2751 ki_flags= foo-localfs-161-1326370 [135] ..... 42066.129749: nfs_file_write: fileid=00:82:10087279963 fhandle=0xa6491ad0 version=1754454982197296994 offset=15039 count=1345 ki_flags= foo-localfs-161-1326370 [135] ..... 42066.130020: nfs_file_write: fileid=00:82:10087279963 fhandle=0xa6491ad0 version=1754454982197296994 offset=16384 count=3668 ki_flags= This weird I/O pattern may help explain why it reproduces easier with this layer in the mix. This gives the NFS client ample opportunity to have to extend existing pages. I plan to change my attempted reproducer to mimic this pattern. The new tracepoints give us a slightly clearer picture of the race (I filtered out all but one of the DS filehandles for simplicity). Here's the end of the write from 8192-10026. At this point the file size is 10026 (everything is normal at this point, AFAICT): foo-localfs-161-1326370 [135] ..... 42066.127720: nfs_size_grow: fileid=00:82:10087279963 fhandle=0xa6491ad0 version=1754454982197296994 cursize=8192 newsize=10026 Writeback for everything in the cache so far is kicked off: kworker/u1025:9-3435794 [000] ..... 42066.127742: nfs_initiate_write: fileid=00:82:10087279963 fhandle=0x483d45e0 offset=0 count=10026 stable=UNSTABLE A write comes in from foofs for 2262 bytes, and it calls into write_begin. I suspect at this point nfs_write_begin is blocked on the page lock: foo-localfs-161-1326370 [135] ..... 42066.127954: nfs_file_write: fileid=00:82:10087279963 fhandle=0xa6491ad0 version=1754454982197296994 offset=10026 count=2262 ki_flags= foo-localfs-161-1326370 [135] ..... 42066.127954: nfs_write_begin: fileid=00:82:10087279963 fhandle=0xa6491ad0 version=1754454982197296994 offset=10026 count=2262 Writeback to the DS's proceeds: kworker/u1035:0-3302696 [209] ..... 42066.128388: nfs4_pnfs_write: error=0 (OK) fileid=00:82:10087279963 fhandle=0x483d45e0 offset=0 count=10026 res=10026 stateid=1:0x428af712 layoutstateid=1:0x47c699b3 kworker/u1035:0-3302696 [209] ..... 42066.128396: nfs_writeback_done: error=10026 fileid=00:82:10087279963 fhandle=0x483d45e0 offset=0 count=10026 res=10026 stable=UNSTABLE verifier=a376459679d60091 Eventually, foofs gets the page lock, and write_end is called. It updates the folio via nfs_try_to_update_request(): foo-localfs-161-1326370 [135] ..... 42066.128429: nfs_write_end: fileid=00:82:10087279963 fhandle=0xa6491ad0 version=1754454982197296994 offset=10026 count=2262 foo-localfs-161-1326370 [135] ..... 42066.128429: nfs_update_folio: fileid=00:82:10087279963 fhandle=0xa6491ad0 version=1754454982197296994 offset=1834 count=2262 foo-localfs-161-1326370 [135] ..... 42066.128429: nfs_try_to_update_request: fileid=00:82:10087279963 fhandle=0xa6491ad0 version=1754454982197296994 offset=1834 count=2262 ...COMMITs go out for the data just written (side q: there was only a single WRITE call on the wire before this. Why didn't it just do a SYNC write instead?): kworker/u1028:3-3432139 [031] ..... 42066.128431: nfs_initiate_commit: fileid=00:82:10087279963 fhandle=0x483d45e0 offset=0 count=0 kworker/u1035:0-3302696 [209] ..... 42066.129158: nfs_commit_done: error=0 fileid=00:82:10087279963 fhandle=0x483d45e0 offset=0 stable=FILE_SYNC verifier=a376459679d60091 ...the file size in the inode is grown: foo-localfs-161-1326370 [135] ..... 42066.129179: nfs_size_grow: fileid=00:82:10087279963 fhandle=0xa6491ad0 version=1754454982197296994 cursize=10026 newsize=12288 ...and then the next userland write happens: foo-localfs-161-1326370 [135] ..... 42066.129411: nfs_file_write: fileid=00:82:10087279963 fhandle=0xa6491ad0 version=1754454982197296994 offset=12288 count=2751 ki_flags= ...and eventually the next on-the-wire write occurs due to an fsync, which skips the partial page: foo-localfs-161-1326370 [135] ..... 42066.169262: nfs_size_grow: fileid=00:82:10087279963 fhandle=0xa6491ad0 version=1754454982197296994 cursize=499712 newsize=501300 foo-localfs-161-1326370 [135] ..... 42066.169517: nfs_fsync_enter: fileid=00:82:10087279963 fhandle=0xa6491ad0 version=1754454982197296994 cache_validity=0x4700 (INVALID_CHANGE|INVALID_CTIME|INVALID_MTIME|INVALID_BLOCKS) foo-localfs-161-1326370 [135] ..... 42066.169637: nfs_initiate_write: fileid=00:82:10087279963 fhandle=0x483d45e0 offset=12288 count=489012 stable=FILE_SYNC It's still not 100% clear why part of the page didn't get written back. I have a couple of theories at this point: 1/ the dirty bit is somehow either not being set properly in the first place for the 2262 byte write, or is getting cleared inappropriately during the WRITE that includes the first part of the page. 2/ The file size doesn't grow until quite late in the process. Perhaps we could be clamping the writeback range to the old file size and tossing out the rest of the page? I think #1 is most probable. My thinking at this point is that since we know the userland writes are contiguous in this case, I can make nfs_writepages look for holes in the data to be written back, and dump info about the page / nfs_page with the hole. Happy to entertain other ideas too. Cheers, -- Jeff Layton <jlayton@kernel.org> ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: parts of pages on NFS being replaced by swaths of NULs 2025-07-31 21:56 ` Trond Myklebust 2025-07-31 23:04 ` Jeff Layton 2025-08-06 14:20 ` Jeff Layton @ 2025-08-12 11:58 ` Jeff Layton 2025-08-12 16:58 ` Trond Myklebust 2 siblings, 1 reply; 20+ messages in thread From: Jeff Layton @ 2025-08-12 11:58 UTC (permalink / raw) To: Trond Myklebust, Anna Schumaker; +Cc: Chuck Lever, linux-nfs On Thu, 2025-07-31 at 17:56 -0400, Trond Myklebust wrote: > On Wed, 2025-07-30 at 10:52 -0400, Jeff Layton wrote: > > We've been seeing a rather nasty bit of data corruption with NFS in > > our > > environment. The clients in this env run a patched v6.9 kernel > > (mostly > > due to GPU driver requirements). Most of the patches are NFS > > containerization fixes. > > > > The workload is python scripts writing JSONL files sequentially using > > bog-standard buffered write() calls. We're fairly certain that > > userland > > is not seeking so there should be no gaps in the data written. > > > > The problem is that we see ranges of written files being replaced by > > NULs. The length of the file seemingly doesn't change from what it > > should be, but a chunk of it will be zeroed-out. Looking at the > > offsets > > of the zeroed out ranges, the front part of one page is fine, but the > > data from some random offset in the page to the end of the page is > > zeroes. > > > > We have a reproducer but we have to run it in a heavily parallel > > configuration to make it happen, so it's evidently a tight race of > > some > > sort. > > > > We've turned up some tracepoints and reproduced this twice. What we > > see > > in both cases is that the client just doesn't write some section of > > the > > file. > > > > In the first trace, there was is a gap of 2201 bytes between these > > two > > writes on the wire: > > > > kworker/u1038:1-2597138 [106] ..... 46138.516795: > > nfs_initiate_write: fileid=00:aa:10056165185 fhandle=0x6bd94d55 > > offset=53248 count=1895 stable=UNSTABLE > > oil-localfs-252-2605046 [163] ..... 46138.551459: > > nfs_initiate_write: fileid=00:aa:10056165185 fhandle=0x6bd94d55 > > offset=57344 count=443956 stable=FILE_SYNC > > > > The zeroed-out range is from 55143-57344. At the same time that the > > file is growing from 53248 to 55143 (due to sequential write() > > activity), the client is kicking off writeback for the range up to > > 55143. It's issuing 2 writes, one for 0-53248 and one for 53248-55143 > > (note that I've filtered out all but one of the DS filehandles for > > brevity): > > > > oil-localfs-252-2605046 [162] ..... 46138.516414: nfs_size_grow: > > fileid=00:aa:10056165185 fhandle=0x8bfc64c9 > > version=1753485366409158129 cursize=49152 newsize=50130 > > oil-localfs-252-2605046 [162] ..... 46138.516593: nfs_size_grow: > > fileid=00:aa:10056165185 fhandle=0x8bfc64c9 > > version=1753485366409158129 cursize=50130 newsize=53248 > > kworker/u1038:1-2597138 [106] ..... 46138.516740: > > nfs_initiate_write: fileid=00:aa:10056165185 fhandle=0x6bd94d55 > > offset=0 count=53248 stable=UNSTABLE > > oil-localfs-252-2605046 [162] ..... 46138.516753: nfs_size_grow: > > fileid=00:aa:10056165185 fhandle=0x8bfc64c9 > > version=1753485366409158129 cursize=53248 newsize=55143 > > kworker/u1038:1-2597138 [106] ..... 46138.516795: > > nfs_initiate_write: fileid=00:aa:10056165185 fhandle=0x6bd94d55 > > offset=53248 count=1895 stable=UNSTABLE > > kworker/u1037:2-2871862 [097] ..... 46138.517659: nfs4_pnfs_write: > > error=0 (OK) fileid=00:aa:10056165185 fhandle=0x6bd94d55 offset=0 > > count=53248 res=53248 stateid=1:0x79a9c471 layoutstateid=1:0xcbd8aaad > > kworker/u1037:2-2871862 [097] ..... 46138.517662: > > nfs_writeback_done: error=53248 fileid=00:aa:10056165185 > > fhandle=0x6bd94d55 offset=0 count=53248 res=53248 stable=UNSTABLE > > verifier=5199cdae2816c899 > > kworker/u1037:5-2593935 [226] ..... 46138.517669: nfs4_pnfs_write: > > error=0 (OK) fileid=00:aa:10056165185 fhandle=0x6bd94d55 offset=53248 > > count=1895 res=1895 stateid=1:0x79a9c471 layoutstateid=1:0xcbd8aaad > > kworker/u1037:5-2593935 [226] ..... 46138.517672: > > nfs_writeback_done: error=1895 fileid=00:aa:10056165185 > > fhandle=0x6bd94d55 offset=53248 count=1895 res=1895 stable=UNSTABLE > > verifier=5199cdae2816c899 > > oil-localfs-252-2605046 [162] ..... 46138.518360: nfs_size_grow: > > fileid=00:aa:10056165185 fhandle=0x8bfc64c9 > > version=1753485366409158129 cursize=55143 newsize=57344 > > oil-localfs-252-2605046 [162] ..... 46138.518556: nfs_size_grow: > > fileid=00:aa:10056165185 fhandle=0x8bfc64c9 > > version=1753485366409158129 cursize=57344 newsize=60156 > > > > ...and just after writeback completes, we see the file size grow from > > 55143 to the end of the page (57344). > > > > The second trace has similar symptoms. There is a lot more (smaller) > > write activity (due to memory pressure?). There is a gap of 3791 > > bytes > > between these on-the-wire writes, however: > > > > kworker/u1036:0-2339252 [217] ..... 479572.054622: > > nfs_initiate_write: fileid=00:96:10067193438 fhandle=0xc9992232 > > offset=221184 count=4401 stable=UNSTABLE > > kworker/u1030:1-2297876 [042] ..... 479572.074194: > > nfs_initiate_write: fileid=00:96:10067193438 fhandle=0xc9992232 > > offset=229376 count=261898 stable=UNSTABLE > > > > Same situation -- the at page at offset 53248 has 305 bytes on it, > > and > > the remaining is zeroed. This trace shows similar racing write() and > > writeback activity as in Friday's trace. At around the same time as > > the > > client was growing the file over the affected range, writeback was > > kicking off for everything up to the affected range (this has some > > other wb related calls filtered for brevity): > > > > oil-localfs-86-727850 [215] ..... 479572.053987: nfs_size_grow: > > fileid=00:96:10067193438 fhandle=0x14c40498 > > version=1753823598774309300 cursize=217088 > > newsize=220572 > > > > kworker/u1036:8-2339326 [088] ..... 479572.054008: > > nfs_initiate_write: fileid=00:96:10067193438 fhandle=0xc9992232 > > offset=217088 count=3484 > > stable=UNSTABLE > > > > oil-localfs-86-727850 [215] ..... 479572.054405: nfs_size_grow: > > fileid=00:96:10067193438 fhandle=0x14c40498 > > version=1753823598774309300 cursize=220572 > > newsize=221184 > > > > kworker/u1036:1-2297875 [217] ..... 479572.054418: > > nfs_initiate_write: fileid=00:96:10067193438 fhandle=0xc9992232 > > offset=220572 count=612 > > stable=UNSTABLE > > > > oil-localfs-86-727850 [215] ..... 479572.054581: nfs_size_grow: > > fileid=00:96:10067193438 fhandle=0x14c40498 > > version=1753823598774309300 cursize=221184 > > newsize=225280 > > > > oil-localfs-86-727850 [215] ..... 479572.054584: nfs_size_grow: > > fileid=00:96:10067193438 fhandle=0x14c40498 > > version=1753823598774309300 cursize=225280 > > newsize=225585 > > > > kworker/u1036:0-2339252 [217] ..... 479572.054622: > > nfs_initiate_write: fileid=00:96:10067193438 fhandle=0xc9992232 > > offset=221184 count=4401 > > stable=UNSTABLE > > > > oil-localfs-86-727850 [215] ..... 479572.054997: nfs_size_grow: > > fileid=00:96:10067193438 fhandle=0x14c40498 > > version=1753823598774309300 cursize=225585 > > newsize=229376 > > > > oil-localfs-86-727850 [215] ..... 479572.055190: nfs_size_grow: > > fileid=00:96:10067193438 fhandle=0x14c40498 > > version=1753823598774309300 cursize=229376 > > newsize=230598 > > > > > > Could this be a race between extending an existing dirty page, and > > writeback kicking off for the pre-extension range on the page? Maybe > > the client is clearing the dirty bit, thinking that the write covers > > the dirty range, but it has an outdated idea about what that range is > > or doesn't properly check? > > > > Traces for both events, filtered on the relevant fileid are attached. > > I've rolled patches for some new tracepoints that I'm going to > > attempt > > to turn up next, but I thought that this was a good point to solicit > > ideas. > > > > Happy to entertain other thoughts or patches! > > So... The fact that we are seeing a nfs_size_grow() for the hole at > offset 55143 means that either an existing request was updated, or a > new one was created in order to cover that hole, and it must have been > marked as dirty. > > I'm not seeing anything in the NFS code that can lose that request > without triggering either the nfs_write_error tracepoint, the > nfs_commit_error tracepoint, the nfs_invalidate_folio tracepoint or > else completing the write. > > The only other way I can see this data being lost is if something is > corrupting folio->private, or if the page cache is somehow managing to > throw away a dirty folio. > Of the two, there was for a while a netfs bug which would corrupt > folio->private, but I assume you're not using cachefs? After staring at this code a lot, I have a theory. But, it seems like we'd be seeing this a lot more if it were correct, so I must be overlooking something. Here's the scenario: --------------8<-------------- Userland has written some of a file and the last folio is not full. Writeback has kicked off for the inode and is successful. nfs_write_completion() calls nfs_page_end_writeback(). That will unlock the nfs_page (clear PG_BUSY) and leave it attached to the folio, and on the commit list. Next a write from userland comes in to extend the file to the end of the page (and beyond). nfs_try_to_update_request() merges the write into the original request and re-marks the page dirty. Later the commit runs successfully and the write verifier matches. nfs_commit_release_pages() runs and nfs_inode_remove_request() is called which detaches the nfs_page from the folio. Eventually, writeback starts up again and the folio is picked up and submitted by nfs_writepages(), but folio->private is now NULL, and it's ignored. But...like I said I feel like we'd hit this all the time if it were possible, even though I don't see what prevents it. If this is a possibility, then the patch may be as simple as something like this? diff --git a/fs/nfs/write.c b/fs/nfs/write.c index bb0e78644ffb..72402208fa33 100644 --- a/fs/nfs/write.c +++ b/fs/nfs/write.c @@ -1867,7 +1867,7 @@ static void nfs_commit_release_pages(struct nfs_commit_data *data) * returned by the server against all stored verfs. */ if (nfs_write_match_verf(verf, req)) { /* We have a match */ - if (folio) + if (folio && !folio_test_dirty(folio)) nfs_inode_remove_request(req); dprintk_cont(" OK\n"); goto next; ^ permalink raw reply related [flat|nested] 20+ messages in thread
* Re: parts of pages on NFS being replaced by swaths of NULs 2025-08-12 11:58 ` Jeff Layton @ 2025-08-12 16:58 ` Trond Myklebust 2025-08-12 17:20 ` Jeff Layton 2025-08-16 13:01 ` Jeff Layton 0 siblings, 2 replies; 20+ messages in thread From: Trond Myklebust @ 2025-08-12 16:58 UTC (permalink / raw) To: Jeff Layton, Anna Schumaker; +Cc: Chuck Lever, linux-nfs On Tue, 2025-08-12 at 07:58 -0400, Jeff Layton wrote: > On Thu, 2025-07-31 at 17:56 -0400, Trond Myklebust wrote: > > On Wed, 2025-07-30 at 10:52 -0400, Jeff Layton wrote: > > > We've been seeing a rather nasty bit of data corruption with NFS > > > in > > > our > > > environment. The clients in this env run a patched v6.9 kernel > > > (mostly > > > due to GPU driver requirements). Most of the patches are NFS > > > containerization fixes. > > > > > > The workload is python scripts writing JSONL files sequentially > > > using > > > bog-standard buffered write() calls. We're fairly certain that > > > userland > > > is not seeking so there should be no gaps in the data written. > > > > > > The problem is that we see ranges of written files being replaced > > > by > > > NULs. The length of the file seemingly doesn't change from what > > > it > > > should be, but a chunk of it will be zeroed-out. Looking at the > > > offsets > > > of the zeroed out ranges, the front part of one page is fine, but > > > the > > > data from some random offset in the page to the end of the page > > > is > > > zeroes. > > > > > > We have a reproducer but we have to run it in a heavily parallel > > > configuration to make it happen, so it's evidently a tight race > > > of > > > some > > > sort. > > > > > > We've turned up some tracepoints and reproduced this twice. What > > > we > > > see > > > in both cases is that the client just doesn't write some section > > > of > > > the > > > file. > > > > > > In the first trace, there was is a gap of 2201 bytes between > > > these > > > two > > > writes on the wire: > > > > > > kworker/u1038:1-2597138 [106] ..... 46138.516795: > > > nfs_initiate_write: fileid=00:aa:10056165185 fhandle=0x6bd94d55 > > > offset=53248 count=1895 stable=UNSTABLE > > > oil-localfs-252-2605046 [163] ..... 46138.551459: > > > nfs_initiate_write: fileid=00:aa:10056165185 fhandle=0x6bd94d55 > > > offset=57344 count=443956 stable=FILE_SYNC > > > > > > The zeroed-out range is from 55143-57344. At the same time that > > > the > > > file is growing from 53248 to 55143 (due to sequential write() > > > activity), the client is kicking off writeback for the range up > > > to > > > 55143. It's issuing 2 writes, one for 0-53248 and one for 53248- > > > 55143 > > > (note that I've filtered out all but one of the DS filehandles > > > for > > > brevity): > > > > > > oil-localfs-252-2605046 [162] ..... 46138.516414: nfs_size_grow: > > > fileid=00:aa:10056165185 fhandle=0x8bfc64c9 > > > version=1753485366409158129 cursize=49152 newsize=50130 > > > oil-localfs-252-2605046 [162] ..... 46138.516593: nfs_size_grow: > > > fileid=00:aa:10056165185 fhandle=0x8bfc64c9 > > > version=1753485366409158129 cursize=50130 newsize=53248 > > > kworker/u1038:1-2597138 [106] ..... 46138.516740: > > > nfs_initiate_write: fileid=00:aa:10056165185 fhandle=0x6bd94d55 > > > offset=0 count=53248 stable=UNSTABLE > > > oil-localfs-252-2605046 [162] ..... 46138.516753: nfs_size_grow: > > > fileid=00:aa:10056165185 fhandle=0x8bfc64c9 > > > version=1753485366409158129 cursize=53248 newsize=55143 > > > kworker/u1038:1-2597138 [106] ..... 46138.516795: > > > nfs_initiate_write: fileid=00:aa:10056165185 fhandle=0x6bd94d55 > > > offset=53248 count=1895 stable=UNSTABLE > > > kworker/u1037:2-2871862 [097] ..... 46138.517659: > > > nfs4_pnfs_write: > > > error=0 (OK) fileid=00:aa:10056165185 fhandle=0x6bd94d55 offset=0 > > > count=53248 res=53248 stateid=1:0x79a9c471 > > > layoutstateid=1:0xcbd8aaad > > > kworker/u1037:2-2871862 [097] ..... 46138.517662: > > > nfs_writeback_done: error=53248 fileid=00:aa:10056165185 > > > fhandle=0x6bd94d55 offset=0 count=53248 res=53248 stable=UNSTABLE > > > verifier=5199cdae2816c899 > > > kworker/u1037:5-2593935 [226] ..... 46138.517669: > > > nfs4_pnfs_write: > > > error=0 (OK) fileid=00:aa:10056165185 fhandle=0x6bd94d55 > > > offset=53248 > > > count=1895 res=1895 stateid=1:0x79a9c471 > > > layoutstateid=1:0xcbd8aaad > > > kworker/u1037:5-2593935 [226] ..... 46138.517672: > > > nfs_writeback_done: error=1895 fileid=00:aa:10056165185 > > > fhandle=0x6bd94d55 offset=53248 count=1895 res=1895 > > > stable=UNSTABLE > > > verifier=5199cdae2816c899 > > > oil-localfs-252-2605046 [162] ..... 46138.518360: nfs_size_grow: > > > fileid=00:aa:10056165185 fhandle=0x8bfc64c9 > > > version=1753485366409158129 cursize=55143 newsize=57344 > > > oil-localfs-252-2605046 [162] ..... 46138.518556: nfs_size_grow: > > > fileid=00:aa:10056165185 fhandle=0x8bfc64c9 > > > version=1753485366409158129 cursize=57344 newsize=60156 > > > > > > ...and just after writeback completes, we see the file size grow > > > from > > > 55143 to the end of the page (57344). > > > > > > The second trace has similar symptoms. There is a lot more > > > (smaller) > > > write activity (due to memory pressure?). There is a gap of 3791 > > > bytes > > > between these on-the-wire writes, however: > > > > > > kworker/u1036:0-2339252 [217] ..... 479572.054622: > > > nfs_initiate_write: fileid=00:96:10067193438 fhandle=0xc9992232 > > > offset=221184 count=4401 stable=UNSTABLE > > > kworker/u1030:1-2297876 [042] ..... 479572.074194: > > > nfs_initiate_write: fileid=00:96:10067193438 fhandle=0xc9992232 > > > offset=229376 count=261898 stable=UNSTABLE > > > > > > Same situation -- the at page at offset 53248 has 305 bytes on > > > it, > > > and > > > the remaining is zeroed. This trace shows similar racing write() > > > and > > > writeback activity as in Friday's trace. At around the same time > > > as > > > the > > > client was growing the file over the affected range, writeback > > > was > > > kicking off for everything up to the affected range (this has > > > some > > > other wb related calls filtered for brevity): > > > > > > oil-localfs-86-727850 [215] ..... 479572.053987: > > > nfs_size_grow: > > > fileid=00:96:10067193438 fhandle=0x14c40498 > > > version=1753823598774309300 cursize=217088 > > > newsize=220572 > > > > > > > > > kworker/u1036:8-2339326 [088] ..... 479572.054008: > > > nfs_initiate_write: fileid=00:96:10067193438 fhandle=0xc9992232 > > > offset=217088 count=3484 > > > stable=UNSTABLE > > > > > > > > > oil-localfs-86-727850 [215] ..... 479572.054405: > > > nfs_size_grow: > > > fileid=00:96:10067193438 fhandle=0x14c40498 > > > version=1753823598774309300 cursize=220572 > > > newsize=221184 > > > > > > > > > kworker/u1036:1-2297875 [217] ..... 479572.054418: > > > nfs_initiate_write: fileid=00:96:10067193438 fhandle=0xc9992232 > > > offset=220572 count=612 > > > stable=UNSTABLE > > > > > > > > > oil-localfs-86-727850 [215] ..... 479572.054581: > > > nfs_size_grow: > > > fileid=00:96:10067193438 fhandle=0x14c40498 > > > version=1753823598774309300 cursize=221184 > > > newsize=225280 > > > > > > > > > oil-localfs-86-727850 [215] ..... 479572.054584: > > > nfs_size_grow: > > > fileid=00:96:10067193438 fhandle=0x14c40498 > > > version=1753823598774309300 cursize=225280 > > > newsize=225585 > > > > > > > > > kworker/u1036:0-2339252 [217] ..... 479572.054622: > > > nfs_initiate_write: fileid=00:96:10067193438 fhandle=0xc9992232 > > > offset=221184 count=4401 > > > stable=UNSTABLE > > > > > > > > > oil-localfs-86-727850 [215] ..... 479572.054997: > > > nfs_size_grow: > > > fileid=00:96:10067193438 fhandle=0x14c40498 > > > version=1753823598774309300 cursize=225585 > > > newsize=229376 > > > > > > > > > oil-localfs-86-727850 [215] ..... 479572.055190: > > > nfs_size_grow: > > > fileid=00:96:10067193438 fhandle=0x14c40498 > > > version=1753823598774309300 cursize=229376 > > > newsize=230598 > > > > > > > > > > > > Could this be a race between extending an existing dirty page, > > > and > > > writeback kicking off for the pre-extension range on the page? > > > Maybe > > > the client is clearing the dirty bit, thinking that the write > > > covers > > > the dirty range, but it has an outdated idea about what that > > > range is > > > or doesn't properly check? > > > > > > Traces for both events, filtered on the relevant fileid are > > > attached. > > > I've rolled patches for some new tracepoints that I'm going to > > > attempt > > > to turn up next, but I thought that this was a good point to > > > solicit > > > ideas. > > > > > > Happy to entertain other thoughts or patches! > > > > So... The fact that we are seeing a nfs_size_grow() for the hole at > > offset 55143 means that either an existing request was updated, or > > a > > new one was created in order to cover that hole, and it must have > > been > > marked as dirty. > > > > I'm not seeing anything in the NFS code that can lose that request > > without triggering either the nfs_write_error tracepoint, the > > nfs_commit_error tracepoint, the nfs_invalidate_folio tracepoint or > > else completing the write. > > > > The only other way I can see this data being lost is if something > > is > > corrupting folio->private, or if the page cache is somehow managing > > to > > throw away a dirty folio. > > Of the two, there was for a while a netfs bug which would corrupt > > folio->private, but I assume you're not using cachefs? > > After staring at this code a lot, I have a theory. But, it seems like > we'd be seeing this a lot more if it were correct, so I must be > overlooking something. > > Here's the scenario: > > --------------8<-------------- > > Userland has written some of a file and the last folio is not full. > > Writeback has kicked off for the inode and is successful. > nfs_write_completion() calls nfs_page_end_writeback(). That will > unlock > the nfs_page (clear PG_BUSY) and leave it attached to the folio, and > on > the commit list. > > Next a write from userland comes in to extend the file to the end of > the page (and beyond). nfs_try_to_update_request() merges the write > into the original request and re-marks the page dirty. > > Later the commit runs successfully and the write verifier matches. > nfs_commit_release_pages() runs and nfs_inode_remove_request() is > called which detaches the nfs_page from the folio. > > Eventually, writeback starts up again and the folio is picked up and > submitted by nfs_writepages(), but folio->private is now NULL, and > it's > ignored. > > But...like I said I feel like we'd hit this all the time if it were > possible, even though I don't see what prevents it. If this is a > possibility, then the patch may be as simple as something like this? > > diff --git a/fs/nfs/write.c b/fs/nfs/write.c > index bb0e78644ffb..72402208fa33 100644 > --- a/fs/nfs/write.c > +++ b/fs/nfs/write.c > @@ -1867,7 +1867,7 @@ static void nfs_commit_release_pages(struct > nfs_commit_data *data) > * returned by the server against all stored verfs. > */ > if (nfs_write_match_verf(verf, req)) { > /* We have a match */ > - if (folio) > + if (folio && !folio_test_dirty(folio)) > nfs_inode_remove_request(req); > dprintk_cont(" OK\n"); > goto next; The call to nfs_clear_request_commit() in nfs_join_page_group() should be taking care of removing the page before a COMMIT is sent. During both the writeback and the commit, the nfs_page is locked, so won't be available to be updated by nfs_try_to_update_request(). -- Trond Myklebust Linux NFS client maintainer, Hammerspace trondmy@kernel.org, trond.myklebust@hammerspace.com ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: parts of pages on NFS being replaced by swaths of NULs 2025-08-12 16:58 ` Trond Myklebust @ 2025-08-12 17:20 ` Jeff Layton 2025-08-16 13:01 ` Jeff Layton 1 sibling, 0 replies; 20+ messages in thread From: Jeff Layton @ 2025-08-12 17:20 UTC (permalink / raw) To: Trond Myklebust, Anna Schumaker; +Cc: Chuck Lever, linux-nfs On Tue, 2025-08-12 at 09:58 -0700, Trond Myklebust wrote: > On Tue, 2025-08-12 at 07:58 -0400, Jeff Layton wrote: > > On Thu, 2025-07-31 at 17:56 -0400, Trond Myklebust wrote: > > > On Wed, 2025-07-30 at 10:52 -0400, Jeff Layton wrote: > > > > We've been seeing a rather nasty bit of data corruption with NFS > > > > in > > > > our > > > > environment. The clients in this env run a patched v6.9 kernel > > > > (mostly > > > > due to GPU driver requirements). Most of the patches are NFS > > > > containerization fixes. > > > > > > > > The workload is python scripts writing JSONL files sequentially > > > > using > > > > bog-standard buffered write() calls. We're fairly certain that > > > > userland > > > > is not seeking so there should be no gaps in the data written. > > > > > > > > The problem is that we see ranges of written files being replaced > > > > by > > > > NULs. The length of the file seemingly doesn't change from what > > > > it > > > > should be, but a chunk of it will be zeroed-out. Looking at the > > > > offsets > > > > of the zeroed out ranges, the front part of one page is fine, but > > > > the > > > > data from some random offset in the page to the end of the page > > > > is > > > > zeroes. > > > > > > > > We have a reproducer but we have to run it in a heavily parallel > > > > configuration to make it happen, so it's evidently a tight race > > > > of > > > > some > > > > sort. > > > > > > > > We've turned up some tracepoints and reproduced this twice. What > > > > we > > > > see > > > > in both cases is that the client just doesn't write some section > > > > of > > > > the > > > > file. > > > > > > > > In the first trace, there was is a gap of 2201 bytes between > > > > these > > > > two > > > > writes on the wire: > > > > > > > > kworker/u1038:1-2597138 [106] ..... 46138.516795: > > > > nfs_initiate_write: fileid=00:aa:10056165185 fhandle=0x6bd94d55 > > > > offset=53248 count=1895 stable=UNSTABLE > > > > oil-localfs-252-2605046 [163] ..... 46138.551459: > > > > nfs_initiate_write: fileid=00:aa:10056165185 fhandle=0x6bd94d55 > > > > offset=57344 count=443956 stable=FILE_SYNC > > > > > > > > The zeroed-out range is from 55143-57344. At the same time that > > > > the > > > > file is growing from 53248 to 55143 (due to sequential write() > > > > activity), the client is kicking off writeback for the range up > > > > to > > > > 55143. It's issuing 2 writes, one for 0-53248 and one for 53248- > > > > 55143 > > > > (note that I've filtered out all but one of the DS filehandles > > > > for > > > > brevity): > > > > > > > > oil-localfs-252-2605046 [162] ..... 46138.516414: nfs_size_grow: > > > > fileid=00:aa:10056165185 fhandle=0x8bfc64c9 > > > > version=1753485366409158129 cursize=49152 newsize=50130 > > > > oil-localfs-252-2605046 [162] ..... 46138.516593: nfs_size_grow: > > > > fileid=00:aa:10056165185 fhandle=0x8bfc64c9 > > > > version=1753485366409158129 cursize=50130 newsize=53248 > > > > kworker/u1038:1-2597138 [106] ..... 46138.516740: > > > > nfs_initiate_write: fileid=00:aa:10056165185 fhandle=0x6bd94d55 > > > > offset=0 count=53248 stable=UNSTABLE > > > > oil-localfs-252-2605046 [162] ..... 46138.516753: nfs_size_grow: > > > > fileid=00:aa:10056165185 fhandle=0x8bfc64c9 > > > > version=1753485366409158129 cursize=53248 newsize=55143 > > > > kworker/u1038:1-2597138 [106] ..... 46138.516795: > > > > nfs_initiate_write: fileid=00:aa:10056165185 fhandle=0x6bd94d55 > > > > offset=53248 count=1895 stable=UNSTABLE > > > > kworker/u1037:2-2871862 [097] ..... 46138.517659: > > > > nfs4_pnfs_write: > > > > error=0 (OK) fileid=00:aa:10056165185 fhandle=0x6bd94d55 offset=0 > > > > count=53248 res=53248 stateid=1:0x79a9c471 > > > > layoutstateid=1:0xcbd8aaad > > > > kworker/u1037:2-2871862 [097] ..... 46138.517662: > > > > nfs_writeback_done: error=53248 fileid=00:aa:10056165185 > > > > fhandle=0x6bd94d55 offset=0 count=53248 res=53248 stable=UNSTABLE > > > > verifier=5199cdae2816c899 > > > > kworker/u1037:5-2593935 [226] ..... 46138.517669: > > > > nfs4_pnfs_write: > > > > error=0 (OK) fileid=00:aa:10056165185 fhandle=0x6bd94d55 > > > > offset=53248 > > > > count=1895 res=1895 stateid=1:0x79a9c471 > > > > layoutstateid=1:0xcbd8aaad > > > > kworker/u1037:5-2593935 [226] ..... 46138.517672: > > > > nfs_writeback_done: error=1895 fileid=00:aa:10056165185 > > > > fhandle=0x6bd94d55 offset=53248 count=1895 res=1895 > > > > stable=UNSTABLE > > > > verifier=5199cdae2816c899 > > > > oil-localfs-252-2605046 [162] ..... 46138.518360: nfs_size_grow: > > > > fileid=00:aa:10056165185 fhandle=0x8bfc64c9 > > > > version=1753485366409158129 cursize=55143 newsize=57344 > > > > oil-localfs-252-2605046 [162] ..... 46138.518556: nfs_size_grow: > > > > fileid=00:aa:10056165185 fhandle=0x8bfc64c9 > > > > version=1753485366409158129 cursize=57344 newsize=60156 > > > > > > > > ...and just after writeback completes, we see the file size grow > > > > from > > > > 55143 to the end of the page (57344). > > > > > > > > The second trace has similar symptoms. There is a lot more > > > > (smaller) > > > > write activity (due to memory pressure?). There is a gap of 3791 > > > > bytes > > > > between these on-the-wire writes, however: > > > > > > > > kworker/u1036:0-2339252 [217] ..... 479572.054622: > > > > nfs_initiate_write: fileid=00:96:10067193438 fhandle=0xc9992232 > > > > offset=221184 count=4401 stable=UNSTABLE > > > > kworker/u1030:1-2297876 [042] ..... 479572.074194: > > > > nfs_initiate_write: fileid=00:96:10067193438 fhandle=0xc9992232 > > > > offset=229376 count=261898 stable=UNSTABLE > > > > > > > > Same situation -- the at page at offset 53248 has 305 bytes on > > > > it, > > > > and > > > > the remaining is zeroed. This trace shows similar racing write() > > > > and > > > > writeback activity as in Friday's trace. At around the same time > > > > as > > > > the > > > > client was growing the file over the affected range, writeback > > > > was > > > > kicking off for everything up to the affected range (this has > > > > some > > > > other wb related calls filtered for brevity): > > > > > > > > oil-localfs-86-727850 [215] ..... 479572.053987: > > > > nfs_size_grow: > > > > fileid=00:96:10067193438 fhandle=0x14c40498 > > > > version=1753823598774309300 cursize=217088 > > > > newsize=220572 > > > > > > > > > > > > kworker/u1036:8-2339326 [088] ..... 479572.054008: > > > > nfs_initiate_write: fileid=00:96:10067193438 fhandle=0xc9992232 > > > > offset=217088 count=3484 > > > > stable=UNSTABLE > > > > > > > > > > > > oil-localfs-86-727850 [215] ..... 479572.054405: > > > > nfs_size_grow: > > > > fileid=00:96:10067193438 fhandle=0x14c40498 > > > > version=1753823598774309300 cursize=220572 > > > > newsize=221184 > > > > > > > > > > > > kworker/u1036:1-2297875 [217] ..... 479572.054418: > > > > nfs_initiate_write: fileid=00:96:10067193438 fhandle=0xc9992232 > > > > offset=220572 count=612 > > > > stable=UNSTABLE > > > > > > > > > > > > oil-localfs-86-727850 [215] ..... 479572.054581: > > > > nfs_size_grow: > > > > fileid=00:96:10067193438 fhandle=0x14c40498 > > > > version=1753823598774309300 cursize=221184 > > > > newsize=225280 > > > > > > > > > > > > oil-localfs-86-727850 [215] ..... 479572.054584: > > > > nfs_size_grow: > > > > fileid=00:96:10067193438 fhandle=0x14c40498 > > > > version=1753823598774309300 cursize=225280 > > > > newsize=225585 > > > > > > > > > > > > kworker/u1036:0-2339252 [217] ..... 479572.054622: > > > > nfs_initiate_write: fileid=00:96:10067193438 fhandle=0xc9992232 > > > > offset=221184 count=4401 > > > > stable=UNSTABLE > > > > > > > > > > > > oil-localfs-86-727850 [215] ..... 479572.054997: > > > > nfs_size_grow: > > > > fileid=00:96:10067193438 fhandle=0x14c40498 > > > > version=1753823598774309300 cursize=225585 > > > > newsize=229376 > > > > > > > > > > > > oil-localfs-86-727850 [215] ..... 479572.055190: > > > > nfs_size_grow: > > > > fileid=00:96:10067193438 fhandle=0x14c40498 > > > > version=1753823598774309300 cursize=229376 > > > > newsize=230598 > > > > > > > > > > > > > > > > Could this be a race between extending an existing dirty page, > > > > and > > > > writeback kicking off for the pre-extension range on the page? > > > > Maybe > > > > the client is clearing the dirty bit, thinking that the write > > > > covers > > > > the dirty range, but it has an outdated idea about what that > > > > range is > > > > or doesn't properly check? > > > > > > > > Traces for both events, filtered on the relevant fileid are > > > > attached. > > > > I've rolled patches for some new tracepoints that I'm going to > > > > attempt > > > > to turn up next, but I thought that this was a good point to > > > > solicit > > > > ideas. > > > > > > > > Happy to entertain other thoughts or patches! > > > > > > So... The fact that we are seeing a nfs_size_grow() for the hole at > > > offset 55143 means that either an existing request was updated, or > > > a > > > new one was created in order to cover that hole, and it must have > > > been > > > marked as dirty. > > > > > > I'm not seeing anything in the NFS code that can lose that request > > > without triggering either the nfs_write_error tracepoint, the > > > nfs_commit_error tracepoint, the nfs_invalidate_folio tracepoint or > > > else completing the write. > > > > > > The only other way I can see this data being lost is if something > > > is > > > corrupting folio->private, or if the page cache is somehow managing > > > to > > > throw away a dirty folio. > > > Of the two, there was for a while a netfs bug which would corrupt > > > folio->private, but I assume you're not using cachefs? > > > > After staring at this code a lot, I have a theory. But, it seems like > > we'd be seeing this a lot more if it were correct, so I must be > > overlooking something. > > > > Here's the scenario: > > > > --------------8<-------------- > > > > Userland has written some of a file and the last folio is not full. > > > > Writeback has kicked off for the inode and is successful. > > nfs_write_completion() calls nfs_page_end_writeback(). That will > > unlock > > the nfs_page (clear PG_BUSY) and leave it attached to the folio, and > > on > > the commit list. > > > > Next a write from userland comes in to extend the file to the end of > > the page (and beyond). nfs_try_to_update_request() merges the write > > into the original request and re-marks the page dirty. > > > > Later the commit runs successfully and the write verifier matches. > > nfs_commit_release_pages() runs and nfs_inode_remove_request() is > > called which detaches the nfs_page from the folio. > > > > Eventually, writeback starts up again and the folio is picked up and > > submitted by nfs_writepages(), but folio->private is now NULL, and > > it's > > ignored. > > > > But...like I said I feel like we'd hit this all the time if it were > > possible, even though I don't see what prevents it. If this is a > > possibility, then the patch may be as simple as something like this? > > > > diff --git a/fs/nfs/write.c b/fs/nfs/write.c > > index bb0e78644ffb..72402208fa33 100644 > > --- a/fs/nfs/write.c > > +++ b/fs/nfs/write.c > > @@ -1867,7 +1867,7 @@ static void nfs_commit_release_pages(struct > > nfs_commit_data *data) > > * returned by the server against all stored verfs. > > */ > > if (nfs_write_match_verf(verf, req)) { > > /* We have a match */ > > - if (folio) > > + if (folio && !folio_test_dirty(folio)) > > nfs_inode_remove_request(req); > > dprintk_cont(" OK\n"); > > goto next; > > The call to nfs_clear_request_commit() in nfs_join_page_group() should > be taking care of removing the page before a COMMIT is sent. > Got it, thanks. Yeah, that should prevent the commit callback from touching the page. > During both the writeback and the commit, the nfs_page is locked, so > won't be available to be updated by nfs_try_to_update_request(). Yes. I was thinking of the window between the two, but I think you're right that nfs_clear_request_commit() should prevent the commit from touching the page after it gets merged in. Still, the timing of the trace messages suggests that there is race of some sort: oil-localfs-161-1326370 [135] ..... 42066.128429: nfs_write_end: fileid=00:82:10087279963 fhandle=0xa6491ad0 version=1754454982197296994 offset=10026 count=2262 oil-localfs-161-1326370 [135] ..... 42066.128429: nfs_update_folio: fileid=00:82:10087279963 fhandle=0xa6491ad0 version=1754454982197296994 offset=1834 count=2262 oil-localfs-161-1326370 [135] ..... 42066.128429: nfs_try_to_update_request: fileid=00:82:10087279963 fhandle=0xa6491ad0 version=1754454982197296994 offset=1834 count=2262 Here it ends up blocked in nfs_lock_request() while the commit runs. kworker/u1028:3-3432139 [031] ..... 42066.128431: nfs_initiate_commit: fileid=00:82:10087279963 fhandle=0x483d45e0 offset=0 count=0 kworker/u1028:3-3432139 [031] ..... 42066.128435: nfs_initiate_commit: fileid=00:82:10087279963 fhandle=0x7619eec9 offset=0 count=0 kworker/u1028:3-3432139 [031] ..... 42066.128437: nfs_initiate_commit: fileid=00:82:10087279963 fhandle=0xd0cc79e6 offset=0 count=0 kworker/u1037:1-3477598 [226] ..... 42066.129140: nfs_commit_done: error=0 fileid=00:82:10087279963 fhandle=0x7619eec9 offset=0 stable=FILE_SYNC verifier=615487ab86b79ab3 kworker/u1035:0-3302696 [209] ..... 42066.129158: nfs_commit_done: error=0 fileid=00:82:10087279963 fhandle=0x483d45e0 offset=0 stable=FILE_SYNC verifier=a376459679d60091 kworker/u1028:3-3432139 [031] ..... 42066.129163: nfs_commit_done: error=0 fileid=00:82:10087279963 fhandle=0xd0cc79e6 offset=0 stable=FILE_SYNC verifier=ff1ddeecd9737f82 kworker drops the lock, nfs_try_to_update_request() runs to completion and eventually the nfs_size_grow() runs. oil-localfs-161-1326370 [135] ..... 42066.129179: nfs_size_grow: fileid=00:82:10087279963 fhandle=0xa6491ad0 version=1754454982197296994 cursize=10026 newsize=12288 FWIW, I have a bpftrace script that I'm hoping might give us a bit more info about why the page didn't get written back when this happens. Just waiting for some time to run it in our test env. I'll keep looking! -- Jeff Layton <jlayton@kernel.org> ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: parts of pages on NFS being replaced by swaths of NULs 2025-08-12 16:58 ` Trond Myklebust 2025-08-12 17:20 ` Jeff Layton @ 2025-08-16 13:01 ` Jeff Layton 2025-08-16 14:51 ` Trond Myklebust 1 sibling, 1 reply; 20+ messages in thread From: Jeff Layton @ 2025-08-16 13:01 UTC (permalink / raw) To: Trond Myklebust, Anna Schumaker; +Cc: Chuck Lever, linux-nfs [-- Attachment #1: Type: text/plain, Size: 16275 bytes --] On Tue, 2025-08-12 at 09:58 -0700, Trond Myklebust wrote: > On Tue, 2025-08-12 at 07:58 -0400, Jeff Layton wrote: > > On Thu, 2025-07-31 at 17:56 -0400, Trond Myklebust wrote: > > > On Wed, 2025-07-30 at 10:52 -0400, Jeff Layton wrote: > > > > We've been seeing a rather nasty bit of data corruption with NFS > > > > in > > > > our > > > > environment. The clients in this env run a patched v6.9 kernel > > > > (mostly > > > > due to GPU driver requirements). Most of the patches are NFS > > > > containerization fixes. > > > > > > > > The workload is python scripts writing JSONL files sequentially > > > > using > > > > bog-standard buffered write() calls. We're fairly certain that > > > > userland > > > > is not seeking so there should be no gaps in the data written. > > > > > > > > The problem is that we see ranges of written files being replaced > > > > by > > > > NULs. The length of the file seemingly doesn't change from what > > > > it > > > > should be, but a chunk of it will be zeroed-out. Looking at the > > > > offsets > > > > of the zeroed out ranges, the front part of one page is fine, but > > > > the > > > > data from some random offset in the page to the end of the page > > > > is > > > > zeroes. > > > > > > > > We have a reproducer but we have to run it in a heavily parallel > > > > configuration to make it happen, so it's evidently a tight race > > > > of > > > > some > > > > sort. > > > > > > > > We've turned up some tracepoints and reproduced this twice. What > > > > we > > > > see > > > > in both cases is that the client just doesn't write some section > > > > of > > > > the > > > > file. > > > > > > > > In the first trace, there was is a gap of 2201 bytes between > > > > these > > > > two > > > > writes on the wire: > > > > > > > > kworker/u1038:1-2597138 [106] ..... 46138.516795: > > > > nfs_initiate_write: fileid=00:aa:10056165185 fhandle=0x6bd94d55 > > > > offset=53248 count=1895 stable=UNSTABLE > > > > oil-localfs-252-2605046 [163] ..... 46138.551459: > > > > nfs_initiate_write: fileid=00:aa:10056165185 fhandle=0x6bd94d55 > > > > offset=57344 count=443956 stable=FILE_SYNC > > > > > > > > The zeroed-out range is from 55143-57344. At the same time that > > > > the > > > > file is growing from 53248 to 55143 (due to sequential write() > > > > activity), the client is kicking off writeback for the range up > > > > to > > > > 55143. It's issuing 2 writes, one for 0-53248 and one for 53248- > > > > 55143 > > > > (note that I've filtered out all but one of the DS filehandles > > > > for > > > > brevity): > > > > > > > > oil-localfs-252-2605046 [162] ..... 46138.516414: nfs_size_grow: > > > > fileid=00:aa:10056165185 fhandle=0x8bfc64c9 > > > > version=1753485366409158129 cursize=49152 newsize=50130 > > > > oil-localfs-252-2605046 [162] ..... 46138.516593: nfs_size_grow: > > > > fileid=00:aa:10056165185 fhandle=0x8bfc64c9 > > > > version=1753485366409158129 cursize=50130 newsize=53248 > > > > kworker/u1038:1-2597138 [106] ..... 46138.516740: > > > > nfs_initiate_write: fileid=00:aa:10056165185 fhandle=0x6bd94d55 > > > > offset=0 count=53248 stable=UNSTABLE > > > > oil-localfs-252-2605046 [162] ..... 46138.516753: nfs_size_grow: > > > > fileid=00:aa:10056165185 fhandle=0x8bfc64c9 > > > > version=1753485366409158129 cursize=53248 newsize=55143 > > > > kworker/u1038:1-2597138 [106] ..... 46138.516795: > > > > nfs_initiate_write: fileid=00:aa:10056165185 fhandle=0x6bd94d55 > > > > offset=53248 count=1895 stable=UNSTABLE > > > > kworker/u1037:2-2871862 [097] ..... 46138.517659: > > > > nfs4_pnfs_write: > > > > error=0 (OK) fileid=00:aa:10056165185 fhandle=0x6bd94d55 offset=0 > > > > count=53248 res=53248 stateid=1:0x79a9c471 > > > > layoutstateid=1:0xcbd8aaad > > > > kworker/u1037:2-2871862 [097] ..... 46138.517662: > > > > nfs_writeback_done: error=53248 fileid=00:aa:10056165185 > > > > fhandle=0x6bd94d55 offset=0 count=53248 res=53248 stable=UNSTABLE > > > > verifier=5199cdae2816c899 > > > > kworker/u1037:5-2593935 [226] ..... 46138.517669: > > > > nfs4_pnfs_write: > > > > error=0 (OK) fileid=00:aa:10056165185 fhandle=0x6bd94d55 > > > > offset=53248 > > > > count=1895 res=1895 stateid=1:0x79a9c471 > > > > layoutstateid=1:0xcbd8aaad > > > > kworker/u1037:5-2593935 [226] ..... 46138.517672: > > > > nfs_writeback_done: error=1895 fileid=00:aa:10056165185 > > > > fhandle=0x6bd94d55 offset=53248 count=1895 res=1895 > > > > stable=UNSTABLE > > > > verifier=5199cdae2816c899 > > > > oil-localfs-252-2605046 [162] ..... 46138.518360: nfs_size_grow: > > > > fileid=00:aa:10056165185 fhandle=0x8bfc64c9 > > > > version=1753485366409158129 cursize=55143 newsize=57344 > > > > oil-localfs-252-2605046 [162] ..... 46138.518556: nfs_size_grow: > > > > fileid=00:aa:10056165185 fhandle=0x8bfc64c9 > > > > version=1753485366409158129 cursize=57344 newsize=60156 > > > > > > > > ...and just after writeback completes, we see the file size grow > > > > from > > > > 55143 to the end of the page (57344). > > > > > > > > The second trace has similar symptoms. There is a lot more > > > > (smaller) > > > > write activity (due to memory pressure?). There is a gap of 3791 > > > > bytes > > > > between these on-the-wire writes, however: > > > > > > > > kworker/u1036:0-2339252 [217] ..... 479572.054622: > > > > nfs_initiate_write: fileid=00:96:10067193438 fhandle=0xc9992232 > > > > offset=221184 count=4401 stable=UNSTABLE > > > > kworker/u1030:1-2297876 [042] ..... 479572.074194: > > > > nfs_initiate_write: fileid=00:96:10067193438 fhandle=0xc9992232 > > > > offset=229376 count=261898 stable=UNSTABLE > > > > > > > > Same situation -- the at page at offset 53248 has 305 bytes on > > > > it, > > > > and > > > > the remaining is zeroed. This trace shows similar racing write() > > > > and > > > > writeback activity as in Friday's trace. At around the same time > > > > as > > > > the > > > > client was growing the file over the affected range, writeback > > > > was > > > > kicking off for everything up to the affected range (this has > > > > some > > > > other wb related calls filtered for brevity): > > > > > > > > oil-localfs-86-727850 [215] ..... 479572.053987: > > > > nfs_size_grow: > > > > fileid=00:96:10067193438 fhandle=0x14c40498 > > > > version=1753823598774309300 cursize=217088 > > > > newsize=220572 > > > > > > > > > > > > kworker/u1036:8-2339326 [088] ..... 479572.054008: > > > > nfs_initiate_write: fileid=00:96:10067193438 fhandle=0xc9992232 > > > > offset=217088 count=3484 > > > > stable=UNSTABLE > > > > > > > > > > > > oil-localfs-86-727850 [215] ..... 479572.054405: > > > > nfs_size_grow: > > > > fileid=00:96:10067193438 fhandle=0x14c40498 > > > > version=1753823598774309300 cursize=220572 > > > > newsize=221184 > > > > > > > > > > > > kworker/u1036:1-2297875 [217] ..... 479572.054418: > > > > nfs_initiate_write: fileid=00:96:10067193438 fhandle=0xc9992232 > > > > offset=220572 count=612 > > > > stable=UNSTABLE > > > > > > > > > > > > oil-localfs-86-727850 [215] ..... 479572.054581: > > > > nfs_size_grow: > > > > fileid=00:96:10067193438 fhandle=0x14c40498 > > > > version=1753823598774309300 cursize=221184 > > > > newsize=225280 > > > > > > > > > > > > oil-localfs-86-727850 [215] ..... 479572.054584: > > > > nfs_size_grow: > > > > fileid=00:96:10067193438 fhandle=0x14c40498 > > > > version=1753823598774309300 cursize=225280 > > > > newsize=225585 > > > > > > > > > > > > kworker/u1036:0-2339252 [217] ..... 479572.054622: > > > > nfs_initiate_write: fileid=00:96:10067193438 fhandle=0xc9992232 > > > > offset=221184 count=4401 > > > > stable=UNSTABLE > > > > > > > > > > > > oil-localfs-86-727850 [215] ..... 479572.054997: > > > > nfs_size_grow: > > > > fileid=00:96:10067193438 fhandle=0x14c40498 > > > > version=1753823598774309300 cursize=225585 > > > > newsize=229376 > > > > > > > > > > > > oil-localfs-86-727850 [215] ..... 479572.055190: > > > > nfs_size_grow: > > > > fileid=00:96:10067193438 fhandle=0x14c40498 > > > > version=1753823598774309300 cursize=229376 > > > > newsize=230598 > > > > > > > > > > > > > > > > Could this be a race between extending an existing dirty page, > > > > and > > > > writeback kicking off for the pre-extension range on the page? > > > > Maybe > > > > the client is clearing the dirty bit, thinking that the write > > > > covers > > > > the dirty range, but it has an outdated idea about what that > > > > range is > > > > or doesn't properly check? > > > > > > > > Traces for both events, filtered on the relevant fileid are > > > > attached. > > > > I've rolled patches for some new tracepoints that I'm going to > > > > attempt > > > > to turn up next, but I thought that this was a good point to > > > > solicit > > > > ideas. > > > > > > > > Happy to entertain other thoughts or patches! > > > > > > So... The fact that we are seeing a nfs_size_grow() for the hole at > > > offset 55143 means that either an existing request was updated, or > > > a > > > new one was created in order to cover that hole, and it must have > > > been > > > marked as dirty. > > > > > > I'm not seeing anything in the NFS code that can lose that request > > > without triggering either the nfs_write_error tracepoint, the > > > nfs_commit_error tracepoint, the nfs_invalidate_folio tracepoint or > > > else completing the write. > > > > > > The only other way I can see this data being lost is if something > > > is > > > corrupting folio->private, or if the page cache is somehow managing > > > to > > > throw away a dirty folio. > > > Of the two, there was for a while a netfs bug which would corrupt > > > folio->private, but I assume you're not using cachefs? > > > > After staring at this code a lot, I have a theory. But, it seems like > > we'd be seeing this a lot more if it were correct, so I must be > > overlooking something. > > > > Here's the scenario: > > > > --------------8<-------------- > > > > Userland has written some of a file and the last folio is not full. > > > > Writeback has kicked off for the inode and is successful. > > nfs_write_completion() calls nfs_page_end_writeback(). That will > > unlock > > the nfs_page (clear PG_BUSY) and leave it attached to the folio, and > > on > > the commit list. > > > > Next a write from userland comes in to extend the file to the end of > > the page (and beyond). nfs_try_to_update_request() merges the write > > into the original request and re-marks the page dirty. > > > > Later the commit runs successfully and the write verifier matches. > > nfs_commit_release_pages() runs and nfs_inode_remove_request() is > > called which detaches the nfs_page from the folio. > > > > Eventually, writeback starts up again and the folio is picked up and > > submitted by nfs_writepages(), but folio->private is now NULL, and > > it's > > ignored. > > > > But...like I said I feel like we'd hit this all the time if it were > > possible, even though I don't see what prevents it. If this is a > > possibility, then the patch may be as simple as something like this? > > > > diff --git a/fs/nfs/write.c b/fs/nfs/write.c > > index bb0e78644ffb..72402208fa33 100644 > > --- a/fs/nfs/write.c > > +++ b/fs/nfs/write.c > > @@ -1867,7 +1867,7 @@ static void nfs_commit_release_pages(struct > > nfs_commit_data *data) > > * returned by the server against all stored verfs. > > */ > > if (nfs_write_match_verf(verf, req)) { > > /* We have a match */ > > - if (folio) > > + if (folio && !folio_test_dirty(folio)) > > nfs_inode_remove_request(req); > > dprintk_cont(" OK\n"); > > goto next; > > The call to nfs_clear_request_commit() in nfs_join_page_group() should > be taking care of removing the page before a COMMIT is sent. > > During both the writeback and the commit, the nfs_page is locked, so > won't be available to be updated by nfs_try_to_update_request(). I finally caught something concrete today. I had the attached bpftrace script running while running the reproducer on a dozen or so machines, and it detected a hole in some data being written: -------------8<--------------- Attached 2 probes Missing nfs_page: ino=10122173116 idx=2 flags=0x15ffff0000000029 Hole: ino=10122173116 idx=3 off=10026 size=2262 Prev folio: idx=2 flags=0x15ffff0000000028 pgbase=0 bytes=4096 req=0 prevreq=0xffff8955b2f55980 -------------8<--------------- What this tells us is that the page at idx=2 got submitted to nfs_do_writepage() (so it was marked dirty in the pagecache), but when it got there, folio->private was NULL and it was ignored. The kernel in this case is based on v6.9, so it's (just) pre-large- folio support. It has a fair number of NFS patches, but not much to this portion of the code. Most of them are are containerization fixes. I'm looking askance at nfs_inode_remove_request(). It does this: if (nfs_page_group_sync_on_bit(req, PG_REMOVE)) { struct folio *folio = nfs_page_to_folio(req->wb_head); struct address_space *mapping = folio->mapping; spin_lock(&mapping->i_private_lock); if (likely(folio)) { folio->private = NULL; folio_clear_private(folio); clear_bit(PG_MAPPED, &req->wb_head->wb_flags); } spin_unlock(&mapping->i_private_lock); } If nfs_page_group_sync_on_bit() returns true, then the nfs_page gets detached from the folio. Meanwhile, if a new write request comes in just after that, nfs_lock_and_join_requests() will call nfs_cancel_remove_inode() to try to "cancel" PG_REMOVE: static int nfs_cancel_remove_inode(struct nfs_page *req, struct inode *inode) { int ret; if (!test_bit(PG_REMOVE, &req->wb_flags)) return 0; ret = nfs_page_group_lock(req); if (ret) return ret; if (test_and_clear_bit(PG_REMOVE, &req->wb_flags)) nfs_page_set_inode_ref(req, inode); nfs_page_group_unlock(req); return 0; } ...but that does not reattach the nfs_page to the folio. Should it? -- Jeff Layton <jlayton@kernel.org> [-- Attachment #2: nfs_write_hole.bt --] [-- Type: text/x-csrc, Size: 2262 bytes --] #include <linux/nfs_fs.h> #include <linux/nfs4.h> #include <linux/nfs_page.h> /* * This does generate some false positives if writeback goes out of ascending order. That * shouldn't happen much. Mostly we're interested in unaligned gaps. */ config = { print_maps_on_exit = false; max_map_keys = 16384; } fentry:nfs:nfs_do_writepage { $folio = args.folio; $ino = $folio->mapping->host->i_ino; $idx = $folio->index; $req = (struct nfs_page *)$folio->private; if ($req == 0) { printf("Missing nfs_page: ino=%llu idx=%llu flags=0x%lx\n", $ino, $idx, $folio->page.flags); return; } $start = ($idx * 4096) + $req->wb_pgbase; $end = $start + $req->wb_bytes; $gapsize = $start - @lastend[$ino]; if (($idx == @lastidx[$ino] + 1) && ($gapsize % 4096)) { printf("Hole: ino=%llu idx=%lu off=%llu size=%llu\n", $ino, $idx, @lastend[$ino], $gapsize); $prevfolio = @lastfolio[$ino]; $prevflags = $prevfolio->page.flags; $prevreq = @lastreq[$ino]; $pgbase = (uint32)0; $bytes = (uint32)0; if ($prevreq) { $pgbase = $prevreq->wb_pgbase; $bytes = $prevreq->wb_bytes; } printf("Prev folio: idx=%lu flags=0x%lx pgbase=%llu bytes=%llu req=%p prevreq=%p\n", @lastidx[$ino], $prevflags, $pgbase, $bytes, $prevfolio->private, $prevreq); } @lastidx[$ino] = $idx; @lastfolio[$ino] = $folio; @lastreq[$ino] = $req; @lastend[$ino] = $end; } fentry:nfs:nfs_file_release { $inode = args.inode; $file = args.filp; $ino = $inode->i_ino; // FMODE_WRITE == 0x2 if (!($file->f_mode & 0x2)) { return; } if (has_key(@lastidx, $ino)) { delete(@lastidx, $ino); } if (has_key(@lastfolio, $ino)) { delete(@lastfolio, $ino); } if (has_key(@lastreq, $ino)) { delete(@lastreq, $ino); } if (has_key(@lastend, $ino)) { delete(@lastend, $ino); } } ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: parts of pages on NFS being replaced by swaths of NULs 2025-08-16 13:01 ` Jeff Layton @ 2025-08-16 14:51 ` Trond Myklebust 2025-08-16 15:31 ` Jeff Layton ` (3 more replies) 0 siblings, 4 replies; 20+ messages in thread From: Trond Myklebust @ 2025-08-16 14:51 UTC (permalink / raw) To: Jeff Layton, Anna Schumaker; +Cc: Chuck Lever, linux-nfs On Sat, 2025-08-16 at 09:01 -0400, Jeff Layton wrote: > > I finally caught something concrete today. I had the attached > bpftrace > script running while running the reproducer on a dozen or so > machines, > and it detected a hole in some data being written: > > -------------8<--------------- > Attached 2 probes > Missing nfs_page: ino=10122173116 idx=2 flags=0x15ffff0000000029 > Hole: ino=10122173116 idx=3 off=10026 size=2262 > Prev folio: idx=2 flags=0x15ffff0000000028 pgbase=0 bytes=4096 req=0 > prevreq=0xffff8955b2f55980 > -------------8<--------------- > > What this tells us is that the page at idx=2 got submitted to > nfs_do_writepage() (so it was marked dirty in the pagecache), but > when > it got there, folio->private was NULL and it was ignored. > > The kernel in this case is based on v6.9, so it's (just) pre-large- > folio support. It has a fair number of NFS patches, but not much to > this portion of the code. Most of them are are containerization > fixes. > > I'm looking askance at nfs_inode_remove_request(). It does this: > > if (nfs_page_group_sync_on_bit(req, PG_REMOVE)) { > struct folio *folio = nfs_page_to_folio(req- > >wb_head); > struct address_space *mapping = folio->mapping; > > spin_lock(&mapping->i_private_lock); > if (likely(folio)) { > folio->private = NULL; > folio_clear_private(folio); > clear_bit(PG_MAPPED, &req->wb_head- > >wb_flags); > } > spin_unlock(&mapping->i_private_lock); > } > > If nfs_page_group_sync_on_bit() returns true, then the nfs_page gets > detached from the folio. Meanwhile, if a new write request comes in > just after that, nfs_lock_and_join_requests() will call > nfs_cancel_remove_inode() to try to "cancel" PG_REMOVE: > > static int > nfs_cancel_remove_inode(struct nfs_page *req, struct inode *inode) > { > int ret; > > if (!test_bit(PG_REMOVE, &req->wb_flags)) > return 0; > ret = nfs_page_group_lock(req); > if (ret) > return ret; > if (test_and_clear_bit(PG_REMOVE, &req->wb_flags)) > nfs_page_set_inode_ref(req, inode); > nfs_page_group_unlock(req); > return 0; > } > > ...but that does not reattach the nfs_page to the folio. Should it? > That's not sufficient AFAICS. Does the following patch work? 8<------------------------------------------------------------ From fc9690dda01f001c6cd11665701394da8ebba1ab Mon Sep 17 00:00:00 2001 Message-ID: <fc9690dda01f001c6cd11665701394da8ebba1ab.1755355810.git.trond.myklebust@hammerspace.com> From: Trond Myklebust <trond.myklebust@hammerspace.com> Date: Sat, 16 Aug 2025 07:25:20 -0700 Subject: [PATCH] NFS: Fix a race when updating an existing write After nfs_lock_and_join_requests() tests for whether the request is still attached to the mapping, nothing prevents a call to nfs_inode_remove_request() from succeeding until we actually lock the page group. The reason is that whoever called nfs_inode_remove_request() doesn't necessarily have a lock on the page group head. So in order to avoid races, let's take the page group lock earlier in nfs_lock_and_join_requests(), and hold it across the removal of the request in nfs_inode_remove_request(). Reported-by: Jeff Layton <jlayton@kernel.org> Fixes: c3f2235782c3 ("nfs: fold nfs_folio_find_and_lock_request into nfs_lock_and_join_requests") Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com> --- fs/nfs/pagelist.c | 9 +++++---- fs/nfs/write.c | 29 ++++++++++------------------- include/linux/nfs_page.h | 1 + 3 files changed, 16 insertions(+), 23 deletions(-) diff --git a/fs/nfs/pagelist.c b/fs/nfs/pagelist.c index 11968dcb7243..6e69ce43a13f 100644 --- a/fs/nfs/pagelist.c +++ b/fs/nfs/pagelist.c @@ -253,13 +253,14 @@ nfs_page_group_unlock(struct nfs_page *req) nfs_page_clear_headlock(req); } -/* - * nfs_page_group_sync_on_bit_locked +/** + * nfs_page_group_sync_on_bit_locked - Test if all requests have @bit set + * @req: request in page group + * @bit: PG_* bit that is used to sync page group * * must be called with page group lock held */ -static bool -nfs_page_group_sync_on_bit_locked(struct nfs_page *req, unsigned int bit) +bool nfs_page_group_sync_on_bit_locked(struct nfs_page *req, unsigned int bit) { struct nfs_page *head = req->wb_head; struct nfs_page *tmp; diff --git a/fs/nfs/write.c b/fs/nfs/write.c index fa5c41d0989a..8b7c04737967 100644 --- a/fs/nfs/write.c +++ b/fs/nfs/write.c @@ -153,20 +153,10 @@ nfs_page_set_inode_ref(struct nfs_page *req, struct inode *inode) } } -static int -nfs_cancel_remove_inode(struct nfs_page *req, struct inode *inode) +static void nfs_cancel_remove_inode(struct nfs_page *req, struct inode *inode) { - int ret; - - if (!test_bit(PG_REMOVE, &req->wb_flags)) - return 0; - ret = nfs_page_group_lock(req); - if (ret) - return ret; if (test_and_clear_bit(PG_REMOVE, &req->wb_flags)) nfs_page_set_inode_ref(req, inode); - nfs_page_group_unlock(req); - return 0; } /** @@ -585,19 +575,18 @@ static struct nfs_page *nfs_lock_and_join_requests(struct folio *folio) } } + ret = nfs_page_group_lock(head); + if (ret < 0) + goto out_unlock; + /* Ensure that nobody removed the request before we locked it */ if (head != folio->private) { + nfs_page_group_unlock(head); nfs_unlock_and_release_request(head); goto retry; } - ret = nfs_cancel_remove_inode(head, inode); - if (ret < 0) - goto out_unlock; - - ret = nfs_page_group_lock(head); - if (ret < 0) - goto out_unlock; + nfs_cancel_remove_inode(head, inode); /* lock each request in the page group */ for (subreq = head->wb_this_page; @@ -786,7 +775,8 @@ static void nfs_inode_remove_request(struct nfs_page *req) { struct nfs_inode *nfsi = NFS_I(nfs_page_to_inode(req)); - if (nfs_page_group_sync_on_bit(req, PG_REMOVE)) { + nfs_page_group_lock(req); + if (nfs_page_group_sync_on_bit_locked(req, PG_REMOVE)) { struct folio *folio = nfs_page_to_folio(req->wb_head); struct address_space *mapping = folio->mapping; @@ -798,6 +788,7 @@ static void nfs_inode_remove_request(struct nfs_page *req) } spin_unlock(&mapping->i_private_lock); } + nfs_page_group_unlock(req); if (test_and_clear_bit(PG_INODE_REF, &req->wb_flags)) { atomic_long_dec(&nfsi->nrequests); diff --git a/include/linux/nfs_page.h b/include/linux/nfs_page.h index 169b4ae30ff4..9aed39abc94b 100644 --- a/include/linux/nfs_page.h +++ b/include/linux/nfs_page.h @@ -160,6 +160,7 @@ extern void nfs_join_page_group(struct nfs_page *head, extern int nfs_page_group_lock(struct nfs_page *); extern void nfs_page_group_unlock(struct nfs_page *); extern bool nfs_page_group_sync_on_bit(struct nfs_page *, unsigned int); +extern bool nfs_page_group_sync_on_bit_locked(struct nfs_page *, unsigned int); extern int nfs_page_set_headlock(struct nfs_page *req); extern void nfs_page_clear_headlock(struct nfs_page *req); extern bool nfs_async_iocounter_wait(struct rpc_task *, struct nfs_lock_context *); -- 2.50.1 ^ permalink raw reply related [flat|nested] 20+ messages in thread
* Re: parts of pages on NFS being replaced by swaths of NULs 2025-08-16 14:51 ` Trond Myklebust @ 2025-08-16 15:31 ` Jeff Layton 2025-08-16 17:16 ` Jeff Layton ` (2 subsequent siblings) 3 siblings, 0 replies; 20+ messages in thread From: Jeff Layton @ 2025-08-16 15:31 UTC (permalink / raw) To: Trond Myklebust, Anna Schumaker; +Cc: Chuck Lever, linux-nfs On Sat, 2025-08-16 at 07:51 -0700, Trond Myklebust wrote: > On Sat, 2025-08-16 at 09:01 -0400, Jeff Layton wrote: > > > > I finally caught something concrete today. I had the attached > > bpftrace > > script running while running the reproducer on a dozen or so > > machines, > > and it detected a hole in some data being written: > > > > -------------8<--------------- > > Attached 2 probes > > Missing nfs_page: ino=10122173116 idx=2 flags=0x15ffff0000000029 > > Hole: ino=10122173116 idx=3 off=10026 size=2262 > > Prev folio: idx=2 flags=0x15ffff0000000028 pgbase=0 bytes=4096 req=0 > > prevreq=0xffff8955b2f55980 > > -------------8<--------------- > > > > What this tells us is that the page at idx=2 got submitted to > > nfs_do_writepage() (so it was marked dirty in the pagecache), but > > when > > it got there, folio->private was NULL and it was ignored. > > > > The kernel in this case is based on v6.9, so it's (just) pre-large- > > folio support. It has a fair number of NFS patches, but not much to > > this portion of the code. Most of them are are containerization > > fixes. > > > > I'm looking askance at nfs_inode_remove_request(). It does this: > > > > if (nfs_page_group_sync_on_bit(req, PG_REMOVE)) { > > struct folio *folio = nfs_page_to_folio(req- > > > wb_head); > > struct address_space *mapping = folio->mapping; > > > > spin_lock(&mapping->i_private_lock); > > if (likely(folio)) { > > folio->private = NULL; > > folio_clear_private(folio); > > clear_bit(PG_MAPPED, &req->wb_head- > > > wb_flags); > > } > > spin_unlock(&mapping->i_private_lock); > > } > > > > If nfs_page_group_sync_on_bit() returns true, then the nfs_page gets > > detached from the folio. Meanwhile, if a new write request comes in > > just after that, nfs_lock_and_join_requests() will call > > nfs_cancel_remove_inode() to try to "cancel" PG_REMOVE: > > > > static int > > nfs_cancel_remove_inode(struct nfs_page *req, struct inode *inode) > > { > > int ret; > > > > if (!test_bit(PG_REMOVE, &req->wb_flags)) > > return 0; > > ret = nfs_page_group_lock(req); > > if (ret) > > return ret; > > if (test_and_clear_bit(PG_REMOVE, &req->wb_flags)) > > nfs_page_set_inode_ref(req, inode); > > nfs_page_group_unlock(req); > > return 0; > > } > > > > ...but that does not reattach the nfs_page to the folio. Should it? > > > > That's not sufficient AFAICS. Does the following patch work? > The patch looks good to me and it seems like it should close the race. I'll have to look at backporting it to v6.9, and we'll have to build images, etc. Hopefully we will have some results in a week or so. I'll keep you posted! Thanks, > 8<------------------------------------------------------------ > From fc9690dda01f001c6cd11665701394da8ebba1ab Mon Sep 17 00:00:00 2001 > Message-ID: <fc9690dda01f001c6cd11665701394da8ebba1ab.1755355810.git.trond.myklebust@hammerspace.com> > From: Trond Myklebust <trond.myklebust@hammerspace.com> > Date: Sat, 16 Aug 2025 07:25:20 -0700 > Subject: [PATCH] NFS: Fix a race when updating an existing write > > After nfs_lock_and_join_requests() tests for whether the request is > still attached to the mapping, nothing prevents a call to > nfs_inode_remove_request() from succeeding until we actually lock the > page group. > The reason is that whoever called nfs_inode_remove_request() doesn't > necessarily have a lock on the page group head. > > So in order to avoid races, let's take the page group lock earlier in > nfs_lock_and_join_requests(), and hold it across the removal of the > request in nfs_inode_remove_request(). > > Reported-by: Jeff Layton <jlayton@kernel.org> > Fixes: c3f2235782c3 ("nfs: fold nfs_folio_find_and_lock_request into nfs_lock_and_join_requests") > Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com> > --- > fs/nfs/pagelist.c | 9 +++++---- > fs/nfs/write.c | 29 ++++++++++------------------- > include/linux/nfs_page.h | 1 + > 3 files changed, 16 insertions(+), 23 deletions(-) > > diff --git a/fs/nfs/pagelist.c b/fs/nfs/pagelist.c > index 11968dcb7243..6e69ce43a13f 100644 > --- a/fs/nfs/pagelist.c > +++ b/fs/nfs/pagelist.c > @@ -253,13 +253,14 @@ nfs_page_group_unlock(struct nfs_page *req) > nfs_page_clear_headlock(req); > } > > -/* > - * nfs_page_group_sync_on_bit_locked > +/** > + * nfs_page_group_sync_on_bit_locked - Test if all requests have @bit set > + * @req: request in page group > + * @bit: PG_* bit that is used to sync page group > * > * must be called with page group lock held > */ > -static bool > -nfs_page_group_sync_on_bit_locked(struct nfs_page *req, unsigned int bit) > +bool nfs_page_group_sync_on_bit_locked(struct nfs_page *req, unsigned int bit) > { > struct nfs_page *head = req->wb_head; > struct nfs_page *tmp; > diff --git a/fs/nfs/write.c b/fs/nfs/write.c > index fa5c41d0989a..8b7c04737967 100644 > --- a/fs/nfs/write.c > +++ b/fs/nfs/write.c > @@ -153,20 +153,10 @@ nfs_page_set_inode_ref(struct nfs_page *req, struct inode *inode) > } > } > > -static int > -nfs_cancel_remove_inode(struct nfs_page *req, struct inode *inode) > +static void nfs_cancel_remove_inode(struct nfs_page *req, struct inode *inode) > { > - int ret; > - > - if (!test_bit(PG_REMOVE, &req->wb_flags)) > - return 0; > - ret = nfs_page_group_lock(req); > - if (ret) > - return ret; > if (test_and_clear_bit(PG_REMOVE, &req->wb_flags)) > nfs_page_set_inode_ref(req, inode); > - nfs_page_group_unlock(req); > - return 0; > } > > /** > @@ -585,19 +575,18 @@ static struct nfs_page *nfs_lock_and_join_requests(struct folio *folio) > } > } > > + ret = nfs_page_group_lock(head); > + if (ret < 0) > + goto out_unlock; > + > /* Ensure that nobody removed the request before we locked it */ > if (head != folio->private) { > + nfs_page_group_unlock(head); > nfs_unlock_and_release_request(head); > goto retry; > } > > - ret = nfs_cancel_remove_inode(head, inode); > - if (ret < 0) > - goto out_unlock; > - > - ret = nfs_page_group_lock(head); > - if (ret < 0) > - goto out_unlock; > + nfs_cancel_remove_inode(head, inode); > > /* lock each request in the page group */ > for (subreq = head->wb_this_page; > @@ -786,7 +775,8 @@ static void nfs_inode_remove_request(struct nfs_page *req) > { > struct nfs_inode *nfsi = NFS_I(nfs_page_to_inode(req)); > > - if (nfs_page_group_sync_on_bit(req, PG_REMOVE)) { > + nfs_page_group_lock(req); > + if (nfs_page_group_sync_on_bit_locked(req, PG_REMOVE)) { > struct folio *folio = nfs_page_to_folio(req->wb_head); > struct address_space *mapping = folio->mapping; > > @@ -798,6 +788,7 @@ static void nfs_inode_remove_request(struct nfs_page *req) > } > spin_unlock(&mapping->i_private_lock); > } > + nfs_page_group_unlock(req); > > if (test_and_clear_bit(PG_INODE_REF, &req->wb_flags)) { > atomic_long_dec(&nfsi->nrequests); > diff --git a/include/linux/nfs_page.h b/include/linux/nfs_page.h > index 169b4ae30ff4..9aed39abc94b 100644 > --- a/include/linux/nfs_page.h > +++ b/include/linux/nfs_page.h > @@ -160,6 +160,7 @@ extern void nfs_join_page_group(struct nfs_page *head, > extern int nfs_page_group_lock(struct nfs_page *); > extern void nfs_page_group_unlock(struct nfs_page *); > extern bool nfs_page_group_sync_on_bit(struct nfs_page *, unsigned int); > +extern bool nfs_page_group_sync_on_bit_locked(struct nfs_page *, unsigned int); > extern int nfs_page_set_headlock(struct nfs_page *req); > extern void nfs_page_clear_headlock(struct nfs_page *req); > extern bool nfs_async_iocounter_wait(struct rpc_task *, struct nfs_lock_context *); -- Jeff Layton <jlayton@kernel.org> ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: parts of pages on NFS being replaced by swaths of NULs 2025-08-16 14:51 ` Trond Myklebust 2025-08-16 15:31 ` Jeff Layton @ 2025-08-16 17:16 ` Jeff Layton 2025-08-16 21:25 ` Mike Snitzer 2025-08-19 17:10 ` parts of pages on NFS being replaced by swaths of NULs Jeff Layton 3 siblings, 0 replies; 20+ messages in thread From: Jeff Layton @ 2025-08-16 17:16 UTC (permalink / raw) To: Trond Myklebust, Anna Schumaker; +Cc: Chuck Lever, linux-nfs On Sat, 2025-08-16 at 07:51 -0700, Trond Myklebust wrote: > On Sat, 2025-08-16 at 09:01 -0400, Jeff Layton wrote: > > > > I finally caught something concrete today. I had the attached > > bpftrace > > script running while running the reproducer on a dozen or so > > machines, > > and it detected a hole in some data being written: > > > > -------------8<--------------- > > Attached 2 probes > > Missing nfs_page: ino=10122173116 idx=2 flags=0x15ffff0000000029 > > Hole: ino=10122173116 idx=3 off=10026 size=2262 > > Prev folio: idx=2 flags=0x15ffff0000000028 pgbase=0 bytes=4096 req=0 > > prevreq=0xffff8955b2f55980 > > -------------8<--------------- > > > > What this tells us is that the page at idx=2 got submitted to > > nfs_do_writepage() (so it was marked dirty in the pagecache), but > > when > > it got there, folio->private was NULL and it was ignored. > > > > The kernel in this case is based on v6.9, so it's (just) pre-large- > > folio support. It has a fair number of NFS patches, but not much to > > this portion of the code. Most of them are are containerization > > fixes. > > > > I'm looking askance at nfs_inode_remove_request(). It does this: > > > > if (nfs_page_group_sync_on_bit(req, PG_REMOVE)) { > > struct folio *folio = nfs_page_to_folio(req- > > > wb_head); > > struct address_space *mapping = folio->mapping; > > > > spin_lock(&mapping->i_private_lock); > > if (likely(folio)) { > > folio->private = NULL; > > folio_clear_private(folio); > > clear_bit(PG_MAPPED, &req->wb_head- > > > wb_flags); > > } > > spin_unlock(&mapping->i_private_lock); > > } > > > > If nfs_page_group_sync_on_bit() returns true, then the nfs_page gets > > detached from the folio. Meanwhile, if a new write request comes in > > just after that, nfs_lock_and_join_requests() will call > > nfs_cancel_remove_inode() to try to "cancel" PG_REMOVE: > > > > static int > > nfs_cancel_remove_inode(struct nfs_page *req, struct inode *inode) > > { > > int ret; > > > > if (!test_bit(PG_REMOVE, &req->wb_flags)) > > return 0; > > ret = nfs_page_group_lock(req); > > if (ret) > > return ret; > > if (test_and_clear_bit(PG_REMOVE, &req->wb_flags)) > > nfs_page_set_inode_ref(req, inode); > > nfs_page_group_unlock(req); > > return 0; > > } > > > > ...but that does not reattach the nfs_page to the folio. Should it? > > > > That's not sufficient AFAICS. Does the following patch work? > > 8<------------------------------------------------------------ > From fc9690dda01f001c6cd11665701394da8ebba1ab Mon Sep 17 00:00:00 2001 > Message-ID: <fc9690dda01f001c6cd11665701394da8ebba1ab.1755355810.git.trond.myklebust@hammerspace.com> > From: Trond Myklebust <trond.myklebust@hammerspace.com> > Date: Sat, 16 Aug 2025 07:25:20 -0700 > Subject: [PATCH] NFS: Fix a race when updating an existing write > > After nfs_lock_and_join_requests() tests for whether the request is > still attached to the mapping, nothing prevents a call to > nfs_inode_remove_request() from succeeding until we actually lock the > page group. > The reason is that whoever called nfs_inode_remove_request() doesn't > necessarily have a lock on the page group head. > > So in order to avoid races, let's take the page group lock earlier in > nfs_lock_and_join_requests(), and hold it across the removal of the > request in nfs_inode_remove_request(). > > Reported-by: Jeff Layton <jlayton@kernel.org> > Fixes: c3f2235782c3 ("nfs: fold nfs_folio_find_and_lock_request into nfs_lock_and_join_requests") One comment here: The above patch went into v6.11. The kernel we've been reproducing this on doesn't have it, so I don't think that's the correct Fixes tag. Also, I got a second occurrence with the bpftrace script. Looks like the same problem (just for confirmation): Missing nfs_page: ino=10123250003 idx=23 flags=0x5ffff0000000009 Hole: ino=10123250003 idx=24 off=95247 size=3057 Prev folio: idx=23 flags=0x5ffff0000000008 pgbase=0 bytes=1956 req=0 prevreq=0xffff8882ab9b6a00 > Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com> > --- > fs/nfs/pagelist.c | 9 +++++---- > fs/nfs/write.c | 29 ++++++++++------------------- > include/linux/nfs_page.h | 1 + > 3 files changed, 16 insertions(+), 23 deletions(-) > > diff --git a/fs/nfs/pagelist.c b/fs/nfs/pagelist.c > index 11968dcb7243..6e69ce43a13f 100644 > --- a/fs/nfs/pagelist.c > +++ b/fs/nfs/pagelist.c > @@ -253,13 +253,14 @@ nfs_page_group_unlock(struct nfs_page *req) > nfs_page_clear_headlock(req); > } > > -/* > - * nfs_page_group_sync_on_bit_locked > +/** > + * nfs_page_group_sync_on_bit_locked - Test if all requests have @bit set > + * @req: request in page group > + * @bit: PG_* bit that is used to sync page group > * > * must be called with page group lock held > */ > -static bool > -nfs_page_group_sync_on_bit_locked(struct nfs_page *req, unsigned int bit) > +bool nfs_page_group_sync_on_bit_locked(struct nfs_page *req, unsigned int bit) > { > struct nfs_page *head = req->wb_head; > struct nfs_page *tmp; > diff --git a/fs/nfs/write.c b/fs/nfs/write.c > index fa5c41d0989a..8b7c04737967 100644 > --- a/fs/nfs/write.c > +++ b/fs/nfs/write.c > @@ -153,20 +153,10 @@ nfs_page_set_inode_ref(struct nfs_page *req, struct inode *inode) > } > } > > -static int > -nfs_cancel_remove_inode(struct nfs_page *req, struct inode *inode) > +static void nfs_cancel_remove_inode(struct nfs_page *req, struct inode *inode) > { > - int ret; > - > - if (!test_bit(PG_REMOVE, &req->wb_flags)) > - return 0; > - ret = nfs_page_group_lock(req); > - if (ret) > - return ret; > if (test_and_clear_bit(PG_REMOVE, &req->wb_flags)) > nfs_page_set_inode_ref(req, inode); > - nfs_page_group_unlock(req); > - return 0; > } > > /** > @@ -585,19 +575,18 @@ static struct nfs_page *nfs_lock_and_join_requests(struct folio *folio) > } > } > > + ret = nfs_page_group_lock(head); > + if (ret < 0) > + goto out_unlock; > + > /* Ensure that nobody removed the request before we locked it */ > if (head != folio->private) { > + nfs_page_group_unlock(head); > nfs_unlock_and_release_request(head); > goto retry; > } > > - ret = nfs_cancel_remove_inode(head, inode); > - if (ret < 0) > - goto out_unlock; > - > - ret = nfs_page_group_lock(head); > - if (ret < 0) > - goto out_unlock; > + nfs_cancel_remove_inode(head, inode); > > /* lock each request in the page group */ > for (subreq = head->wb_this_page; > @@ -786,7 +775,8 @@ static void nfs_inode_remove_request(struct nfs_page *req) > { > struct nfs_inode *nfsi = NFS_I(nfs_page_to_inode(req)); > > - if (nfs_page_group_sync_on_bit(req, PG_REMOVE)) { > + nfs_page_group_lock(req); > + if (nfs_page_group_sync_on_bit_locked(req, PG_REMOVE)) { > struct folio *folio = nfs_page_to_folio(req->wb_head); > struct address_space *mapping = folio->mapping; > > @@ -798,6 +788,7 @@ static void nfs_inode_remove_request(struct nfs_page *req) > } > spin_unlock(&mapping->i_private_lock); > } > + nfs_page_group_unlock(req); > > if (test_and_clear_bit(PG_INODE_REF, &req->wb_flags)) { > atomic_long_dec(&nfsi->nrequests); > diff --git a/include/linux/nfs_page.h b/include/linux/nfs_page.h > index 169b4ae30ff4..9aed39abc94b 100644 > --- a/include/linux/nfs_page.h > +++ b/include/linux/nfs_page.h > @@ -160,6 +160,7 @@ extern void nfs_join_page_group(struct nfs_page *head, > extern int nfs_page_group_lock(struct nfs_page *); > extern void nfs_page_group_unlock(struct nfs_page *); > extern bool nfs_page_group_sync_on_bit(struct nfs_page *, unsigned int); > +extern bool nfs_page_group_sync_on_bit_locked(struct nfs_page *, unsigned int); > extern int nfs_page_set_headlock(struct nfs_page *req); > extern void nfs_page_clear_headlock(struct nfs_page *req); > extern bool nfs_async_iocounter_wait(struct rpc_task *, struct nfs_lock_context *); -- Jeff Layton <jlayton@kernel.org> ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: parts of pages on NFS being replaced by swaths of NULs 2025-08-16 14:51 ` Trond Myklebust 2025-08-16 15:31 ` Jeff Layton 2025-08-16 17:16 ` Jeff Layton @ 2025-08-16 21:25 ` Mike Snitzer 2025-08-19 18:38 ` Mike Snitzer 2025-08-19 17:10 ` parts of pages on NFS being replaced by swaths of NULs Jeff Layton 3 siblings, 1 reply; 20+ messages in thread From: Mike Snitzer @ 2025-08-16 21:25 UTC (permalink / raw) To: Trond Myklebust Cc: Jeff Layton, Anna Schumaker, Chuck Lever, linux-nfs, jonathan.flynn [-- Attachment #1: Type: text/plain, Size: 8628 bytes --] On Sat, Aug 16, 2025 at 07:51:17AM -0700, Trond Myklebust wrote: > On Sat, 2025-08-16 at 09:01 -0400, Jeff Layton wrote: > > > > I finally caught something concrete today. I had the attached > > bpftrace > > script running while running the reproducer on a dozen or so > > machines, > > and it detected a hole in some data being written: > > > > -------------8<--------------- > > Attached 2 probes > > Missing nfs_page: ino=10122173116 idx=2 flags=0x15ffff0000000029 > > Hole: ino=10122173116 idx=3 off=10026 size=2262 > > Prev folio: idx=2 flags=0x15ffff0000000028 pgbase=0 bytes=4096 req=0 > > prevreq=0xffff8955b2f55980 > > -------------8<--------------- > > > > What this tells us is that the page at idx=2 got submitted to > > nfs_do_writepage() (so it was marked dirty in the pagecache), but > > when > > it got there, folio->private was NULL and it was ignored. > > > > The kernel in this case is based on v6.9, so it's (just) pre-large- > > folio support. It has a fair number of NFS patches, but not much to > > this portion of the code. Most of them are are containerization > > fixes. > > > > I'm looking askance at nfs_inode_remove_request(). It does this: > > > > if (nfs_page_group_sync_on_bit(req, PG_REMOVE)) { > > struct folio *folio = nfs_page_to_folio(req- > > >wb_head); > > struct address_space *mapping = folio->mapping; > > > > spin_lock(&mapping->i_private_lock); > > if (likely(folio)) { > > folio->private = NULL; > > folio_clear_private(folio); > > clear_bit(PG_MAPPED, &req->wb_head- > > >wb_flags); > > } > > spin_unlock(&mapping->i_private_lock); > > } > > > > If nfs_page_group_sync_on_bit() returns true, then the nfs_page gets > > detached from the folio. Meanwhile, if a new write request comes in > > just after that, nfs_lock_and_join_requests() will call > > nfs_cancel_remove_inode() to try to "cancel" PG_REMOVE: > > > > static int > > nfs_cancel_remove_inode(struct nfs_page *req, struct inode *inode) > > { > > int ret; > > > > if (!test_bit(PG_REMOVE, &req->wb_flags)) > > return 0; > > ret = nfs_page_group_lock(req); > > if (ret) > > return ret; > > if (test_and_clear_bit(PG_REMOVE, &req->wb_flags)) > > nfs_page_set_inode_ref(req, inode); > > nfs_page_group_unlock(req); > > return 0; > > } > > > > ...but that does not reattach the nfs_page to the folio. Should it? > > > > That's not sufficient AFAICS. Does the following patch work? > > 8<------------------------------------------------------------ > From fc9690dda01f001c6cd11665701394da8ebba1ab Mon Sep 17 00:00:00 2001 > Message-ID: <fc9690dda01f001c6cd11665701394da8ebba1ab.1755355810.git.trond.myklebust@hammerspace.com> > From: Trond Myklebust <trond.myklebust@hammerspace.com> > Date: Sat, 16 Aug 2025 07:25:20 -0700 > Subject: [PATCH] NFS: Fix a race when updating an existing write > > After nfs_lock_and_join_requests() tests for whether the request is > still attached to the mapping, nothing prevents a call to > nfs_inode_remove_request() from succeeding until we actually lock the > page group. > The reason is that whoever called nfs_inode_remove_request() doesn't > necessarily have a lock on the page group head. > > So in order to avoid races, let's take the page group lock earlier in > nfs_lock_and_join_requests(), and hold it across the removal of the > request in nfs_inode_remove_request(). > > Reported-by: Jeff Layton <jlayton@kernel.org> > Fixes: c3f2235782c3 ("nfs: fold nfs_folio_find_and_lock_request into nfs_lock_and_join_requests") > Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com> > --- > fs/nfs/pagelist.c | 9 +++++---- > fs/nfs/write.c | 29 ++++++++++------------------- > include/linux/nfs_page.h | 1 + > 3 files changed, 16 insertions(+), 23 deletions(-) > > diff --git a/fs/nfs/pagelist.c b/fs/nfs/pagelist.c > index 11968dcb7243..6e69ce43a13f 100644 > --- a/fs/nfs/pagelist.c > +++ b/fs/nfs/pagelist.c > @@ -253,13 +253,14 @@ nfs_page_group_unlock(struct nfs_page *req) > nfs_page_clear_headlock(req); > } > > -/* > - * nfs_page_group_sync_on_bit_locked > +/** > + * nfs_page_group_sync_on_bit_locked - Test if all requests have @bit set > + * @req: request in page group > + * @bit: PG_* bit that is used to sync page group > * > * must be called with page group lock held > */ > -static bool > -nfs_page_group_sync_on_bit_locked(struct nfs_page *req, unsigned int bit) > +bool nfs_page_group_sync_on_bit_locked(struct nfs_page *req, unsigned int bit) > { > struct nfs_page *head = req->wb_head; > struct nfs_page *tmp; > diff --git a/fs/nfs/write.c b/fs/nfs/write.c > index fa5c41d0989a..8b7c04737967 100644 > --- a/fs/nfs/write.c > +++ b/fs/nfs/write.c > @@ -153,20 +153,10 @@ nfs_page_set_inode_ref(struct nfs_page *req, struct inode *inode) > } > } > > -static int > -nfs_cancel_remove_inode(struct nfs_page *req, struct inode *inode) > +static void nfs_cancel_remove_inode(struct nfs_page *req, struct inode *inode) > { > - int ret; > - > - if (!test_bit(PG_REMOVE, &req->wb_flags)) > - return 0; > - ret = nfs_page_group_lock(req); > - if (ret) > - return ret; > if (test_and_clear_bit(PG_REMOVE, &req->wb_flags)) > nfs_page_set_inode_ref(req, inode); > - nfs_page_group_unlock(req); > - return 0; > } > > /** > @@ -585,19 +575,18 @@ static struct nfs_page *nfs_lock_and_join_requests(struct folio *folio) > } > } > > + ret = nfs_page_group_lock(head); > + if (ret < 0) > + goto out_unlock; > + > /* Ensure that nobody removed the request before we locked it */ > if (head != folio->private) { > + nfs_page_group_unlock(head); > nfs_unlock_and_release_request(head); > goto retry; > } > > - ret = nfs_cancel_remove_inode(head, inode); > - if (ret < 0) > - goto out_unlock; > - > - ret = nfs_page_group_lock(head); > - if (ret < 0) > - goto out_unlock; > + nfs_cancel_remove_inode(head, inode); > > /* lock each request in the page group */ > for (subreq = head->wb_this_page; > @@ -786,7 +775,8 @@ static void nfs_inode_remove_request(struct nfs_page *req) > { > struct nfs_inode *nfsi = NFS_I(nfs_page_to_inode(req)); > > - if (nfs_page_group_sync_on_bit(req, PG_REMOVE)) { > + nfs_page_group_lock(req); > + if (nfs_page_group_sync_on_bit_locked(req, PG_REMOVE)) { > struct folio *folio = nfs_page_to_folio(req->wb_head); > struct address_space *mapping = folio->mapping; > > @@ -798,6 +788,7 @@ static void nfs_inode_remove_request(struct nfs_page *req) > } > spin_unlock(&mapping->i_private_lock); > } > + nfs_page_group_unlock(req); > > if (test_and_clear_bit(PG_INODE_REF, &req->wb_flags)) { > atomic_long_dec(&nfsi->nrequests); > diff --git a/include/linux/nfs_page.h b/include/linux/nfs_page.h > index 169b4ae30ff4..9aed39abc94b 100644 > --- a/include/linux/nfs_page.h > +++ b/include/linux/nfs_page.h > @@ -160,6 +160,7 @@ extern void nfs_join_page_group(struct nfs_page *head, > extern int nfs_page_group_lock(struct nfs_page *); > extern void nfs_page_group_unlock(struct nfs_page *); > extern bool nfs_page_group_sync_on_bit(struct nfs_page *, unsigned int); > +extern bool nfs_page_group_sync_on_bit_locked(struct nfs_page *, unsigned int); > extern int nfs_page_set_headlock(struct nfs_page *req); > extern void nfs_page_clear_headlock(struct nfs_page *req); > extern bool nfs_async_iocounter_wait(struct rpc_task *, struct nfs_lock_context *); > -- > 2.50.1 > > Trond, You're the best! ;) Your patch fixes corruption I've been chasing for the past week relative to NFS DIRECT, specifically with: echo Y > /sys/module/nfs/parameters/localio_O_DIRECT_align_misaligned_IO So you need my latest NFS DIRECT patchset: https://lore.kernel.org/linux-nfs/20250815233003.55071-1-snitzer@kernel.org/ With it, writes would be corrupted when using the attached reproducer (from Jon Flynn, with the assistance of ChatGPT) that pulls out the subset of MLperf unet3d test (when ran in buffered IO mode, so entirely misaligned relative to DIO-alignment requirements) that we've seen npz CRC compare failure with. I tested my patchset with your patch applied and it all "just works". Ship it all! Thanks, Mike ps. running the attached reproducer is as simple as: ./mlperf_npz_tool.py --npz-path /mnt/share1/sample_a.npz [-- Attachment #2: mlperf_npz_tool.py --] [-- Type: text/plain, Size: 7770 bytes --] #!/usr/bin/env python3 import argparse, math, os, struct, zlib from pathlib import Path import numpy as np import zipfile # ----------------------- # Defaults (from your YAML) # ----------------------- DEFAULT_MEAN_BYTES = 146_600_628 DEFAULT_STDEV_BYTES = 68_341_808 DEFAULT_RESIZE = 2_097_152 # 2 MiB DEFAULT_SAMPLES = 1 DEFAULT_DTYPE = "uint8" DEFAULT_SEED = 10 # ----------------------- # Helpers # ----------------------- DTYPE_SIZES = { "uint8": 1, "int8": 1, "uint16": 2, "int16": 2, "uint32": 4, "int32": 4, "float32": 4, "float64": 8, } def choose_target_bytes(mean_b, stdev_b, resize, randomize): if randomize and stdev_b > 0: draw = int(np.random.normal(loc=mean_b, scale=stdev_b)) draw = max(draw, 1) else: draw = int(mean_b) # Round to nearest multiple of resize return int(round(draw / resize) * resize) def choose_hw_for_bytes(total_bytes, samples, dtype_size): """ Choose H, W making H*W*samples*dtype_size == total_bytes. We factor total elements and spread powers of two across H and W to avoid super-skinny arrays. """ total_elems = total_bytes // (dtype_size * samples) if total_elems == 0: raise ValueError("Total elements computed as 0; check inputs.") n = total_elems # Factor out powers of two exp2 = (n & -n).bit_length() - 1 odd = n >> exp2 h = 1 << (exp2 // 2) w = (1 << (exp2 - exp2 // 2)) * odd return int(h), int(w) def save_npz(out_path: Path, *, mean_bytes, stdev_bytes, resize_bytes, samples, dtype_name, seed, compress, randomize): dtype = getattr(np, dtype_name) dtype_size = DTYPE_SIZES[dtype_name] np.random.seed(seed) target_bytes = choose_target_bytes(mean_bytes, stdev_bytes, resize_bytes, randomize) # Ensure divisibility: elems_per_sample = target_bytes // dtype_size // samples if elems_per_sample * dtype_size * samples != target_bytes: raise ValueError("Target bytes not divisible by dtype_size*samples; adjust params.") h, w = choose_hw_for_bytes(target_bytes, samples, dtype_size) x = np.random.randint(255, size=(h, w, samples), dtype=dtype if dtype_name == "uint8" else np.uint8) if dtype_name != "uint8": x = x.astype(dtype, copy=False) y = np.zeros((samples,), dtype=np.uint8) # matches DLIO NPZ generator convention out_path.parent.mkdir(parents=True, exist_ok=True) if compress: np.savez_compressed(out_path, x=x, y=y) else: np.savez(out_path, x=x, y=y) print(f"✅ Wrote {out_path}") try: sz = out_path.stat().st_size print(f" size={sz} bytes, x.shape={x.shape}, dtype={x.dtype}, samples={samples}") except FileNotFoundError: pass def list_and_crc(npz_path: Path, deep=False): print(f"📂 File: {npz_path}") with zipfile.ZipFile(npz_path, "r") as zf: names = zf.namelist() print(f"📦 Files in archive: {names}\n") for name in names: info = zf.getinfo(name) print(f"--- {name} ---") print(f"Stored CRC32 : 0x{info.CRC:08x}") print(f"Compressed Size : {info.compress_size}") print(f"Uncompressed Size : {info.file_size}") try: with zf.open(info) as f: _ = f.read() # will raise if CRC mismatch print("✅ CRC verified by zipfile.\n") except zipfile.BadZipFile as e: print(f"⚠️ CRC error via zipfile: {e}") if deep: ok = deep_crc_check(npz_path, info) print("🔎 Deep check :", "✅ OK\n" if ok else "❌ Mismatch\n") else: print("ℹ️ Re-run with --deep-check to diagnose.\n") except Exception as e: print(f"❌ Unexpected error: {e}\n") def deep_crc_check(npz_path: Path, info: zipfile.ZipInfo) -> bool: """ Manual CRC of the *uncompressed* payload. Parse the local file header to find the compressed bytes, then decompress and compute CRC32 of the uncompressed stream. """ with npz_path.open("rb") as fh: fh.seek(info.header_offset) local = fh.read(30) # fixed part of local header # local file header sig 'PK\x03\x04' if local[:4] != b'PK\x03\x04': return False # filename length, extra length name_len, extra_len = struct.unpack("<HH", local[26:30]) fh.seek(info.header_offset + 30 + name_len + extra_len) comp = fh.read(info.compress_size) # Decompress if needed if info.compress_type == zipfile.ZIP_STORED: data = comp elif info.compress_type == zipfile.ZIP_DEFLATED: # ZIP uses raw DEFLATE stream (no zlib header): wbits = -15 try: data = zlib.decompress(comp, -15) except zlib.error: # Some writers include zlib headers; try normal data = zlib.decompress(comp) else: # Other methods not handled here return False crc = zlib.crc32(data) & 0xFFFFFFFF print(f"Computed CRC32 : 0x{crc:08x}") return crc == info.CRC # ----------------------- # CLI # ----------------------- def parse_args(): p = argparse.ArgumentParser(description="MLPerf-style NPZ save & check tool") mode = p.add_mutually_exclusive_group() mode.add_argument("--save-only", action="store_true", help="Only save the NPZ") mode.add_argument("--check-only", action="store_true", help="Only verify/show the NPZ") p.add_argument("--npz-path", type=Path, help="Full output/check path to NPZ (overrides --out-dir/--name)") p.add_argument("--out-dir", type=Path, default=Path("/mnt/hs_test"), help="Directory for output NPZ") p.add_argument("--name", default="sample_000000.npz", help="Filename for output NPZ") p.add_argument("--compress", action="store_true", help="Use compressed NPZ (deflate)") # Size/dtype controls p.add_argument("--mean-bytes", type=int, default=DEFAULT_MEAN_BYTES, help="record_length_bytes") p.add_argument("--stdev-bytes", type=int, default=DEFAULT_STDEV_BYTES, help="record_length_bytes_stdev") p.add_argument("--resize-bytes", type=int, default=DEFAULT_RESIZE, help="record_length_bytes_resize multiple") p.add_argument("--randomize", action="store_true", help="Draw size from N(mean,stdev) before rounding") p.add_argument("--samples", type=int, default=DEFAULT_SAMPLES, help="num_samples_per_file") p.add_argument("--dtype", choices=DTYPE_SIZES.keys(), default=DEFAULT_DTYPE, help="Data dtype for 'x'") p.add_argument("--seed", type=int, default=DEFAULT_SEED, help="RNG seed for reproducibility") # Check controls p.add_argument("--deep-check", action="store_true", help="When checking, manually parse & CRC the member data") return p.parse_args() def main(): args = parse_args() out_path = args.npz_path or (args.out_dir / args.name) did_save = False if not args.check_only: save_npz( out_path=out_path, mean_bytes=args.mean_bytes, stdev_bytes=args.stdev_bytes, resize_bytes=args.resize_bytes, samples=args.samples, dtype_name=args.dtype, seed=args.seed, compress=args.compress, randomize=args.randomize, ) did_save = True if not args.save_only: if not out_path.exists(): raise SystemExit(f"File not found for check: {out_path}") list_and_crc(out_path, deep=args.deep_check) elif did_save: # echo path for easy piping print(out_path) if __name__ == "__main__": main() ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: parts of pages on NFS being replaced by swaths of NULs 2025-08-16 21:25 ` Mike Snitzer @ 2025-08-19 18:38 ` Mike Snitzer 2025-08-19 20:13 ` Jeff Layton 0 siblings, 1 reply; 20+ messages in thread From: Mike Snitzer @ 2025-08-19 18:38 UTC (permalink / raw) To: Trond Myklebust Cc: Jeff Layton, Anna Schumaker, Chuck Lever, linux-nfs, jonathan.flynn On Sat, Aug 16, 2025 at 05:25:28PM -0400, Mike Snitzer wrote: > On Sat, Aug 16, 2025 at 07:51:17AM -0700, Trond Myklebust wrote: > > > > That's not sufficient AFAICS. Does the following patch work? > > > > 8<------------------------------------------------------------ > > From fc9690dda01f001c6cd11665701394da8ebba1ab Mon Sep 17 00:00:00 2001 > > Message-ID: <fc9690dda01f001c6cd11665701394da8ebba1ab.1755355810.git.trond.myklebust@hammerspace.com> > > From: Trond Myklebust <trond.myklebust@hammerspace.com> > > Date: Sat, 16 Aug 2025 07:25:20 -0700 > > Subject: [PATCH] NFS: Fix a race when updating an existing write > > > > After nfs_lock_and_join_requests() tests for whether the request is > > still attached to the mapping, nothing prevents a call to > > nfs_inode_remove_request() from succeeding until we actually lock the > > page group. > > The reason is that whoever called nfs_inode_remove_request() doesn't > > necessarily have a lock on the page group head. > > > > So in order to avoid races, let's take the page group lock earlier in > > nfs_lock_and_join_requests(), and hold it across the removal of the > > request in nfs_inode_remove_request(). > > > > Reported-by: Jeff Layton <jlayton@kernel.org> > > Fixes: c3f2235782c3 ("nfs: fold nfs_folio_find_and_lock_request into nfs_lock_and_join_requests") > > Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com> > > --- > > fs/nfs/pagelist.c | 9 +++++---- > > fs/nfs/write.c | 29 ++++++++++------------------- > > include/linux/nfs_page.h | 1 + > > 3 files changed, 16 insertions(+), 23 deletions(-) > > > > diff --git a/fs/nfs/pagelist.c b/fs/nfs/pagelist.c > > index 11968dcb7243..6e69ce43a13f 100644 > > --- a/fs/nfs/pagelist.c > > +++ b/fs/nfs/pagelist.c > > @@ -253,13 +253,14 @@ nfs_page_group_unlock(struct nfs_page *req) > > nfs_page_clear_headlock(req); > > } > > > > -/* > > - * nfs_page_group_sync_on_bit_locked > > +/** > > + * nfs_page_group_sync_on_bit_locked - Test if all requests have @bit set > > + * @req: request in page group > > + * @bit: PG_* bit that is used to sync page group > > * > > * must be called with page group lock held > > */ > > -static bool > > -nfs_page_group_sync_on_bit_locked(struct nfs_page *req, unsigned int bit) > > +bool nfs_page_group_sync_on_bit_locked(struct nfs_page *req, unsigned int bit) > > { > > struct nfs_page *head = req->wb_head; > > struct nfs_page *tmp; > > diff --git a/fs/nfs/write.c b/fs/nfs/write.c > > index fa5c41d0989a..8b7c04737967 100644 > > --- a/fs/nfs/write.c > > +++ b/fs/nfs/write.c > > @@ -153,20 +153,10 @@ nfs_page_set_inode_ref(struct nfs_page *req, struct inode *inode) > > } > > } > > > > -static int > > -nfs_cancel_remove_inode(struct nfs_page *req, struct inode *inode) > > +static void nfs_cancel_remove_inode(struct nfs_page *req, struct inode *inode) > > { > > - int ret; > > - > > - if (!test_bit(PG_REMOVE, &req->wb_flags)) > > - return 0; > > - ret = nfs_page_group_lock(req); > > - if (ret) > > - return ret; > > if (test_and_clear_bit(PG_REMOVE, &req->wb_flags)) > > nfs_page_set_inode_ref(req, inode); > > - nfs_page_group_unlock(req); > > - return 0; > > } > > > > /** > > @@ -585,19 +575,18 @@ static struct nfs_page *nfs_lock_and_join_requests(struct folio *folio) > > } > > } > > > > + ret = nfs_page_group_lock(head); > > + if (ret < 0) > > + goto out_unlock; > > + > > /* Ensure that nobody removed the request before we locked it */ > > if (head != folio->private) { > > + nfs_page_group_unlock(head); > > nfs_unlock_and_release_request(head); > > goto retry; > > } > > > > - ret = nfs_cancel_remove_inode(head, inode); > > - if (ret < 0) > > - goto out_unlock; > > - > > - ret = nfs_page_group_lock(head); > > - if (ret < 0) > > - goto out_unlock; > > + nfs_cancel_remove_inode(head, inode); > > > > /* lock each request in the page group */ > > for (subreq = head->wb_this_page; > > @@ -786,7 +775,8 @@ static void nfs_inode_remove_request(struct nfs_page *req) > > { > > struct nfs_inode *nfsi = NFS_I(nfs_page_to_inode(req)); > > > > - if (nfs_page_group_sync_on_bit(req, PG_REMOVE)) { > > + nfs_page_group_lock(req); > > + if (nfs_page_group_sync_on_bit_locked(req, PG_REMOVE)) { > > struct folio *folio = nfs_page_to_folio(req->wb_head); > > struct address_space *mapping = folio->mapping; > > > > @@ -798,6 +788,7 @@ static void nfs_inode_remove_request(struct nfs_page *req) > > } > > spin_unlock(&mapping->i_private_lock); > > } > > + nfs_page_group_unlock(req); > > > > if (test_and_clear_bit(PG_INODE_REF, &req->wb_flags)) { > > atomic_long_dec(&nfsi->nrequests); > > diff --git a/include/linux/nfs_page.h b/include/linux/nfs_page.h > > index 169b4ae30ff4..9aed39abc94b 100644 > > --- a/include/linux/nfs_page.h > > +++ b/include/linux/nfs_page.h > > @@ -160,6 +160,7 @@ extern void nfs_join_page_group(struct nfs_page *head, > > extern int nfs_page_group_lock(struct nfs_page *); > > extern void nfs_page_group_unlock(struct nfs_page *); > > extern bool nfs_page_group_sync_on_bit(struct nfs_page *, unsigned int); > > +extern bool nfs_page_group_sync_on_bit_locked(struct nfs_page *, unsigned int); > > extern int nfs_page_set_headlock(struct nfs_page *req); > > extern void nfs_page_clear_headlock(struct nfs_page *req); > > extern bool nfs_async_iocounter_wait(struct rpc_task *, struct nfs_lock_context *); > > -- > > 2.50.1 > > > > > > > Trond, > > You're the best! ;) > > Your patch fixes corruption I've been chasing for the past week > relative to NFS DIRECT, specifically with: > echo Y > /sys/module/nfs/parameters/localio_O_DIRECT_align_misaligned_IO > > So you need my latest NFS DIRECT patchset: > https://lore.kernel.org/linux-nfs/20250815233003.55071-1-snitzer@kernel.org/ > > With it, writes would be corrupted when using the attached reproducer > (from Jon Flynn, with the assistance of ChatGPT) that pulls out the > subset of MLperf unet3d test (when ran in buffered IO mode, so > entirely misaligned relative to DIO-alignment requirements) that we've > seen npz CRC compare failure with. > > I tested my patchset with your patch applied and it all "just works". > > Ship it all! > > Thanks, > Mike > > ps. running the attached reproducer is as simple as: > ./mlperf_npz_tool.py --npz-path /mnt/share1/sample_a.npz So even with this patch there is something still causing data corruption on much faster systems. This mlperf_npz_tool.py reproducer works fine on a slower VMware based testbed, but once I load the same kernel (with Trond's fix applied) on a very fast baremetal system I still see CRC mismatch due to write corruption if localio_O_DIRECT_align_misaligned_IO=Y (from my NFS DIRECT patchset). Again, both of my latest NFSD DIRECT and NFS DIRECT patchsets are applied: https://lore.kernel.org/linux-nfs/20250815144607.50967-1-snitzer@kernel.org/ https://lore.kernel.org/linux-nfs/20250815233003.55071-1-snitzer@kernel.org/ And I'm hacking nfs4 to impose O_DIRECT on buffered IO (reproducer doesn't open its files with O_DIRECT but NFS client acts like it did). I can dig out the patch to achieve that if others are interested. Mike ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: parts of pages on NFS being replaced by swaths of NULs 2025-08-19 18:38 ` Mike Snitzer @ 2025-08-19 20:13 ` Jeff Layton 2025-08-19 21:38 ` seeing CRC mismatch with NFS DIRECT WRITE when localio_O_DIRECT_align_misaligned_IO=Y Mike Snitzer 0 siblings, 1 reply; 20+ messages in thread From: Jeff Layton @ 2025-08-19 20:13 UTC (permalink / raw) To: Mike Snitzer, Trond Myklebust Cc: Anna Schumaker, Chuck Lever, linux-nfs, jonathan.flynn On Tue, 2025-08-19 at 14:38 -0400, Mike Snitzer wrote: > On Sat, Aug 16, 2025 at 05:25:28PM -0400, Mike Snitzer wrote: > > On Sat, Aug 16, 2025 at 07:51:17AM -0700, Trond Myklebust wrote: > > > > > > That's not sufficient AFAICS. Does the following patch work? > > > > > > 8<------------------------------------------------------------ > > > From fc9690dda01f001c6cd11665701394da8ebba1ab Mon Sep 17 00:00:00 2001 > > > Message-ID: <fc9690dda01f001c6cd11665701394da8ebba1ab.1755355810.git.trond.myklebust@hammerspace.com> > > > From: Trond Myklebust <trond.myklebust@hammerspace.com> > > > Date: Sat, 16 Aug 2025 07:25:20 -0700 > > > Subject: [PATCH] NFS: Fix a race when updating an existing write > > > > > > After nfs_lock_and_join_requests() tests for whether the request is > > > still attached to the mapping, nothing prevents a call to > > > nfs_inode_remove_request() from succeeding until we actually lock the > > > page group. > > > The reason is that whoever called nfs_inode_remove_request() doesn't > > > necessarily have a lock on the page group head. > > > > > > So in order to avoid races, let's take the page group lock earlier in > > > nfs_lock_and_join_requests(), and hold it across the removal of the > > > request in nfs_inode_remove_request(). > > > > > > Reported-by: Jeff Layton <jlayton@kernel.org> > > > Fixes: c3f2235782c3 ("nfs: fold nfs_folio_find_and_lock_request into nfs_lock_and_join_requests") > > > Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com> > > > --- > > > fs/nfs/pagelist.c | 9 +++++---- > > > fs/nfs/write.c | 29 ++++++++++------------------- > > > include/linux/nfs_page.h | 1 + > > > 3 files changed, 16 insertions(+), 23 deletions(-) > > > > > > diff --git a/fs/nfs/pagelist.c b/fs/nfs/pagelist.c > > > index 11968dcb7243..6e69ce43a13f 100644 > > > --- a/fs/nfs/pagelist.c > > > +++ b/fs/nfs/pagelist.c > > > @@ -253,13 +253,14 @@ nfs_page_group_unlock(struct nfs_page *req) > > > nfs_page_clear_headlock(req); > > > } > > > > > > -/* > > > - * nfs_page_group_sync_on_bit_locked > > > +/** > > > + * nfs_page_group_sync_on_bit_locked - Test if all requests have @bit set > > > + * @req: request in page group > > > + * @bit: PG_* bit that is used to sync page group > > > * > > > * must be called with page group lock held > > > */ > > > -static bool > > > -nfs_page_group_sync_on_bit_locked(struct nfs_page *req, unsigned int bit) > > > +bool nfs_page_group_sync_on_bit_locked(struct nfs_page *req, unsigned int bit) > > > { > > > struct nfs_page *head = req->wb_head; > > > struct nfs_page *tmp; > > > diff --git a/fs/nfs/write.c b/fs/nfs/write.c > > > index fa5c41d0989a..8b7c04737967 100644 > > > --- a/fs/nfs/write.c > > > +++ b/fs/nfs/write.c > > > @@ -153,20 +153,10 @@ nfs_page_set_inode_ref(struct nfs_page *req, struct inode *inode) > > > } > > > } > > > > > > -static int > > > -nfs_cancel_remove_inode(struct nfs_page *req, struct inode *inode) > > > +static void nfs_cancel_remove_inode(struct nfs_page *req, struct inode *inode) > > > { > > > - int ret; > > > - > > > - if (!test_bit(PG_REMOVE, &req->wb_flags)) > > > - return 0; > > > - ret = nfs_page_group_lock(req); > > > - if (ret) > > > - return ret; > > > if (test_and_clear_bit(PG_REMOVE, &req->wb_flags)) > > > nfs_page_set_inode_ref(req, inode); > > > - nfs_page_group_unlock(req); > > > - return 0; > > > } > > > > > > /** > > > @@ -585,19 +575,18 @@ static struct nfs_page *nfs_lock_and_join_requests(struct folio *folio) > > > } > > > } > > > > > > + ret = nfs_page_group_lock(head); > > > + if (ret < 0) > > > + goto out_unlock; > > > + > > > /* Ensure that nobody removed the request before we locked it */ > > > if (head != folio->private) { > > > + nfs_page_group_unlock(head); > > > nfs_unlock_and_release_request(head); > > > goto retry; > > > } > > > > > > - ret = nfs_cancel_remove_inode(head, inode); > > > - if (ret < 0) > > > - goto out_unlock; > > > - > > > - ret = nfs_page_group_lock(head); > > > - if (ret < 0) > > > - goto out_unlock; > > > + nfs_cancel_remove_inode(head, inode); > > > > > > /* lock each request in the page group */ > > > for (subreq = head->wb_this_page; > > > @@ -786,7 +775,8 @@ static void nfs_inode_remove_request(struct nfs_page *req) > > > { > > > struct nfs_inode *nfsi = NFS_I(nfs_page_to_inode(req)); > > > > > > - if (nfs_page_group_sync_on_bit(req, PG_REMOVE)) { > > > + nfs_page_group_lock(req); > > > + if (nfs_page_group_sync_on_bit_locked(req, PG_REMOVE)) { > > > struct folio *folio = nfs_page_to_folio(req->wb_head); > > > struct address_space *mapping = folio->mapping; > > > > > > @@ -798,6 +788,7 @@ static void nfs_inode_remove_request(struct nfs_page *req) > > > } > > > spin_unlock(&mapping->i_private_lock); > > > } > > > + nfs_page_group_unlock(req); > > > > > > if (test_and_clear_bit(PG_INODE_REF, &req->wb_flags)) { > > > atomic_long_dec(&nfsi->nrequests); > > > diff --git a/include/linux/nfs_page.h b/include/linux/nfs_page.h > > > index 169b4ae30ff4..9aed39abc94b 100644 > > > --- a/include/linux/nfs_page.h > > > +++ b/include/linux/nfs_page.h > > > @@ -160,6 +160,7 @@ extern void nfs_join_page_group(struct nfs_page *head, > > > extern int nfs_page_group_lock(struct nfs_page *); > > > extern void nfs_page_group_unlock(struct nfs_page *); > > > extern bool nfs_page_group_sync_on_bit(struct nfs_page *, unsigned int); > > > +extern bool nfs_page_group_sync_on_bit_locked(struct nfs_page *, unsigned int); > > > extern int nfs_page_set_headlock(struct nfs_page *req); > > > extern void nfs_page_clear_headlock(struct nfs_page *req); > > > extern bool nfs_async_iocounter_wait(struct rpc_task *, struct nfs_lock_context *); > > > -- > > > 2.50.1 > > > > > > > > > > > > Trond, > > > > You're the best! ;) > > > > Your patch fixes corruption I've been chasing for the past week > > relative to NFS DIRECT, specifically with: > > echo Y > /sys/module/nfs/parameters/localio_O_DIRECT_align_misaligned_IO > > > > So you need my latest NFS DIRECT patchset: > > https://lore.kernel.org/linux-nfs/20250815233003.55071-1-snitzer@kernel.org/ > > > > With it, writes would be corrupted when using the attached reproducer > > (from Jon Flynn, with the assistance of ChatGPT) that pulls out the > > subset of MLperf unet3d test (when ran in buffered IO mode, so > > entirely misaligned relative to DIO-alignment requirements) that we've > > seen npz CRC compare failure with. > > > > I tested my patchset with your patch applied and it all "just works". > > > > Ship it all! > > > > Thanks, > > Mike > > > > ps. running the attached reproducer is as simple as: > > ./mlperf_npz_tool.py --npz-path /mnt/share1/sample_a.npz > > So even with this patch there is something still causing data > corruption on much faster systems. This mlperf_npz_tool.py reproducer > works fine on a slower VMware based testbed, but once I load the same > kernel (with Trond's fix applied) on a very fast baremetal system I > still see CRC mismatch due to write corruption if > localio_O_DIRECT_align_misaligned_IO=Y (from my NFS DIRECT patchset). > > Again, both of my latest NFSD DIRECT and NFS DIRECT patchsets are > applied: > https://lore.kernel.org/linux-nfs/20250815144607.50967-1-snitzer@kernel.org/ > https://lore.kernel.org/linux-nfs/20250815233003.55071-1-snitzer@kernel.org/ > > And I'm hacking nfs4 to impose O_DIRECT on buffered IO (reproducer > doesn't open its files with O_DIRECT but NFS client acts like it did). > I can dig out the patch to achieve that if others are interested. > > Mike Can you compare a corrupt file with the expected output? That might give us a clue about the nature of this bug. -- Jeff Layton <jlayton@kernel.org> ^ permalink raw reply [flat|nested] 20+ messages in thread
* seeing CRC mismatch with NFS DIRECT WRITE when localio_O_DIRECT_align_misaligned_IO=Y 2025-08-19 20:13 ` Jeff Layton @ 2025-08-19 21:38 ` Mike Snitzer 2025-08-19 21:50 ` Jeff Layton 0 siblings, 1 reply; 20+ messages in thread From: Mike Snitzer @ 2025-08-19 21:38 UTC (permalink / raw) To: Jeff Layton Cc: Trond Myklebust, Anna Schumaker, Chuck Lever, linux-nfs, jonathan.flynn On Tue, Aug 19, 2025 at 04:13:16PM -0400, Jeff Layton wrote: > On Tue, 2025-08-19 at 14:38 -0400, Mike Snitzer wrote: > > On Sat, Aug 16, 2025 at 05:25:28PM -0400, Mike Snitzer wrote: > > > On Sat, Aug 16, 2025 at 07:51:17AM -0700, Trond Myklebust wrote: > > > > > > > > That's not sufficient AFAICS. Does the following patch work? > > > > > > > > 8<------------------------------------------------------------ > > > > From fc9690dda01f001c6cd11665701394da8ebba1ab Mon Sep 17 00:00:00 2001 > > > > Message-ID: <fc9690dda01f001c6cd11665701394da8ebba1ab.1755355810.git.trond.myklebust@hammerspace.com> > > > > From: Trond Myklebust <trond.myklebust@hammerspace.com> > > > > Date: Sat, 16 Aug 2025 07:25:20 -0700 > > > > Subject: [PATCH] NFS: Fix a race when updating an existing write > > > > > > > > After nfs_lock_and_join_requests() tests for whether the request is > > > > still attached to the mapping, nothing prevents a call to > > > > nfs_inode_remove_request() from succeeding until we actually lock the > > > > page group. > > > > The reason is that whoever called nfs_inode_remove_request() doesn't > > > > necessarily have a lock on the page group head. > > > > > > > > So in order to avoid races, let's take the page group lock earlier in > > > > nfs_lock_and_join_requests(), and hold it across the removal of the > > > > request in nfs_inode_remove_request(). > > > > > > > > Reported-by: Jeff Layton <jlayton@kernel.org> > > > > Fixes: c3f2235782c3 ("nfs: fold nfs_folio_find_and_lock_request into nfs_lock_and_join_requests") > > > > Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com> > > > > --- > > > > fs/nfs/pagelist.c | 9 +++++---- > > > > fs/nfs/write.c | 29 ++++++++++------------------- > > > > include/linux/nfs_page.h | 1 + > > > > 3 files changed, 16 insertions(+), 23 deletions(-) > > > > > > > > diff --git a/fs/nfs/pagelist.c b/fs/nfs/pagelist.c > > > > index 11968dcb7243..6e69ce43a13f 100644 > > > > --- a/fs/nfs/pagelist.c > > > > +++ b/fs/nfs/pagelist.c > > > > @@ -253,13 +253,14 @@ nfs_page_group_unlock(struct nfs_page *req) > > > > nfs_page_clear_headlock(req); > > > > } > > > > > > > > -/* > > > > - * nfs_page_group_sync_on_bit_locked > > > > +/** > > > > + * nfs_page_group_sync_on_bit_locked - Test if all requests have @bit set > > > > + * @req: request in page group > > > > + * @bit: PG_* bit that is used to sync page group > > > > * > > > > * must be called with page group lock held > > > > */ > > > > -static bool > > > > -nfs_page_group_sync_on_bit_locked(struct nfs_page *req, unsigned int bit) > > > > +bool nfs_page_group_sync_on_bit_locked(struct nfs_page *req, unsigned int bit) > > > > { > > > > struct nfs_page *head = req->wb_head; > > > > struct nfs_page *tmp; > > > > diff --git a/fs/nfs/write.c b/fs/nfs/write.c > > > > index fa5c41d0989a..8b7c04737967 100644 > > > > --- a/fs/nfs/write.c > > > > +++ b/fs/nfs/write.c > > > > @@ -153,20 +153,10 @@ nfs_page_set_inode_ref(struct nfs_page *req, struct inode *inode) > > > > } > > > > } > > > > > > > > -static int > > > > -nfs_cancel_remove_inode(struct nfs_page *req, struct inode *inode) > > > > +static void nfs_cancel_remove_inode(struct nfs_page *req, struct inode *inode) > > > > { > > > > - int ret; > > > > - > > > > - if (!test_bit(PG_REMOVE, &req->wb_flags)) > > > > - return 0; > > > > - ret = nfs_page_group_lock(req); > > > > - if (ret) > > > > - return ret; > > > > if (test_and_clear_bit(PG_REMOVE, &req->wb_flags)) > > > > nfs_page_set_inode_ref(req, inode); > > > > - nfs_page_group_unlock(req); > > > > - return 0; > > > > } > > > > > > > > /** > > > > @@ -585,19 +575,18 @@ static struct nfs_page *nfs_lock_and_join_requests(struct folio *folio) > > > > } > > > > } > > > > > > > > + ret = nfs_page_group_lock(head); > > > > + if (ret < 0) > > > > + goto out_unlock; > > > > + > > > > /* Ensure that nobody removed the request before we locked it */ > > > > if (head != folio->private) { > > > > + nfs_page_group_unlock(head); > > > > nfs_unlock_and_release_request(head); > > > > goto retry; > > > > } > > > > > > > > - ret = nfs_cancel_remove_inode(head, inode); > > > > - if (ret < 0) > > > > - goto out_unlock; > > > > - > > > > - ret = nfs_page_group_lock(head); > > > > - if (ret < 0) > > > > - goto out_unlock; > > > > + nfs_cancel_remove_inode(head, inode); > > > > > > > > /* lock each request in the page group */ > > > > for (subreq = head->wb_this_page; > > > > @@ -786,7 +775,8 @@ static void nfs_inode_remove_request(struct nfs_page *req) > > > > { > > > > struct nfs_inode *nfsi = NFS_I(nfs_page_to_inode(req)); > > > > > > > > - if (nfs_page_group_sync_on_bit(req, PG_REMOVE)) { > > > > + nfs_page_group_lock(req); > > > > + if (nfs_page_group_sync_on_bit_locked(req, PG_REMOVE)) { > > > > struct folio *folio = nfs_page_to_folio(req->wb_head); > > > > struct address_space *mapping = folio->mapping; > > > > > > > > @@ -798,6 +788,7 @@ static void nfs_inode_remove_request(struct nfs_page *req) > > > > } > > > > spin_unlock(&mapping->i_private_lock); > > > > } > > > > + nfs_page_group_unlock(req); > > > > > > > > if (test_and_clear_bit(PG_INODE_REF, &req->wb_flags)) { > > > > atomic_long_dec(&nfsi->nrequests); > > > > diff --git a/include/linux/nfs_page.h b/include/linux/nfs_page.h > > > > index 169b4ae30ff4..9aed39abc94b 100644 > > > > --- a/include/linux/nfs_page.h > > > > +++ b/include/linux/nfs_page.h > > > > @@ -160,6 +160,7 @@ extern void nfs_join_page_group(struct nfs_page *head, > > > > extern int nfs_page_group_lock(struct nfs_page *); > > > > extern void nfs_page_group_unlock(struct nfs_page *); > > > > extern bool nfs_page_group_sync_on_bit(struct nfs_page *, unsigned int); > > > > +extern bool nfs_page_group_sync_on_bit_locked(struct nfs_page *, unsigned int); > > > > extern int nfs_page_set_headlock(struct nfs_page *req); > > > > extern void nfs_page_clear_headlock(struct nfs_page *req); > > > > extern bool nfs_async_iocounter_wait(struct rpc_task *, struct nfs_lock_context *); > > > > -- > > > > 2.50.1 > > > > > > > > > > > > > > > > > Trond, > > > > > > You're the best! ;) > > > > > > Your patch fixes corruption I've been chasing for the past week > > > relative to NFS DIRECT, specifically with: > > > echo Y > /sys/module/nfs/parameters/localio_O_DIRECT_align_misaligned_IO > > > > > > So you need my latest NFS DIRECT patchset: > > > https://lore.kernel.org/linux-nfs/20250815233003.55071-1-snitzer@kernel.org/ > > > > > > With it, writes would be corrupted when using the attached reproducer > > > (from Jon Flynn, with the assistance of ChatGPT) that pulls out the > > > subset of MLperf unet3d test (when ran in buffered IO mode, so > > > entirely misaligned relative to DIO-alignment requirements) that we've > > > seen npz CRC compare failure with. > > > > > > I tested my patchset with your patch applied and it all "just works". > > > > > > Ship it all! > > > > > > Thanks, > > > Mike > > > > > > ps. running the attached reproducer is as simple as: > > > ./mlperf_npz_tool.py --npz-path /mnt/share1/sample_a.npz > > > > So even with this patch there is something still causing data > > corruption on much faster systems. This mlperf_npz_tool.py reproducer > > works fine on a slower VMware based testbed, but once I load the same > > kernel (with Trond's fix applied) on a very fast baremetal system I > > still see CRC mismatch due to write corruption if > > localio_O_DIRECT_align_misaligned_IO=Y (from my NFS DIRECT patchset). > > > > Again, both of my latest NFSD DIRECT and NFS DIRECT patchsets are > > applied: > > https://lore.kernel.org/linux-nfs/20250815144607.50967-1-snitzer@kernel.org/ > > https://lore.kernel.org/linux-nfs/20250815233003.55071-1-snitzer@kernel.org/ > > > > And I'm hacking nfs4 to impose O_DIRECT on buffered IO (reproducer > > doesn't open its files with O_DIRECT but NFS client acts like it did). > > I can dig out the patch to achieve that if others are interested. > > > > Mike > > Can you compare a corrupt file with the expected output? That might > give us a clue about the nature of this bug. While it _is_ interesting that "speed kills" my particular lithmus test: I've changed the $SUBJECT because this issue could easily be unique to my new NFS DIRECT code or the test itself. So best to divorce my issue from the original issue you reported that was the catalyst for Trond's fix (that did seem to help my testcase). To be clear, this may well be some bug in the python application (that happens to be part of the MLperf "industry benchmark")... Using other tools to verify data integrity have all passed. In particular, dt isn't able to see any issues (but dt is more of an open secret in the utility belt of companies like NetApp, Red Hat, now Hammerspace, etc): https://github.com/RobinTMiller/dt.git This patch header in the NFSD DIRECT series shows how dt proved very useful: https://lore.kernel.org/linux-nfs/20250815144607.50967-6-snitzer@kernel.org/ But back to the mlperf_npz_tool.py, I can easily generate good vs bad files, any words of wisdom for useful tools to analyze the differences? ChatGPT? Other AIs? hexdump isn't showing useful or approachable differences, basically the entire good vs bad file is different: # hexdump /tmp/good.npz > /root/analyze_this/good.hd # hexdump /tmp/bad.npz > /root/analyze_this/bad.hd # diff -Naur /root/analyze_this/good.hd /root/analyze_this/bad.hd > hd.diff # ls -alh total 1.7G drwxr-xr-x 2 root root 50 Aug 19 20:53 . dr-xr-x---. 25 root root 4.0K Aug 19 20:56 .. -rw-r--r-- 1 root root 421M Aug 19 20:52 bad.hd -rw-r--r-- 1 root root 421M Aug 19 20:51 good.hd -rw-r--r-- 1 root root 803M Aug 19 20:54 hd.diff # less hd.diff --- /root/analyze_this/good.hd 2025-08-19 20:51:55.797022245 +0000 +++ /root/analyze_this/bad.hd 2025-08-19 20:52:14.868669416 +0000 @@ -254,983046 +254,983046 @@ 0000fd0 a73d eae0 f2b0 df27 6098 16be b990 f5b0 0000fe0 e2d1 857f 1843 6b2f 079b f319 5386 b6f7 0000ff0 e5ac ec09 29cd 17e9 1341 8a18 e54b 5057 -0001000 7711 ef46 982e fe27 a0b5 0d2f 0f05 0130 -0001010 d6e2 4a4c 74be f4cc a1ed cd98 fe09 0ba0 -0001020 65b5 05a1 426f 7658 c9d9 0381 8ed5 b4ad ... +0001000 2325 8099 b007 9fd9 8596 01fe ae93 d384 +0001010 422e 7685 abab 0d9b 0a05 b4e9 b774 f619 +0001020 10fc 37d0 9e72 795c 82cd c9c8 9cac 4665 ... 8b01000 ce50 6a33 b82d f7ce 0699 5948 1a7e 4e33 8b01010 ed0c f087 853e 952b 77c4 6e51 2790 26af 8b01020 d588 4bc7 313e d729 c20f 4412 8844 8fa6 Mike ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: seeing CRC mismatch with NFS DIRECT WRITE when localio_O_DIRECT_align_misaligned_IO=Y 2025-08-19 21:38 ` seeing CRC mismatch with NFS DIRECT WRITE when localio_O_DIRECT_align_misaligned_IO=Y Mike Snitzer @ 2025-08-19 21:50 ` Jeff Layton 0 siblings, 0 replies; 20+ messages in thread From: Jeff Layton @ 2025-08-19 21:50 UTC (permalink / raw) To: Mike Snitzer Cc: Trond Myklebust, Anna Schumaker, Chuck Lever, linux-nfs, jonathan.flynn On Tue, 2025-08-19 at 17:38 -0400, Mike Snitzer wrote: > On Tue, Aug 19, 2025 at 04:13:16PM -0400, Jeff Layton wrote: > > On Tue, 2025-08-19 at 14:38 -0400, Mike Snitzer wrote: > > > On Sat, Aug 16, 2025 at 05:25:28PM -0400, Mike Snitzer wrote: > > > > On Sat, Aug 16, 2025 at 07:51:17AM -0700, Trond Myklebust wrote: > > > > > > > > > > That's not sufficient AFAICS. Does the following patch work? > > > > > > > > > > 8<------------------------------------------------------------ > > > > > From fc9690dda01f001c6cd11665701394da8ebba1ab Mon Sep 17 00:00:00 2001 > > > > > Message-ID: <fc9690dda01f001c6cd11665701394da8ebba1ab.1755355810.git.trond.myklebust@hammerspace.com> > > > > > From: Trond Myklebust <trond.myklebust@hammerspace.com> > > > > > Date: Sat, 16 Aug 2025 07:25:20 -0700 > > > > > Subject: [PATCH] NFS: Fix a race when updating an existing write > > > > > > > > > > After nfs_lock_and_join_requests() tests for whether the request is > > > > > still attached to the mapping, nothing prevents a call to > > > > > nfs_inode_remove_request() from succeeding until we actually lock the > > > > > page group. > > > > > The reason is that whoever called nfs_inode_remove_request() doesn't > > > > > necessarily have a lock on the page group head. > > > > > > > > > > So in order to avoid races, let's take the page group lock earlier in > > > > > nfs_lock_and_join_requests(), and hold it across the removal of the > > > > > request in nfs_inode_remove_request(). > > > > > > > > > > Reported-by: Jeff Layton <jlayton@kernel.org> > > > > > Fixes: c3f2235782c3 ("nfs: fold nfs_folio_find_and_lock_request into nfs_lock_and_join_requests") > > > > > Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com> > > > > > --- > > > > > fs/nfs/pagelist.c | 9 +++++---- > > > > > fs/nfs/write.c | 29 ++++++++++------------------- > > > > > include/linux/nfs_page.h | 1 + > > > > > 3 files changed, 16 insertions(+), 23 deletions(-) > > > > > > > > > > diff --git a/fs/nfs/pagelist.c b/fs/nfs/pagelist.c > > > > > index 11968dcb7243..6e69ce43a13f 100644 > > > > > --- a/fs/nfs/pagelist.c > > > > > +++ b/fs/nfs/pagelist.c > > > > > @@ -253,13 +253,14 @@ nfs_page_group_unlock(struct nfs_page *req) > > > > > nfs_page_clear_headlock(req); > > > > > } > > > > > > > > > > -/* > > > > > - * nfs_page_group_sync_on_bit_locked > > > > > +/** > > > > > + * nfs_page_group_sync_on_bit_locked - Test if all requests have @bit set > > > > > + * @req: request in page group > > > > > + * @bit: PG_* bit that is used to sync page group > > > > > * > > > > > * must be called with page group lock held > > > > > */ > > > > > -static bool > > > > > -nfs_page_group_sync_on_bit_locked(struct nfs_page *req, unsigned int bit) > > > > > +bool nfs_page_group_sync_on_bit_locked(struct nfs_page *req, unsigned int bit) > > > > > { > > > > > struct nfs_page *head = req->wb_head; > > > > > struct nfs_page *tmp; > > > > > diff --git a/fs/nfs/write.c b/fs/nfs/write.c > > > > > index fa5c41d0989a..8b7c04737967 100644 > > > > > --- a/fs/nfs/write.c > > > > > +++ b/fs/nfs/write.c > > > > > @@ -153,20 +153,10 @@ nfs_page_set_inode_ref(struct nfs_page *req, struct inode *inode) > > > > > } > > > > > } > > > > > > > > > > -static int > > > > > -nfs_cancel_remove_inode(struct nfs_page *req, struct inode *inode) > > > > > +static void nfs_cancel_remove_inode(struct nfs_page *req, struct inode *inode) > > > > > { > > > > > - int ret; > > > > > - > > > > > - if (!test_bit(PG_REMOVE, &req->wb_flags)) > > > > > - return 0; > > > > > - ret = nfs_page_group_lock(req); > > > > > - if (ret) > > > > > - return ret; > > > > > if (test_and_clear_bit(PG_REMOVE, &req->wb_flags)) > > > > > nfs_page_set_inode_ref(req, inode); > > > > > - nfs_page_group_unlock(req); > > > > > - return 0; > > > > > } > > > > > > > > > > /** > > > > > @@ -585,19 +575,18 @@ static struct nfs_page *nfs_lock_and_join_requests(struct folio *folio) > > > > > } > > > > > } > > > > > > > > > > + ret = nfs_page_group_lock(head); > > > > > + if (ret < 0) > > > > > + goto out_unlock; > > > > > + > > > > > /* Ensure that nobody removed the request before we locked it */ > > > > > if (head != folio->private) { > > > > > + nfs_page_group_unlock(head); > > > > > nfs_unlock_and_release_request(head); > > > > > goto retry; > > > > > } > > > > > > > > > > - ret = nfs_cancel_remove_inode(head, inode); > > > > > - if (ret < 0) > > > > > - goto out_unlock; > > > > > - > > > > > - ret = nfs_page_group_lock(head); > > > > > - if (ret < 0) > > > > > - goto out_unlock; > > > > > + nfs_cancel_remove_inode(head, inode); > > > > > > > > > > /* lock each request in the page group */ > > > > > for (subreq = head->wb_this_page; > > > > > @@ -786,7 +775,8 @@ static void nfs_inode_remove_request(struct nfs_page *req) > > > > > { > > > > > struct nfs_inode *nfsi = NFS_I(nfs_page_to_inode(req)); > > > > > > > > > > - if (nfs_page_group_sync_on_bit(req, PG_REMOVE)) { > > > > > + nfs_page_group_lock(req); > > > > > + if (nfs_page_group_sync_on_bit_locked(req, PG_REMOVE)) { > > > > > struct folio *folio = nfs_page_to_folio(req->wb_head); > > > > > struct address_space *mapping = folio->mapping; > > > > > > > > > > @@ -798,6 +788,7 @@ static void nfs_inode_remove_request(struct nfs_page *req) > > > > > } > > > > > spin_unlock(&mapping->i_private_lock); > > > > > } > > > > > + nfs_page_group_unlock(req); > > > > > > > > > > if (test_and_clear_bit(PG_INODE_REF, &req->wb_flags)) { > > > > > atomic_long_dec(&nfsi->nrequests); > > > > > diff --git a/include/linux/nfs_page.h b/include/linux/nfs_page.h > > > > > index 169b4ae30ff4..9aed39abc94b 100644 > > > > > --- a/include/linux/nfs_page.h > > > > > +++ b/include/linux/nfs_page.h > > > > > @@ -160,6 +160,7 @@ extern void nfs_join_page_group(struct nfs_page *head, > > > > > extern int nfs_page_group_lock(struct nfs_page *); > > > > > extern void nfs_page_group_unlock(struct nfs_page *); > > > > > extern bool nfs_page_group_sync_on_bit(struct nfs_page *, unsigned int); > > > > > +extern bool nfs_page_group_sync_on_bit_locked(struct nfs_page *, unsigned int); > > > > > extern int nfs_page_set_headlock(struct nfs_page *req); > > > > > extern void nfs_page_clear_headlock(struct nfs_page *req); > > > > > extern bool nfs_async_iocounter_wait(struct rpc_task *, struct nfs_lock_context *); > > > > > -- > > > > > 2.50.1 > > > > > > > > > > > > > > > > > > > > > > Trond, > > > > > > > > You're the best! ;) > > > > > > > > Your patch fixes corruption I've been chasing for the past week > > > > relative to NFS DIRECT, specifically with: > > > > echo Y > /sys/module/nfs/parameters/localio_O_DIRECT_align_misaligned_IO > > > > > > > > So you need my latest NFS DIRECT patchset: > > > > https://lore.kernel.org/linux-nfs/20250815233003.55071-1-snitzer@kernel.org/ > > > > > > > > With it, writes would be corrupted when using the attached reproducer > > > > (from Jon Flynn, with the assistance of ChatGPT) that pulls out the > > > > subset of MLperf unet3d test (when ran in buffered IO mode, so > > > > entirely misaligned relative to DIO-alignment requirements) that we've > > > > seen npz CRC compare failure with. > > > > > > > > I tested my patchset with your patch applied and it all "just works". > > > > > > > > Ship it all! > > > > > > > > Thanks, > > > > Mike > > > > > > > > ps. running the attached reproducer is as simple as: > > > > ./mlperf_npz_tool.py --npz-path /mnt/share1/sample_a.npz > > > > > > So even with this patch there is something still causing data > > > corruption on much faster systems. This mlperf_npz_tool.py reproducer > > > works fine on a slower VMware based testbed, but once I load the same > > > kernel (with Trond's fix applied) on a very fast baremetal system I > > > still see CRC mismatch due to write corruption if > > > localio_O_DIRECT_align_misaligned_IO=Y (from my NFS DIRECT patchset). > > > > > > Again, both of my latest NFSD DIRECT and NFS DIRECT patchsets are > > > applied: > > > https://lore.kernel.org/linux-nfs/20250815144607.50967-1-snitzer@kernel.org/ > > > https://lore.kernel.org/linux-nfs/20250815233003.55071-1-snitzer@kernel.org/ > > > > > > And I'm hacking nfs4 to impose O_DIRECT on buffered IO (reproducer > > > doesn't open its files with O_DIRECT but NFS client acts like it did). > > > I can dig out the patch to achieve that if others are interested. > > > > > > Mike > > > > Can you compare a corrupt file with the expected output? That might > > give us a clue about the nature of this bug. > > While it _is_ interesting that "speed kills" my particular lithmus > test: I've changed the $SUBJECT because this issue could easily be > unique to my new NFS DIRECT code or the test itself. So best to > divorce my issue from the original issue you reported that was the > catalyst for Trond's fix (that did seem to help my testcase). > > To be clear, this may well be some bug in the python application (that > happens to be part of the MLperf "industry benchmark")... > > Using other tools to verify data integrity have all passed. In > particular, dt isn't able to see any issues (but dt is more of an open > secret in the utility belt of companies like NetApp, Red Hat, now > Hammerspace, etc): https://github.com/RobinTMiller/dt.git > This patch header in the NFSD DIRECT series shows how dt proved very > useful: > https://lore.kernel.org/linux-nfs/20250815144607.50967-6-snitzer@kernel.org/ > > But back to the mlperf_npz_tool.py, I can easily generate good vs bad > files, any words of wisdom for useful tools to analyze the > differences? ChatGPT? Other AIs? > > hexdump isn't showing useful or approachable differences, basically > the entire good vs bad file is different: > > # hexdump /tmp/good.npz > /root/analyze_this/good.hd > # hexdump /tmp/bad.npz > /root/analyze_this/bad.hd > # diff -Naur /root/analyze_this/good.hd /root/analyze_this/bad.hd > hd.diff > > # ls -alh > total 1.7G > drwxr-xr-x 2 root root 50 Aug 19 20:53 . > dr-xr-x---. 25 root root 4.0K Aug 19 20:56 .. > -rw-r--r-- 1 root root 421M Aug 19 20:52 bad.hd > -rw-r--r-- 1 root root 421M Aug 19 20:51 good.hd > -rw-r--r-- 1 root root 803M Aug 19 20:54 hd.diff > > # less hd.diff > --- /root/analyze_this/good.hd 2025-08-19 20:51:55.797022245 +0000 > +++ /root/analyze_this/bad.hd 2025-08-19 20:52:14.868669416 +0000 > @@ -254,983046 +254,983046 @@ > 0000fd0 a73d eae0 f2b0 df27 6098 16be b990 f5b0 > 0000fe0 e2d1 857f 1843 6b2f 079b f319 5386 b6f7 > 0000ff0 e5ac ec09 29cd 17e9 1341 8a18 e54b 5057 > -0001000 7711 ef46 982e fe27 a0b5 0d2f 0f05 0130 > -0001010 d6e2 4a4c 74be f4cc a1ed cd98 fe09 0ba0 > -0001020 65b5 05a1 426f 7658 c9d9 0381 8ed5 b4ad > ... > +0001000 2325 8099 b007 9fd9 8596 01fe ae93 d384 > +0001010 422e 7685 abab 0d9b 0a05 b4e9 b774 f619 > +0001020 10fc 37d0 9e72 795c 82cd c9c8 9cac 4665 > ... > 8b01000 ce50 6a33 b82d f7ce 0699 5948 1a7e 4e33 > 8b01010 ed0c f087 853e 952b 77c4 6e51 2790 26af > 8b01020 d588 4bc7 313e d729 c20f 4412 8844 8fa6 > 2 interesting things there: 1/ the corruption doesn't appear to be zeroes, so this is definitely a different bug than the one we saw before. 2/ It looks like the corruption starts on a page boundary. How far does it extend? If it's all page aligned, then that's probably an important clue. -- Jeff Layton <jlayton@kernel.org> ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: parts of pages on NFS being replaced by swaths of NULs 2025-08-16 14:51 ` Trond Myklebust ` (2 preceding siblings ...) 2025-08-16 21:25 ` Mike Snitzer @ 2025-08-19 17:10 ` Jeff Layton 2025-08-19 18:28 ` Trond Myklebust 3 siblings, 1 reply; 20+ messages in thread From: Jeff Layton @ 2025-08-19 17:10 UTC (permalink / raw) To: Trond Myklebust, Anna Schumaker Cc: Chuck Lever, linux-nfs, Joe Quanaim, Andrew Steffen On Sat, 2025-08-16 at 07:51 -0700, Trond Myklebust wrote: > On Sat, 2025-08-16 at 09:01 -0400, Jeff Layton wrote: > > > > I finally caught something concrete today. I had the attached > > bpftrace > > script running while running the reproducer on a dozen or so > > machines, > > and it detected a hole in some data being written: > > > > -------------8<--------------- > > Attached 2 probes > > Missing nfs_page: ino=10122173116 idx=2 flags=0x15ffff0000000029 > > Hole: ino=10122173116 idx=3 off=10026 size=2262 > > Prev folio: idx=2 flags=0x15ffff0000000028 pgbase=0 bytes=4096 req=0 > > prevreq=0xffff8955b2f55980 > > -------------8<--------------- > > > > What this tells us is that the page at idx=2 got submitted to > > nfs_do_writepage() (so it was marked dirty in the pagecache), but > > when > > it got there, folio->private was NULL and it was ignored. > > > > The kernel in this case is based on v6.9, so it's (just) pre-large- > > folio support. It has a fair number of NFS patches, but not much to > > this portion of the code. Most of them are are containerization > > fixes. > > > > I'm looking askance at nfs_inode_remove_request(). It does this: > > > > if (nfs_page_group_sync_on_bit(req, PG_REMOVE)) { > > struct folio *folio = nfs_page_to_folio(req- > > > wb_head); > > struct address_space *mapping = folio->mapping; > > > > spin_lock(&mapping->i_private_lock); > > if (likely(folio)) { > > folio->private = NULL; > > folio_clear_private(folio); > > clear_bit(PG_MAPPED, &req->wb_head- > > > wb_flags); > > } > > spin_unlock(&mapping->i_private_lock); > > } > > > > If nfs_page_group_sync_on_bit() returns true, then the nfs_page gets > > detached from the folio. Meanwhile, if a new write request comes in > > just after that, nfs_lock_and_join_requests() will call > > nfs_cancel_remove_inode() to try to "cancel" PG_REMOVE: > > > > static int > > nfs_cancel_remove_inode(struct nfs_page *req, struct inode *inode) > > { > > int ret; > > > > if (!test_bit(PG_REMOVE, &req->wb_flags)) > > return 0; > > ret = nfs_page_group_lock(req); > > if (ret) > > return ret; > > if (test_and_clear_bit(PG_REMOVE, &req->wb_flags)) > > nfs_page_set_inode_ref(req, inode); > > nfs_page_group_unlock(req); > > return 0; > > } > > > > ...but that does not reattach the nfs_page to the folio. Should it? > > > > That's not sufficient AFAICS. Does the following patch work? > > 8<------------------------------------------------------------ > From fc9690dda01f001c6cd11665701394da8ebba1ab Mon Sep 17 00:00:00 2001 > Message-ID: <fc9690dda01f001c6cd11665701394da8ebba1ab.1755355810.git.trond.myklebust@hammerspace.com> > From: Trond Myklebust <trond.myklebust@hammerspace.com> > Date: Sat, 16 Aug 2025 07:25:20 -0700 > Subject: [PATCH] NFS: Fix a race when updating an existing write > > After nfs_lock_and_join_requests() tests for whether the request is > still attached to the mapping, nothing prevents a call to > nfs_inode_remove_request() from succeeding until we actually lock the > page group. > The reason is that whoever called nfs_inode_remove_request() doesn't > necessarily have a lock on the page group head. > > So in order to avoid races, let's take the page group lock earlier in > nfs_lock_and_join_requests(), and hold it across the removal of the > request in nfs_inode_remove_request(). > > Reported-by: Jeff Layton <jlayton@kernel.org> > Fixes: c3f2235782c3 ("nfs: fold nfs_folio_find_and_lock_request into nfs_lock_and_join_requests") > Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com> > --- > fs/nfs/pagelist.c | 9 +++++---- > fs/nfs/write.c | 29 ++++++++++------------------- > include/linux/nfs_page.h | 1 + > 3 files changed, 16 insertions(+), 23 deletions(-) > > diff --git a/fs/nfs/pagelist.c b/fs/nfs/pagelist.c > index 11968dcb7243..6e69ce43a13f 100644 > --- a/fs/nfs/pagelist.c > +++ b/fs/nfs/pagelist.c > @@ -253,13 +253,14 @@ nfs_page_group_unlock(struct nfs_page *req) > nfs_page_clear_headlock(req); > } > > -/* > - * nfs_page_group_sync_on_bit_locked > +/** > + * nfs_page_group_sync_on_bit_locked - Test if all requests have @bit set > + * @req: request in page group > + * @bit: PG_* bit that is used to sync page group > * > * must be called with page group lock held > */ > -static bool > -nfs_page_group_sync_on_bit_locked(struct nfs_page *req, unsigned int bit) > +bool nfs_page_group_sync_on_bit_locked(struct nfs_page *req, unsigned int bit) > { > struct nfs_page *head = req->wb_head; > struct nfs_page *tmp; > diff --git a/fs/nfs/write.c b/fs/nfs/write.c > index fa5c41d0989a..8b7c04737967 100644 > --- a/fs/nfs/write.c > +++ b/fs/nfs/write.c > @@ -153,20 +153,10 @@ nfs_page_set_inode_ref(struct nfs_page *req, struct inode *inode) > } > } > > -static int > -nfs_cancel_remove_inode(struct nfs_page *req, struct inode *inode) > +static void nfs_cancel_remove_inode(struct nfs_page *req, struct inode *inode) > { > - int ret; > - > - if (!test_bit(PG_REMOVE, &req->wb_flags)) > - return 0; > - ret = nfs_page_group_lock(req); > - if (ret) > - return ret; > if (test_and_clear_bit(PG_REMOVE, &req->wb_flags)) > nfs_page_set_inode_ref(req, inode); > - nfs_page_group_unlock(req); > - return 0; > } > > /** > @@ -585,19 +575,18 @@ static struct nfs_page *nfs_lock_and_join_requests(struct folio *folio) > } > } > > + ret = nfs_page_group_lock(head); > + if (ret < 0) > + goto out_unlock; > + > /* Ensure that nobody removed the request before we locked it */ > if (head != folio->private) { > + nfs_page_group_unlock(head); > nfs_unlock_and_release_request(head); > goto retry; > } > > - ret = nfs_cancel_remove_inode(head, inode); > - if (ret < 0) > - goto out_unlock; > - > - ret = nfs_page_group_lock(head); > - if (ret < 0) > - goto out_unlock; > + nfs_cancel_remove_inode(head, inode); > > /* lock each request in the page group */ > for (subreq = head->wb_this_page; > @@ -786,7 +775,8 @@ static void nfs_inode_remove_request(struct nfs_page *req) > { > struct nfs_inode *nfsi = NFS_I(nfs_page_to_inode(req)); > > - if (nfs_page_group_sync_on_bit(req, PG_REMOVE)) { > + nfs_page_group_lock(req); > + if (nfs_page_group_sync_on_bit_locked(req, PG_REMOVE)) { > struct folio *folio = nfs_page_to_folio(req->wb_head); > struct address_space *mapping = folio->mapping; > > @@ -798,6 +788,7 @@ static void nfs_inode_remove_request(struct nfs_page *req) > } > spin_unlock(&mapping->i_private_lock); > } > + nfs_page_group_unlock(req); > > if (test_and_clear_bit(PG_INODE_REF, &req->wb_flags)) { > atomic_long_dec(&nfsi->nrequests); > diff --git a/include/linux/nfs_page.h b/include/linux/nfs_page.h > index 169b4ae30ff4..9aed39abc94b 100644 > --- a/include/linux/nfs_page.h > +++ b/include/linux/nfs_page.h > @@ -160,6 +160,7 @@ extern void nfs_join_page_group(struct nfs_page *head, > extern int nfs_page_group_lock(struct nfs_page *); > extern void nfs_page_group_unlock(struct nfs_page *); > extern bool nfs_page_group_sync_on_bit(struct nfs_page *, unsigned int); > +extern bool nfs_page_group_sync_on_bit_locked(struct nfs_page *, unsigned int); > extern int nfs_page_set_headlock(struct nfs_page *req); > extern void nfs_page_clear_headlock(struct nfs_page *req); > extern bool nfs_async_iocounter_wait(struct rpc_task *, struct nfs_lock_context *); I backported this patch to the kernel we've been using to reproduce this and have had the test running for almost 24 hours now. The longest it's taken to reproduce on this test rig is about 12 hours. So, the initial signs are good. The patch also looks good to me. This one took a while to track down, and I needed a lot of help to set up the test rig. Can you add these? Tested-by: Joe Quanaim <jdq@meta.com> Tested-by: Andrew Steffen <aksteffen@meta.com> Reviewed-by: Jeff Layton <jlayton@kernel.org> Joe and Andrew spent a lot of time getting us a reproducer. I assume we also want to send this to stable? I'm pretty sure the Fixes: tag is wrong. The kernel we were using didn't have that patch. I took a look at some earlier releases, and AFAICT, this bug has been present for a long time -- at least since v6.0 and probably well before. Thanks! -- Jeff Layton <jlayton@kernel.org> ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: parts of pages on NFS being replaced by swaths of NULs 2025-08-19 17:10 ` parts of pages on NFS being replaced by swaths of NULs Jeff Layton @ 2025-08-19 18:28 ` Trond Myklebust 2025-08-19 19:48 ` Jeff Layton 0 siblings, 1 reply; 20+ messages in thread From: Trond Myklebust @ 2025-08-19 18:28 UTC (permalink / raw) To: Jeff Layton, Anna Schumaker Cc: Chuck Lever, linux-nfs, Joe Quanaim, Andrew Steffen On Tue, 2025-08-19 at 13:10 -0400, Jeff Layton wrote: > On Sat, 2025-08-16 at 07:51 -0700, Trond Myklebust wrote: > > On Sat, 2025-08-16 at 09:01 -0400, Jeff Layton wrote: > > > > > > I finally caught something concrete today. I had the attached > > > bpftrace > > > script running while running the reproducer on a dozen or so > > > machines, > > > and it detected a hole in some data being written: > > > > > > -------------8<--------------- > > > Attached 2 probes > > > Missing nfs_page: ino=10122173116 idx=2 flags=0x15ffff0000000029 > > > Hole: ino=10122173116 idx=3 off=10026 size=2262 > > > Prev folio: idx=2 flags=0x15ffff0000000028 pgbase=0 bytes=4096 > > > req=0 > > > prevreq=0xffff8955b2f55980 > > > -------------8<--------------- > > > > > > What this tells us is that the page at idx=2 got submitted to > > > nfs_do_writepage() (so it was marked dirty in the pagecache), but > > > when > > > it got there, folio->private was NULL and it was ignored. > > > > > > The kernel in this case is based on v6.9, so it's (just) pre- > > > large- > > > folio support. It has a fair number of NFS patches, but not much > > > to > > > this portion of the code. Most of them are are containerization > > > fixes. > > > > > > I'm looking askance at nfs_inode_remove_request(). It does this: > > > > > > if (nfs_page_group_sync_on_bit(req, PG_REMOVE)) { > > > struct folio *folio = nfs_page_to_folio(req- > > > > wb_head); > > > struct address_space *mapping = folio->mapping; > > > > > > spin_lock(&mapping->i_private_lock); > > > if (likely(folio)) { > > > folio->private = NULL; > > > folio_clear_private(folio); > > > clear_bit(PG_MAPPED, &req->wb_head- > > > > wb_flags); > > > } > > > spin_unlock(&mapping->i_private_lock); > > > } > > > > > > If nfs_page_group_sync_on_bit() returns true, then the nfs_page > > > gets > > > detached from the folio. Meanwhile, if a new write request comes > > > in > > > just after that, nfs_lock_and_join_requests() will call > > > nfs_cancel_remove_inode() to try to "cancel" PG_REMOVE: > > > > > > static int > > > nfs_cancel_remove_inode(struct nfs_page *req, struct inode > > > *inode) > > > { > > > int ret; > > > > > > if (!test_bit(PG_REMOVE, &req->wb_flags)) > > > return 0; > > > ret = nfs_page_group_lock(req); > > > if (ret) > > > return ret; > > > if (test_and_clear_bit(PG_REMOVE, &req->wb_flags)) > > > nfs_page_set_inode_ref(req, inode); > > > nfs_page_group_unlock(req); > > > return 0; > > > } > > > > > > ...but that does not reattach the nfs_page to the folio. Should > > > it? > > > > > > > That's not sufficient AFAICS. Does the following patch work? > > > > 8<------------------------------------------------------------ > > From fc9690dda01f001c6cd11665701394da8ebba1ab Mon Sep 17 00:00:00 > > 2001 > > Message-ID: > > <fc9690dda01f001c6cd11665701394da8ebba1ab.1755355810.git.trond.mykl > > ebust@hammerspace.com> > > From: Trond Myklebust <trond.myklebust@hammerspace.com> > > Date: Sat, 16 Aug 2025 07:25:20 -0700 > > Subject: [PATCH] NFS: Fix a race when updating an existing write > > > > After nfs_lock_and_join_requests() tests for whether the request is > > still attached to the mapping, nothing prevents a call to > > nfs_inode_remove_request() from succeeding until we actually lock > > the > > page group. > > The reason is that whoever called nfs_inode_remove_request() > > doesn't > > necessarily have a lock on the page group head. > > > > So in order to avoid races, let's take the page group lock earlier > > in > > nfs_lock_and_join_requests(), and hold it across the removal of the > > request in nfs_inode_remove_request(). > > > > Reported-by: Jeff Layton <jlayton@kernel.org> > > Fixes: c3f2235782c3 ("nfs: fold nfs_folio_find_and_lock_request > > into nfs_lock_and_join_requests") > > Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com> > > --- > > fs/nfs/pagelist.c | 9 +++++---- > > fs/nfs/write.c | 29 ++++++++++------------------- > > include/linux/nfs_page.h | 1 + > > 3 files changed, 16 insertions(+), 23 deletions(-) > > > > diff --git a/fs/nfs/pagelist.c b/fs/nfs/pagelist.c > > index 11968dcb7243..6e69ce43a13f 100644 > > --- a/fs/nfs/pagelist.c > > +++ b/fs/nfs/pagelist.c > > @@ -253,13 +253,14 @@ nfs_page_group_unlock(struct nfs_page *req) > > nfs_page_clear_headlock(req); > > } > > > > -/* > > - * nfs_page_group_sync_on_bit_locked > > +/** > > + * nfs_page_group_sync_on_bit_locked - Test if all requests have > > @bit set > > + * @req: request in page group > > + * @bit: PG_* bit that is used to sync page group > > * > > * must be called with page group lock held > > */ > > -static bool > > -nfs_page_group_sync_on_bit_locked(struct nfs_page *req, unsigned > > int bit) > > +bool nfs_page_group_sync_on_bit_locked(struct nfs_page *req, > > unsigned int bit) > > { > > struct nfs_page *head = req->wb_head; > > struct nfs_page *tmp; > > diff --git a/fs/nfs/write.c b/fs/nfs/write.c > > index fa5c41d0989a..8b7c04737967 100644 > > --- a/fs/nfs/write.c > > +++ b/fs/nfs/write.c > > @@ -153,20 +153,10 @@ nfs_page_set_inode_ref(struct nfs_page *req, > > struct inode *inode) > > } > > } > > > > -static int > > -nfs_cancel_remove_inode(struct nfs_page *req, struct inode *inode) > > +static void nfs_cancel_remove_inode(struct nfs_page *req, struct > > inode *inode) > > { > > - int ret; > > - > > - if (!test_bit(PG_REMOVE, &req->wb_flags)) > > - return 0; > > - ret = nfs_page_group_lock(req); > > - if (ret) > > - return ret; > > if (test_and_clear_bit(PG_REMOVE, &req->wb_flags)) > > nfs_page_set_inode_ref(req, inode); > > - nfs_page_group_unlock(req); > > - return 0; > > } > > > > /** > > @@ -585,19 +575,18 @@ static struct nfs_page > > *nfs_lock_and_join_requests(struct folio *folio) > > } > > } > > > > + ret = nfs_page_group_lock(head); > > + if (ret < 0) > > + goto out_unlock; > > + > > /* Ensure that nobody removed the request before we locked > > it */ > > if (head != folio->private) { > > + nfs_page_group_unlock(head); > > nfs_unlock_and_release_request(head); > > goto retry; > > } > > > > - ret = nfs_cancel_remove_inode(head, inode); > > - if (ret < 0) > > - goto out_unlock; > > - > > - ret = nfs_page_group_lock(head); > > - if (ret < 0) > > - goto out_unlock; > > + nfs_cancel_remove_inode(head, inode); > > > > /* lock each request in the page group */ > > for (subreq = head->wb_this_page; > > @@ -786,7 +775,8 @@ static void nfs_inode_remove_request(struct > > nfs_page *req) > > { > > struct nfs_inode *nfsi = NFS_I(nfs_page_to_inode(req)); > > > > - if (nfs_page_group_sync_on_bit(req, PG_REMOVE)) { > > + nfs_page_group_lock(req); > > + if (nfs_page_group_sync_on_bit_locked(req, PG_REMOVE)) { > > struct folio *folio = nfs_page_to_folio(req- > > >wb_head); > > struct address_space *mapping = folio->mapping; > > > > @@ -798,6 +788,7 @@ static void nfs_inode_remove_request(struct > > nfs_page *req) > > } > > spin_unlock(&mapping->i_private_lock); > > } > > + nfs_page_group_unlock(req); > > > > if (test_and_clear_bit(PG_INODE_REF, &req->wb_flags)) { > > atomic_long_dec(&nfsi->nrequests); > > diff --git a/include/linux/nfs_page.h b/include/linux/nfs_page.h > > index 169b4ae30ff4..9aed39abc94b 100644 > > --- a/include/linux/nfs_page.h > > +++ b/include/linux/nfs_page.h > > @@ -160,6 +160,7 @@ extern void nfs_join_page_group(struct nfs_page > > *head, > > extern int nfs_page_group_lock(struct nfs_page *); > > extern void nfs_page_group_unlock(struct nfs_page *); > > extern bool nfs_page_group_sync_on_bit(struct nfs_page *, unsigned > > int); > > +extern bool nfs_page_group_sync_on_bit_locked(struct nfs_page *, > > unsigned int); > > extern int nfs_page_set_headlock(struct nfs_page *req); > > extern void nfs_page_clear_headlock(struct nfs_page *req); > > extern bool nfs_async_iocounter_wait(struct rpc_task *, struct > > nfs_lock_context *); > > I backported this patch to the kernel we've been using to reproduce > this and have had the test running for almost 24 hours now. The > longest > it's taken to reproduce on this test rig is about 12 hours. So, the > initial signs are good. > > The patch also looks good to me. This one took a while to track down, > and I needed a lot of help to set up the test rig. Can you add these? > > Tested-by: Joe Quanaim <jdq@meta.com> > Tested-by: Andrew Steffen <aksteffen@meta.com> > Reviewed-by: Jeff Layton <jlayton@kernel.org> > > Joe and Andrew spent a lot of time getting us a reproducer. > > I assume we also want to send this to stable? I'm pretty sure the > Fixes: tag is wrong. The kernel we were using didn't have that patch. > I > took a look at some earlier releases, and AFAICT, this bug has been > present for a long time -- at least since v6.0 and probably well > before. > I've set Fixes: bd37d6fce184 ("NFSv4: Convert nfs_lock_and_join_requests() to use nfs_page_find_head_request()") on the very latest commit tags. That's about as far back as I can trace it before going cross-eyed. -- Trond Myklebust Linux NFS client maintainer, Hammerspace trondmy@kernel.org, trond.myklebust@hammerspace.com ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: parts of pages on NFS being replaced by swaths of NULs 2025-08-19 18:28 ` Trond Myklebust @ 2025-08-19 19:48 ` Jeff Layton 2025-08-19 20:47 ` Mike Snitzer 0 siblings, 1 reply; 20+ messages in thread From: Jeff Layton @ 2025-08-19 19:48 UTC (permalink / raw) To: Trond Myklebust, Anna Schumaker Cc: Chuck Lever, linux-nfs, Joe Quanaim, Andrew Steffen On Tue, 2025-08-19 at 11:28 -0700, Trond Myklebust wrote: > On Tue, 2025-08-19 at 13:10 -0400, Jeff Layton wrote: > > On Sat, 2025-08-16 at 07:51 -0700, Trond Myklebust wrote: > > > On Sat, 2025-08-16 at 09:01 -0400, Jeff Layton wrote: > > > > > > > > I finally caught something concrete today. I had the attached > > > > bpftrace > > > > script running while running the reproducer on a dozen or so > > > > machines, > > > > and it detected a hole in some data being written: > > > > > > > > -------------8<--------------- > > > > Attached 2 probes > > > > Missing nfs_page: ino=10122173116 idx=2 flags=0x15ffff0000000029 > > > > Hole: ino=10122173116 idx=3 off=10026 size=2262 > > > > Prev folio: idx=2 flags=0x15ffff0000000028 pgbase=0 bytes=4096 > > > > req=0 > > > > prevreq=0xffff8955b2f55980 > > > > -------------8<--------------- > > > > > > > > What this tells us is that the page at idx=2 got submitted to > > > > nfs_do_writepage() (so it was marked dirty in the pagecache), but > > > > when > > > > it got there, folio->private was NULL and it was ignored. > > > > > > > > The kernel in this case is based on v6.9, so it's (just) pre- > > > > large- > > > > folio support. It has a fair number of NFS patches, but not much > > > > to > > > > this portion of the code. Most of them are are containerization > > > > fixes. > > > > > > > > I'm looking askance at nfs_inode_remove_request(). It does this: > > > > > > > > if (nfs_page_group_sync_on_bit(req, PG_REMOVE)) { > > > > struct folio *folio = nfs_page_to_folio(req- > > > > > wb_head); > > > > struct address_space *mapping = folio->mapping; > > > > > > > > spin_lock(&mapping->i_private_lock); > > > > if (likely(folio)) { > > > > folio->private = NULL; > > > > folio_clear_private(folio); > > > > clear_bit(PG_MAPPED, &req->wb_head- > > > > > wb_flags); > > > > } > > > > spin_unlock(&mapping->i_private_lock); > > > > } > > > > > > > > If nfs_page_group_sync_on_bit() returns true, then the nfs_page > > > > gets > > > > detached from the folio. Meanwhile, if a new write request comes > > > > in > > > > just after that, nfs_lock_and_join_requests() will call > > > > nfs_cancel_remove_inode() to try to "cancel" PG_REMOVE: > > > > > > > > static int > > > > nfs_cancel_remove_inode(struct nfs_page *req, struct inode > > > > *inode) > > > > { > > > > int ret; > > > > > > > > if (!test_bit(PG_REMOVE, &req->wb_flags)) > > > > return 0; > > > > ret = nfs_page_group_lock(req); > > > > if (ret) > > > > return ret; > > > > if (test_and_clear_bit(PG_REMOVE, &req->wb_flags)) > > > > nfs_page_set_inode_ref(req, inode); > > > > nfs_page_group_unlock(req); > > > > return 0; > > > > } > > > > > > > > ...but that does not reattach the nfs_page to the folio. Should > > > > it? > > > > > > > > > > That's not sufficient AFAICS. Does the following patch work? > > > > > > 8<------------------------------------------------------------ > > > From fc9690dda01f001c6cd11665701394da8ebba1ab Mon Sep 17 00:00:00 > > > 2001 > > > Message-ID: > > > <fc9690dda01f001c6cd11665701394da8ebba1ab.1755355810.git.trond.mykl > > > ebust@hammerspace.com> > > > From: Trond Myklebust <trond.myklebust@hammerspace.com> > > > Date: Sat, 16 Aug 2025 07:25:20 -0700 > > > Subject: [PATCH] NFS: Fix a race when updating an existing write > > > > > > After nfs_lock_and_join_requests() tests for whether the request is > > > still attached to the mapping, nothing prevents a call to > > > nfs_inode_remove_request() from succeeding until we actually lock > > > the > > > page group. > > > The reason is that whoever called nfs_inode_remove_request() > > > doesn't > > > necessarily have a lock on the page group head. > > > > > > So in order to avoid races, let's take the page group lock earlier > > > in > > > nfs_lock_and_join_requests(), and hold it across the removal of the > > > request in nfs_inode_remove_request(). > > > > > > Reported-by: Jeff Layton <jlayton@kernel.org> > > > Fixes: c3f2235782c3 ("nfs: fold nfs_folio_find_and_lock_request > > > into nfs_lock_and_join_requests") > > > Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com> > > > --- > > > fs/nfs/pagelist.c | 9 +++++---- > > > fs/nfs/write.c | 29 ++++++++++------------------- > > > include/linux/nfs_page.h | 1 + > > > 3 files changed, 16 insertions(+), 23 deletions(-) > > > > > > diff --git a/fs/nfs/pagelist.c b/fs/nfs/pagelist.c > > > index 11968dcb7243..6e69ce43a13f 100644 > > > --- a/fs/nfs/pagelist.c > > > +++ b/fs/nfs/pagelist.c > > > @@ -253,13 +253,14 @@ nfs_page_group_unlock(struct nfs_page *req) > > > nfs_page_clear_headlock(req); > > > } > > > > > > -/* > > > - * nfs_page_group_sync_on_bit_locked > > > +/** > > > + * nfs_page_group_sync_on_bit_locked - Test if all requests have > > > @bit set > > > + * @req: request in page group > > > + * @bit: PG_* bit that is used to sync page group > > > * > > > * must be called with page group lock held > > > */ > > > -static bool > > > -nfs_page_group_sync_on_bit_locked(struct nfs_page *req, unsigned > > > int bit) > > > +bool nfs_page_group_sync_on_bit_locked(struct nfs_page *req, > > > unsigned int bit) > > > { > > > struct nfs_page *head = req->wb_head; > > > struct nfs_page *tmp; > > > diff --git a/fs/nfs/write.c b/fs/nfs/write.c > > > index fa5c41d0989a..8b7c04737967 100644 > > > --- a/fs/nfs/write.c > > > +++ b/fs/nfs/write.c > > > @@ -153,20 +153,10 @@ nfs_page_set_inode_ref(struct nfs_page *req, > > > struct inode *inode) > > > } > > > } > > > > > > -static int > > > -nfs_cancel_remove_inode(struct nfs_page *req, struct inode *inode) > > > +static void nfs_cancel_remove_inode(struct nfs_page *req, struct > > > inode *inode) > > > { > > > - int ret; > > > - > > > - if (!test_bit(PG_REMOVE, &req->wb_flags)) > > > - return 0; > > > - ret = nfs_page_group_lock(req); > > > - if (ret) > > > - return ret; > > > if (test_and_clear_bit(PG_REMOVE, &req->wb_flags)) > > > nfs_page_set_inode_ref(req, inode); > > > - nfs_page_group_unlock(req); > > > - return 0; > > > } > > > > > > /** > > > @@ -585,19 +575,18 @@ static struct nfs_page > > > *nfs_lock_and_join_requests(struct folio *folio) > > > } > > > } > > > > > > + ret = nfs_page_group_lock(head); > > > + if (ret < 0) > > > + goto out_unlock; > > > + > > > /* Ensure that nobody removed the request before we locked > > > it */ > > > if (head != folio->private) { > > > + nfs_page_group_unlock(head); > > > nfs_unlock_and_release_request(head); > > > goto retry; > > > } > > > > > > - ret = nfs_cancel_remove_inode(head, inode); > > > - if (ret < 0) > > > - goto out_unlock; > > > - > > > - ret = nfs_page_group_lock(head); > > > - if (ret < 0) > > > - goto out_unlock; > > > + nfs_cancel_remove_inode(head, inode); > > > > > > /* lock each request in the page group */ > > > for (subreq = head->wb_this_page; > > > @@ -786,7 +775,8 @@ static void nfs_inode_remove_request(struct > > > nfs_page *req) > > > { > > > struct nfs_inode *nfsi = NFS_I(nfs_page_to_inode(req)); > > > > > > - if (nfs_page_group_sync_on_bit(req, PG_REMOVE)) { > > > + nfs_page_group_lock(req); > > > + if (nfs_page_group_sync_on_bit_locked(req, PG_REMOVE)) { > > > struct folio *folio = nfs_page_to_folio(req- > > > > wb_head); > > > struct address_space *mapping = folio->mapping; > > > > > > @@ -798,6 +788,7 @@ static void nfs_inode_remove_request(struct > > > nfs_page *req) > > > } > > > spin_unlock(&mapping->i_private_lock); > > > } > > > + nfs_page_group_unlock(req); > > > > > > if (test_and_clear_bit(PG_INODE_REF, &req->wb_flags)) { > > > atomic_long_dec(&nfsi->nrequests); > > > diff --git a/include/linux/nfs_page.h b/include/linux/nfs_page.h > > > index 169b4ae30ff4..9aed39abc94b 100644 > > > --- a/include/linux/nfs_page.h > > > +++ b/include/linux/nfs_page.h > > > @@ -160,6 +160,7 @@ extern void nfs_join_page_group(struct nfs_page > > > *head, > > > extern int nfs_page_group_lock(struct nfs_page *); > > > extern void nfs_page_group_unlock(struct nfs_page *); > > > extern bool nfs_page_group_sync_on_bit(struct nfs_page *, unsigned > > > int); > > > +extern bool nfs_page_group_sync_on_bit_locked(struct nfs_page *, > > > unsigned int); > > > extern int nfs_page_set_headlock(struct nfs_page *req); > > > extern void nfs_page_clear_headlock(struct nfs_page *req); > > > extern bool nfs_async_iocounter_wait(struct rpc_task *, struct > > > nfs_lock_context *); > > > > I backported this patch to the kernel we've been using to reproduce > > this and have had the test running for almost 24 hours now. The > > longest > > it's taken to reproduce on this test rig is about 12 hours. So, the > > initial signs are good. > > > > The patch also looks good to me. This one took a while to track down, > > and I needed a lot of help to set up the test rig. Can you add these? > > > > Tested-by: Joe Quanaim <jdq@meta.com> > > Tested-by: Andrew Steffen <aksteffen@meta.com> > > Reviewed-by: Jeff Layton <jlayton@kernel.org> > > > > Joe and Andrew spent a lot of time getting us a reproducer. > > > > I assume we also want to send this to stable? I'm pretty sure the > > Fixes: tag is wrong. The kernel we were using didn't have that patch. > > I > > took a look at some earlier releases, and AFAICT, this bug has been > > present for a long time -- at least since v6.0 and probably well > > before. > > > > I've set > Fixes: bd37d6fce184 ("NFSv4: Convert nfs_lock_and_join_requests() to use nfs_page_find_head_request()") > > on the very latest commit tags. That's about as far back as I can trace > it before going cross-eyed. Thanks. Looks like that went into v4.14. That's probably far enough. :) -- Jeff Layton <jlayton@kernel.org> ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: parts of pages on NFS being replaced by swaths of NULs 2025-08-19 19:48 ` Jeff Layton @ 2025-08-19 20:47 ` Mike Snitzer 0 siblings, 0 replies; 20+ messages in thread From: Mike Snitzer @ 2025-08-19 20:47 UTC (permalink / raw) To: Jeff Layton Cc: Trond Myklebust, Anna Schumaker, Chuck Lever, linux-nfs, Joe Quanaim, Andrew Steffen On Tue, Aug 19, 2025 at 03:48:32PM -0400, Jeff Layton wrote: > On Tue, 2025-08-19 at 11:28 -0700, Trond Myklebust wrote: > > On Tue, 2025-08-19 at 13:10 -0400, Jeff Layton wrote: > > > On Sat, 2025-08-16 at 07:51 -0700, Trond Myklebust wrote: > > > > On Sat, 2025-08-16 at 09:01 -0400, Jeff Layton wrote: > > > > > > > > > > I finally caught something concrete today. I had the attached > > > > > bpftrace > > > > > script running while running the reproducer on a dozen or so > > > > > machines, > > > > > and it detected a hole in some data being written: > > > > > > > > > > -------------8<--------------- > > > > > Attached 2 probes > > > > > Missing nfs_page: ino=10122173116 idx=2 flags=0x15ffff0000000029 > > > > > Hole: ino=10122173116 idx=3 off=10026 size=2262 > > > > > Prev folio: idx=2 flags=0x15ffff0000000028 pgbase=0 bytes=4096 > > > > > req=0 > > > > > prevreq=0xffff8955b2f55980 > > > > > -------------8<--------------- > > > > > > > > > > What this tells us is that the page at idx=2 got submitted to > > > > > nfs_do_writepage() (so it was marked dirty in the pagecache), but > > > > > when > > > > > it got there, folio->private was NULL and it was ignored. > > > > > > > > > > The kernel in this case is based on v6.9, so it's (just) pre- > > > > > large- > > > > > folio support. It has a fair number of NFS patches, but not much > > > > > to > > > > > this portion of the code. Most of them are are containerization > > > > > fixes. > > > > > > > > > > I'm looking askance at nfs_inode_remove_request(). It does this: > > > > > > > > > > if (nfs_page_group_sync_on_bit(req, PG_REMOVE)) { > > > > > struct folio *folio = nfs_page_to_folio(req- > > > > > > wb_head); > > > > > struct address_space *mapping = folio->mapping; > > > > > > > > > > spin_lock(&mapping->i_private_lock); > > > > > if (likely(folio)) { > > > > > folio->private = NULL; > > > > > folio_clear_private(folio); > > > > > clear_bit(PG_MAPPED, &req->wb_head- > > > > > > wb_flags); > > > > > } > > > > > spin_unlock(&mapping->i_private_lock); > > > > > } > > > > > > > > > > If nfs_page_group_sync_on_bit() returns true, then the nfs_page > > > > > gets > > > > > detached from the folio. Meanwhile, if a new write request comes > > > > > in > > > > > just after that, nfs_lock_and_join_requests() will call > > > > > nfs_cancel_remove_inode() to try to "cancel" PG_REMOVE: > > > > > > > > > > static int > > > > > nfs_cancel_remove_inode(struct nfs_page *req, struct inode > > > > > *inode) > > > > > { > > > > > int ret; > > > > > > > > > > if (!test_bit(PG_REMOVE, &req->wb_flags)) > > > > > return 0; > > > > > ret = nfs_page_group_lock(req); > > > > > if (ret) > > > > > return ret; > > > > > if (test_and_clear_bit(PG_REMOVE, &req->wb_flags)) > > > > > nfs_page_set_inode_ref(req, inode); > > > > > nfs_page_group_unlock(req); > > > > > return 0; > > > > > } > > > > > > > > > > ...but that does not reattach the nfs_page to the folio. Should > > > > > it? > > > > > > > > > > > > > That's not sufficient AFAICS. Does the following patch work? > > > > > > > > 8<------------------------------------------------------------ > > > > From fc9690dda01f001c6cd11665701394da8ebba1ab Mon Sep 17 00:00:00 > > > > 2001 > > > > Message-ID: > > > > <fc9690dda01f001c6cd11665701394da8ebba1ab.1755355810.git.trond.mykl > > > > ebust@hammerspace.com> > > > > From: Trond Myklebust <trond.myklebust@hammerspace.com> > > > > Date: Sat, 16 Aug 2025 07:25:20 -0700 > > > > Subject: [PATCH] NFS: Fix a race when updating an existing write > > > > > > > > After nfs_lock_and_join_requests() tests for whether the request is > > > > still attached to the mapping, nothing prevents a call to > > > > nfs_inode_remove_request() from succeeding until we actually lock > > > > the > > > > page group. > > > > The reason is that whoever called nfs_inode_remove_request() > > > > doesn't > > > > necessarily have a lock on the page group head. > > > > > > > > So in order to avoid races, let's take the page group lock earlier > > > > in > > > > nfs_lock_and_join_requests(), and hold it across the removal of the > > > > request in nfs_inode_remove_request(). > > > > > > > > Reported-by: Jeff Layton <jlayton@kernel.org> > > > > Fixes: c3f2235782c3 ("nfs: fold nfs_folio_find_and_lock_request > > > > into nfs_lock_and_join_requests") > > > > Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com> > > > > --- > > > > fs/nfs/pagelist.c | 9 +++++---- > > > > fs/nfs/write.c | 29 ++++++++++------------------- > > > > include/linux/nfs_page.h | 1 + > > > > 3 files changed, 16 insertions(+), 23 deletions(-) > > > > > > > > diff --git a/fs/nfs/pagelist.c b/fs/nfs/pagelist.c > > > > index 11968dcb7243..6e69ce43a13f 100644 > > > > --- a/fs/nfs/pagelist.c > > > > +++ b/fs/nfs/pagelist.c > > > > @@ -253,13 +253,14 @@ nfs_page_group_unlock(struct nfs_page *req) > > > > nfs_page_clear_headlock(req); > > > > } > > > > > > > > -/* > > > > - * nfs_page_group_sync_on_bit_locked > > > > +/** > > > > + * nfs_page_group_sync_on_bit_locked - Test if all requests have > > > > @bit set > > > > + * @req: request in page group > > > > + * @bit: PG_* bit that is used to sync page group > > > > * > > > > * must be called with page group lock held > > > > */ > > > > -static bool > > > > -nfs_page_group_sync_on_bit_locked(struct nfs_page *req, unsigned > > > > int bit) > > > > +bool nfs_page_group_sync_on_bit_locked(struct nfs_page *req, > > > > unsigned int bit) > > > > { > > > > struct nfs_page *head = req->wb_head; > > > > struct nfs_page *tmp; > > > > diff --git a/fs/nfs/write.c b/fs/nfs/write.c > > > > index fa5c41d0989a..8b7c04737967 100644 > > > > --- a/fs/nfs/write.c > > > > +++ b/fs/nfs/write.c > > > > @@ -153,20 +153,10 @@ nfs_page_set_inode_ref(struct nfs_page *req, > > > > struct inode *inode) > > > > } > > > > } > > > > > > > > -static int > > > > -nfs_cancel_remove_inode(struct nfs_page *req, struct inode *inode) > > > > +static void nfs_cancel_remove_inode(struct nfs_page *req, struct > > > > inode *inode) > > > > { > > > > - int ret; > > > > - > > > > - if (!test_bit(PG_REMOVE, &req->wb_flags)) > > > > - return 0; > > > > - ret = nfs_page_group_lock(req); > > > > - if (ret) > > > > - return ret; > > > > if (test_and_clear_bit(PG_REMOVE, &req->wb_flags)) > > > > nfs_page_set_inode_ref(req, inode); > > > > - nfs_page_group_unlock(req); > > > > - return 0; > > > > } > > > > > > > > /** > > > > @@ -585,19 +575,18 @@ static struct nfs_page > > > > *nfs_lock_and_join_requests(struct folio *folio) > > > > } > > > > } > > > > > > > > + ret = nfs_page_group_lock(head); > > > > + if (ret < 0) > > > > + goto out_unlock; > > > > + > > > > /* Ensure that nobody removed the request before we locked > > > > it */ > > > > if (head != folio->private) { > > > > + nfs_page_group_unlock(head); > > > > nfs_unlock_and_release_request(head); > > > > goto retry; > > > > } > > > > > > > > - ret = nfs_cancel_remove_inode(head, inode); > > > > - if (ret < 0) > > > > - goto out_unlock; > > > > - > > > > - ret = nfs_page_group_lock(head); > > > > - if (ret < 0) > > > > - goto out_unlock; > > > > + nfs_cancel_remove_inode(head, inode); > > > > > > > > /* lock each request in the page group */ > > > > for (subreq = head->wb_this_page; > > > > @@ -786,7 +775,8 @@ static void nfs_inode_remove_request(struct > > > > nfs_page *req) > > > > { > > > > struct nfs_inode *nfsi = NFS_I(nfs_page_to_inode(req)); > > > > > > > > - if (nfs_page_group_sync_on_bit(req, PG_REMOVE)) { > > > > + nfs_page_group_lock(req); > > > > + if (nfs_page_group_sync_on_bit_locked(req, PG_REMOVE)) { > > > > struct folio *folio = nfs_page_to_folio(req- > > > > > wb_head); > > > > struct address_space *mapping = folio->mapping; > > > > > > > > @@ -798,6 +788,7 @@ static void nfs_inode_remove_request(struct > > > > nfs_page *req) > > > > } > > > > spin_unlock(&mapping->i_private_lock); > > > > } > > > > + nfs_page_group_unlock(req); > > > > > > > > if (test_and_clear_bit(PG_INODE_REF, &req->wb_flags)) { > > > > atomic_long_dec(&nfsi->nrequests); > > > > diff --git a/include/linux/nfs_page.h b/include/linux/nfs_page.h > > > > index 169b4ae30ff4..9aed39abc94b 100644 > > > > --- a/include/linux/nfs_page.h > > > > +++ b/include/linux/nfs_page.h > > > > @@ -160,6 +160,7 @@ extern void nfs_join_page_group(struct nfs_page > > > > *head, > > > > extern int nfs_page_group_lock(struct nfs_page *); > > > > extern void nfs_page_group_unlock(struct nfs_page *); > > > > extern bool nfs_page_group_sync_on_bit(struct nfs_page *, unsigned > > > > int); > > > > +extern bool nfs_page_group_sync_on_bit_locked(struct nfs_page *, > > > > unsigned int); > > > > extern int nfs_page_set_headlock(struct nfs_page *req); > > > > extern void nfs_page_clear_headlock(struct nfs_page *req); > > > > extern bool nfs_async_iocounter_wait(struct rpc_task *, struct > > > > nfs_lock_context *); > > > > > > I backported this patch to the kernel we've been using to reproduce > > > this and have had the test running for almost 24 hours now. The > > > longest > > > it's taken to reproduce on this test rig is about 12 hours. So, the > > > initial signs are good. > > > > > > The patch also looks good to me. This one took a while to track down, > > > and I needed a lot of help to set up the test rig. Can you add these? > > > > > > Tested-by: Joe Quanaim <jdq@meta.com> > > > Tested-by: Andrew Steffen <aksteffen@meta.com> > > > Reviewed-by: Jeff Layton <jlayton@kernel.org> > > > > > > Joe and Andrew spent a lot of time getting us a reproducer. > > > > > > I assume we also want to send this to stable? I'm pretty sure the > > > Fixes: tag is wrong. The kernel we were using didn't have that patch. > > > I > > > took a look at some earlier releases, and AFAICT, this bug has been > > > present for a long time -- at least since v6.0 and probably well > > > before. > > > > > > > I've set > > Fixes: bd37d6fce184 ("NFSv4: Convert nfs_lock_and_join_requests() to use nfs_page_find_head_request()") > > > > on the very latest commit tags. That's about as far back as I can trace > > it before going cross-eyed. > > Thanks. Looks like that went into v4.14. That's probably far enough. :) Indeed, but we'll need to provide specialized backports for each stable@ kernel the further back it needed. So your 6.9 backport might help with 6.6. The other active older stable trees are 6.1 and 6.12. Gregkh et al will quickly defer to domain experts to see that a fix like this lands everywhere it needed. Mike ^ permalink raw reply [flat|nested] 20+ messages in thread
end of thread, other threads:[~2025-08-19 21:50 UTC | newest] Thread overview: 20+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2025-07-30 14:52 parts of pages on NFS being replaced by swaths of NULs Jeff Layton 2025-07-31 21:56 ` Trond Myklebust 2025-07-31 23:04 ` Jeff Layton 2025-08-06 14:20 ` Jeff Layton 2025-08-12 11:58 ` Jeff Layton 2025-08-12 16:58 ` Trond Myklebust 2025-08-12 17:20 ` Jeff Layton 2025-08-16 13:01 ` Jeff Layton 2025-08-16 14:51 ` Trond Myklebust 2025-08-16 15:31 ` Jeff Layton 2025-08-16 17:16 ` Jeff Layton 2025-08-16 21:25 ` Mike Snitzer 2025-08-19 18:38 ` Mike Snitzer 2025-08-19 20:13 ` Jeff Layton 2025-08-19 21:38 ` seeing CRC mismatch with NFS DIRECT WRITE when localio_O_DIRECT_align_misaligned_IO=Y Mike Snitzer 2025-08-19 21:50 ` Jeff Layton 2025-08-19 17:10 ` parts of pages on NFS being replaced by swaths of NULs Jeff Layton 2025-08-19 18:28 ` Trond Myklebust 2025-08-19 19:48 ` Jeff Layton 2025-08-19 20:47 ` Mike Snitzer
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).