Skip to content

Commit 542041f

Browse files
authored
Add logs for remote store metadata intermittent read failures (opensearch-project#8618)
--------- Signed-off-by: bansvaru <bansvaru@amazon.com>
1 parent a07aac8 commit 542041f

File tree

1 file changed

+21
-4
lines changed

1 file changed

+21
-4
lines changed

server/src/main/java/org/opensearch/common/io/VersionedCodecStreamWrapper.java

+21-4
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,11 @@
1010

1111
import java.io.IOException;
1212

13+
import org.apache.logging.log4j.LogManager;
14+
import org.apache.logging.log4j.Logger;
15+
import org.apache.logging.log4j.message.ParameterizedMessage;
1316
import org.apache.lucene.codecs.CodecUtil;
17+
import org.apache.lucene.index.CorruptIndexException;
1418
import org.apache.lucene.store.ChecksumIndexInput;
1519
import org.apache.lucene.store.IndexInput;
1620
import org.apache.lucene.store.IndexOutput;
@@ -22,6 +26,8 @@
2226
* @opensearch.internal
2327
*/
2428
public class VersionedCodecStreamWrapper<T> {
29+
private static final Logger logger = LogManager.getLogger(VersionedCodecStreamWrapper.class);
30+
2531
// TODO This can be updated to hold a streamReadWriteHandlerFactory and get relevant handler based on the stream versions
2632
private final IndexIOStreamHandler<T> indexIOStreamHandler;
2733
private final int currentVersion;
@@ -46,10 +52,21 @@ public VersionedCodecStreamWrapper(IndexIOStreamHandler<T> indexIOStreamHandler,
4652
* @return stream content parsed into {@link T}
4753
*/
4854
public T readStream(IndexInput indexInput) throws IOException {
49-
CodecUtil.checksumEntireFile(indexInput);
50-
int readStreamVersion = checkHeader(indexInput);
51-
T content = getHandlerForVersion(readStreamVersion).readContent(indexInput);
52-
return content;
55+
logger.debug("Reading input stream [{}] of length - [{}]", indexInput.toString(), indexInput.length());
56+
try {
57+
CodecUtil.checksumEntireFile(indexInput);
58+
int readStreamVersion = checkHeader(indexInput);
59+
return getHandlerForVersion(readStreamVersion).readContent(indexInput);
60+
} catch (CorruptIndexException cie) {
61+
logger.error(
62+
() -> new ParameterizedMessage(
63+
"Error while validating header/footer for [{}]. Total data length [{}]",
64+
indexInput.toString(),
65+
indexInput.length()
66+
)
67+
);
68+
throw cie;
69+
}
5370
}
5471

5572
/**

0 commit comments

Comments
 (0)