Details
-
Bug
-
Resolution: Duplicate
-
Major
-
None
-
Lustre 2.16.0
-
None
-
3
-
9223372036854775807
Description
if read() is called with a large enough O_DIRECT then it returns zeroes instead of data. It happens on some kernels, when read size is more than ~680Mb.
Going to read: 536870912(0x20000000) bytes Read: 402653184 bytes. Total bytes read: 402653184 Read: 134217728 bytes. Total bytes read: 536870912 read[0x18000000] == ef Going to read: 805306368(0x30000000) bytes Read: 402653184 bytes. Total bytes read: 402653184 Read: 402653184 bytes. Total bytes read: 805306368 read[0x18000000] == ef Going to read: 1073741824(0x40000000) bytes Read: 671088640 bytes. Total bytes read: 671088640 read[0x18000000] == 0
each time it splits incoming read size by 400Mb, but when size is more than 800Mb, IO first split size becomes 670Mb but it reads still only 400Mb of data.
Bug was seen in exa6+el9.4 client so far, master is being tested
Attachments
Issue Links
- is related to
-
LU-17524 Fix readv/writev with O_DIRECT
- Resolved