Details
-
Bug
-
Status: Open
-
Major
-
Resolution: Unresolved
-
3.6.2, 4.3.1
-
None
-
Linux kernel 3.2.0-48-generic
jdk 1.6.0_43
-
New
Description
I think this actually affects 3.1.0 and up, but I was too lazy to type all those out and just included release versions for brevity.
DirectIOLinuxIndexInput in 3.6.2 and NativeUnixIndexInput in 4.3.1 have in issue with the seek() method. If we seek() to the end of a file (can happen when merger is doing a clone()) whose length is a multiple of 512, then we will unnecessarily call refill(), which will throw an EOFException.
Quick fix is to surround refill() with this condition:
if (pos < length()) {
refill();
}