[
https://issues.apache.org/jira/browse/HBASE-27073?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17684306#comment-17684306
]
Duo Zhang commented on HBASE-27073:
-----------------------------------
Thanks [~apurtell] for providing the information.
I chekced the code in ProtobufLogReader, it is a bit strange that when hitting
InvalidProtocolBufferException, we set resetPosition to true at line 381, but
in the below catch block, we will not test the resetPosition flag, and just
seek to the originalPosition, while I think resetPosition means reset to the
beginning.
IIRC, there are some back and forth here as I do not think we should always
reset to beginning while we read an incomplete protobuf message, but when
compression is enabled, especially we use a dict which is built on the fly, the
only way to seek back is to create a new dict and read from beginning.
Let me see if I can provide a UT to reproduce the problem.
Thanks.
> TestReplicationValueCompressedWAL.testMultiplePuts is flaky
> -----------------------------------------------------------
>
> Key: HBASE-27073
> URL: https://issues.apache.org/jira/browse/HBASE-27073
> Project: HBase
> Issue Type: Bug
> Affects Versions: 2.5.0
> Environment: Java version: 1.8.0_322
> OS name: "linux", version: "5.10.0-13-arm64", arch: "aarch64", family: "unix"
> Reporter: Andrew Kyle Purtell
> Priority: Minor
> Fix For: 2.6.0, 3.0.0-alpha-4, 2.5.4
>
>
> org.apache.hadoop.hbase.replication.regionserver.TestReplicationValueCompressedWAL.testMultiplePuts
> 
Run 1: TestReplicationValueCompressedWAL.testMultiplePuts:56 Waited too
> much time for replication
> Run 2: PASS
--
This message was sent by Atlassian Jira
(v8.20.10#820010)