[ 
https://issues.apache.org/jira/browse/HBASE-28101?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17767710#comment-17767710
 ] 

Nihal Jain commented on HBASE-28101:
------------------------------------

Hi [~zhangduo] I suspect this change is causing 2 test cases to fail 
consistently in branch-2.5 and branch-2.4.
 * 
org.apache.hadoop.hbase.security.provider.example.TestShadeSaslAuthenticationProvider.testNegativeAuthentication
 * 
org.apache.hadoop.hbase.security.provider.example.TestShadeSaslAuthenticationProvider

Branch-2.5
 * PR failing: 
[https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5422/3/testReport/]
 * Nightly failing: 
[https://ci-hbase.apache.org/job/HBase%20Nightly/job/branch-2.5/405/testReport/]

Branch-2.4
 * PR failing:[ 
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5423/3/testReport/|https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5423/3/testReport/]
 * Nightly failing: 
[https://ci-hbase.apache.org/job/HBase%20Nightly/job/branch-2.4/619/testReport/]

 

StackTrace:
{code:java}
java.lang.Exception: Unexpected exception, 
expected<org.apache.hadoop.hbase.DoNotRetryIOException> but 
was<org.apache.hadoop.hbase.client.RetriesExhaustedException>
        at 
org.junit.internal.runners.statements.ExpectException.evaluate(ExpectException.java:30)
        at 
org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
        at org.junit.rules.TestWatcher$1.evaluate(TestWatcher.java:61)
        at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
        at 
org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100)
        at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366)
        at 
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103)
        at 
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63)
        at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
        at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
        at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
        at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
        at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
        at 
org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
        at 
org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
        at 
org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(FailOnTimeout.java:299)
        at 
org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(FailOnTimeout.java:293)
        at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
        at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: org.apache.hadoop.hbase.client.RetriesExhaustedException: Failed 
after attempts=4, exceptions:
2023-09-21T17:53:07.490Z, 
RpcRetryingCaller{globalStartTime=2023-09-21T17:52:04.943Z, pause=100, 
maxAttempts=4}, org.apache.hadoop.hbase.client.RetriesExhaustedException: 
Failed after attempts=4, exceptions:
2023-09-21T17:53:06.869Z, 
RpcRetryingCaller{globalStartTime=2023-09-21T17:53:06.862Z, pause=100, 
maxAttempts=4}, org.apache.hadoop.hbase.exceptions.ConnectionClosedException: 
Call to address=6a87b11f0f42:38383 failed on local exception: 
org.apache.hadoop.hbase.exceptions.ConnectionClosedException: Connection closed
2023-09-21T17:53:06.975Z, 
RpcRetryingCaller{globalStartTime=2023-09-21T17:53:06.862Z, pause=100, 
maxAttempts=4}, java.io.IOException: Call to address=6a87b11f0f42:38383 failed 
on local exception: java.io.IOException: Connection reset by peer
2023-09-21T17:53:07.182Z, 
RpcRetryingCaller{globalStartTime=2023-09-21T17:53:06.862Z, pause=100, 
maxAttempts=4}, java.io.IOException: Call to address=6a87b11f0f42:38383 failed 
on local exception: java.io.IOException: Connection reset by peer
2023-09-21T17:53:07.489Z, 
RpcRetryingCaller{globalStartTime=2023-09-21T17:53:06.862Z, pause=100, 
maxAttempts=4}, java.io.IOException: Call to address=6a87b11f0f42:38383 failed 
on local exception: java.io.IOException: Connection reset by peer

2023-09-21T17:53:08.215Z, 
RpcRetryingCaller{globalStartTime=2023-09-21T17:52:04.943Z, pause=100, 
maxAttempts=4}, org.apache.hadoop.hbase.client.RetriesExhaustedException: 
Failed after attempts=4, exceptions:
2023-09-21T17:53:07.597Z, 
RpcRetryingCaller{globalStartTime=2023-09-21T17:53:07.591Z, pause=100, 
maxAttempts=4}, java.io.IOException: Call to address=6a87b11f0f42:38383 failed 
on local exception: java.io.IOException: Connection reset by peer
2023-09-21T17:53:07.703Z, 
RpcRetryingCaller{globalStartTime=2023-09-21T17:53:07.591Z, pause=100, 
maxAttempts=4}, java.io.IOException: Call to address=6a87b11f0f42:38383 failed 
on local exception: java.io.IOException: Connection reset by peer
2023-09-21T17:53:07.909Z, 
RpcRetryingCaller{globalStartTime=2023-09-21T17:53:07.591Z, pause=100, 
maxAttempts=4}, java.io.IOException: Call to address=6a87b11f0f42:38383 failed 
on local exception: java.io.IOException: Connection reset by peer
2023-09-21T17:53:08.215Z, 
RpcRetryingCaller{globalStartTime=2023-09-21T17:53:07.591Z, pause=100, 
maxAttempts=4}, java.io.IOException: Call to address=6a87b11f0f42:38383 failed 
on local exception: java.io.IOException: Connection reset by peer

2023-09-21T17:53:09.057Z, 
RpcRetryingCaller{globalStartTime=2023-09-21T17:52:04.943Z, pause=100, 
maxAttempts=4}, org.apache.hadoop.hbase.client.RetriesExhaustedException: 
Failed after attempts=4, exceptions:
2023-09-21T17:53:08.422Z, 
RpcRetryingCaller{globalStartTime=2023-09-21T17:53:08.416Z, pause=100, 
maxAttempts=4}, java.io.IOException: Call to address=6a87b11f0f42:38383 failed 
on local exception: java.io.IOException: Connection reset by peer
2023-09-21T17:53:08.530Z, 
RpcRetryingCaller{globalStartTime=2023-09-21T17:53:08.416Z, pause=100, 
maxAttempts=4}, org.apache.hadoop.hbase.exceptions.ConnectionClosedException: 
Call to address=6a87b11f0f42:38383 failed on local exception: 
org.apache.hadoop.hbase.exceptions.ConnectionClosedException: Connection closed
2023-09-21T17:53:08.748Z, 
RpcRetryingCaller{globalStartTime=2023-09-21T17:53:08.416Z, pause=100, 
maxAttempts=4}, java.io.IOException: Call to address=6a87b11f0f42:38383 failed 
on local exception: java.io.IOException: Connection reset by peer
2023-09-21T17:53:09.056Z, 
RpcRetryingCaller{globalStartTime=2023-09-21T17:53:08.416Z, pause=100, 
maxAttempts=4}, org.apache.hadoop.hbase.exceptions.ConnectionClosedException: 
Call to address=6a87b11f0f42:38383 failed on local exception: 
org.apache.hadoop.hbase.exceptions.ConnectionClosedException: Connection closed

2023-09-21T17:53:09.990Z, 
RpcRetryingCaller{globalStartTime=2023-09-21T17:52:04.943Z, pause=100, 
maxAttempts=4}, org.apache.hadoop.hbase.client.RetriesExhaustedException: 
Failed after attempts=4, exceptions:
2023-09-21T17:53:09.362Z, 
RpcRetryingCaller{globalStartTime=2023-09-21T17:53:09.357Z, pause=100, 
maxAttempts=4}, java.io.IOException: Call to address=6a87b11f0f42:38383 failed 
on local exception: java.io.IOException: Connection reset by peer
2023-09-21T17:53:09.469Z, 
RpcRetryingCaller{globalStartTime=2023-09-21T17:53:09.357Z, pause=100, 
maxAttempts=4}, java.io.IOException: Call to address=6a87b11f0f42:38383 failed 
on local exception: java.io.IOException: Connection reset by peer
2023-09-21T17:53:09.683Z, 
RpcRetryingCaller{globalStartTime=2023-09-21T17:53:09.357Z, pause=100, 
maxAttempts=4}, java.io.IOException: Call to address=6a87b11f0f42:38383 failed 
on local exception: java.io.IOException: Connection reset by peer
2023-09-21T17:53:09.990Z, 
RpcRetryingCaller{globalStartTime=2023-09-21T17:53:09.357Z, pause=100, 
maxAttempts=4}, java.io.IOException: Call to address=6a87b11f0f42:38383 failed 
on local exception: java.io.IOException: Connection reset by peer


        at 
org.apache.hadoop.hbase.client.RpcRetryingCallerImpl.callWithRetries(RpcRetryingCallerImpl.java:141)
        at org.apache.hadoop.hbase.client.HTable.get(HTable.java:390)
        at org.apache.hadoop.hbase.client.HTable.lambda$get$0(HTable.java:363)
        at org.apache.hadoop.hbase.trace.TraceUtil.trace(TraceUtil.java:216)
        at org.apache.hadoop.hbase.client.HTable.get(HTable.java:363)
        at 
org.apache.hadoop.hbase.security.provider.example.TestShadeSaslAuthenticationProvider$3.run(TestShadeSaslAuthenticationProvider.java:235)
        at 
org.apache.hadoop.hbase.security.provider.example.TestShadeSaslAuthenticationProvider$3.run(TestShadeSaslAuthenticationProvider.java:230)
        at java.base/java.security.AccessController.doPrivileged(Native Method)
        at java.base/javax.security.auth.Subject.doAs(Subject.java:423)
        at 
org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1762)
        at 
org.apache.hadoop.hbase.security.provider.example.TestShadeSaslAuthenticationProvider.testNegativeAuthentication(TestShadeSaslAuthenticationProvider.java:230)
        at 
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at 
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:566)
        at 
org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)
        at 
org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
        at 
org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)
        at 
org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
        at 
org.junit.internal.runners.statements.ExpectException.evaluate(ExpectException.java:19)
        ... 18 more
Caused by: org.apache.hadoop.hbase.client.RetriesExhaustedException: Failed 
after attempts=4, exceptions:
2023-09-21T17:53:09.362Z, 
RpcRetryingCaller{globalStartTime=2023-09-21T17:53:09.357Z, pause=100, 
maxAttempts=4}, java.io.IOException: Call to address=6a87b11f0f42:38383 failed 
on local exception: java.io.IOException: Connection reset by peer
2023-09-21T17:53:09.469Z, 
RpcRetryingCaller{globalStartTime=2023-09-21T17:53:09.357Z, pause=100, 
maxAttempts=4}, java.io.IOException: Call to address=6a87b11f0f42:38383 failed 
on local exception: java.io.IOException: Connection reset by peer
2023-09-21T17:53:09.683Z, 
RpcRetryingCaller{globalStartTime=2023-09-21T17:53:09.357Z, pause=100, 
maxAttempts=4}, java.io.IOException: Call to address=6a87b11f0f42:38383 failed 
on local exception: java.io.IOException: Connection reset by peer
2023-09-21T17:53:09.990Z, 
RpcRetryingCaller{globalStartTime=2023-09-21T17:53:09.357Z, pause=100, 
maxAttempts=4}, java.io.IOException: Call to address=6a87b11f0f42:38383 failed 
on local exception: java.io.IOException: Connection reset by peer

        at 
org.apache.hadoop.hbase.client.RpcRetryingCallerImpl.callWithRetries(RpcRetryingCallerImpl.java:141)
        at org.apache.hadoop.hbase.client.HTable.get(HTable.java:390)
        at org.apache.hadoop.hbase.client.HTable.lambda$get$0(HTable.java:363)
        at org.apache.hadoop.hbase.trace.TraceUtil.trace(TraceUtil.java:216)
        at org.apache.hadoop.hbase.client.HTable.get(HTable.java:363)
        at 
org.apache.hadoop.hbase.MetaTableAccessor.getTableState(MetaTableAccessor.java:1141)
        at 
org.apache.hadoop.hbase.client.ConnectionImplementation.getTableState(ConnectionImplementation.java:2235)
        at 
org.apache.hadoop.hbase.client.ConnectionImplementation.isTableDisabled(ConnectionImplementation.java:742)
        at 
org.apache.hadoop.hbase.client.RegionServerCallable.prepare(RegionServerCallable.java:214)
        at 
org.apache.hadoop.hbase.client.RpcRetryingCallerImpl.callWithRetries(RpcRetryingCallerImpl.java:101)
        ... 37 more
Caused by: java.io.IOException: Call to address=6a87b11f0f42:38383 failed on 
local exception: java.io.IOException: Connection reset by peer
        at 
java.base/jdk.internal.reflect.GeneratedConstructorAccessor69.newInstance(Unknown
 Source)
        at 
java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
        at 
java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
        at org.apache.hadoop.hbase.ipc.IPCUtil.wrapException(IPCUtil.java:239)
        at 
org.apache.hadoop.hbase.ipc.AbstractRpcClient.onCallFinished(AbstractRpcClient.java:391)
        at 
org.apache.hadoop.hbase.ipc.AbstractRpcClient.access$100(AbstractRpcClient.java:92)
        at 
org.apache.hadoop.hbase.ipc.AbstractRpcClient$3.run(AbstractRpcClient.java:425)
        at 
org.apache.hadoop.hbase.ipc.AbstractRpcClient$3.run(AbstractRpcClient.java:420)
        at org.apache.hadoop.hbase.ipc.Call.callComplete(Call.java:114)
        at org.apache.hadoop.hbase.ipc.Call.setException(Call.java:129)
        at 
org.apache.hadoop.hbase.ipc.NettyRpcDuplexHandler.cleanupCalls(NettyRpcDuplexHandler.java:212)
        at 
org.apache.hadoop.hbase.ipc.NettyRpcDuplexHandler.exceptionCaught(NettyRpcDuplexHandler.java:229)
        at 
org.apache.hbase.thirdparty.io.netty.channel.AbstractChannelHandlerContext.invokeExceptionCaught(AbstractChannelHandlerContext.java:346)
        at 
org.apache.hbase.thirdparty.io.netty.channel.AbstractChannelHandlerContext.invokeExceptionCaught(AbstractChannelHandlerContext.java:325)
        at 
org.apache.hbase.thirdparty.io.netty.channel.AbstractChannelHandlerContext.fireExceptionCaught(AbstractChannelHandlerContext.java:317)
        at 
org.apache.hbase.thirdparty.io.netty.channel.DefaultChannelPipeline$HeadContext.exceptionCaught(DefaultChannelPipeline.java:1377)
        at 
org.apache.hbase.thirdparty.io.netty.channel.AbstractChannelHandlerContext.invokeExceptionCaught(AbstractChannelHandlerContext.java:346)
        at 
org.apache.hbase.thirdparty.io.netty.channel.AbstractChannelHandlerContext.invokeExceptionCaught(AbstractChannelHandlerContext.java:325)
        at 
org.apache.hbase.thirdparty.io.netty.channel.DefaultChannelPipeline.fireExceptionCaught(DefaultChannelPipeline.java:907)
        at 
org.apache.hbase.thirdparty.io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.handleReadException(AbstractNioByteChannel.java:125)
        at 
org.apache.hbase.thirdparty.io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:177)
        at 
org.apache.hbase.thirdparty.io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788)
        at 
org.apache.hbase.thirdparty.io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724)
        at 
org.apache.hbase.thirdparty.io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650)
        at 
org.apache.hbase.thirdparty.io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562)
        at 
org.apache.hbase.thirdparty.io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)
        at 
org.apache.hbase.thirdparty.io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
        at 
org.apache.hbase.thirdparty.io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
        ... 1 more
Caused by: java.io.IOException: Connection reset by peer
        at java.base/sun.nio.ch.FileDispatcherImpl.read0(Native Method)
        at java.base/sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:39)
        at java.base/sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:276)
        at java.base/sun.nio.ch.IOUtil.read(IOUtil.java:233)
        at java.base/sun.nio.ch.IOUtil.read(IOUtil.java:223)
        at 
java.base/sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:356)
        at 
org.apache.hbase.thirdparty.io.netty.buffer.PooledByteBuf.setBytes(PooledByteBuf.java:259)
        at 
org.apache.hbase.thirdparty.io.netty.buffer.AbstractByteBuf.writeBytes(AbstractByteBuf.java:1132)
        at 
org.apache.hbase.thirdparty.io.netty.channel.socket.nio.NioSocketChannel.doReadBytes(NioSocketChannel.java:357)
        at 
org.apache.hbase.thirdparty.io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:151)
        ... 8 more

{code}
 

 

> Should check the return value of protobuf Message.mergeDelimitedFrom
> --------------------------------------------------------------------
>
>                 Key: HBASE-28101
>                 URL: https://issues.apache.org/jira/browse/HBASE-28101
>             Project: HBase
>          Issue Type: Bug
>          Components: Protobufs, rpc
>            Reporter: Duo Zhang
>            Assignee: Duo Zhang
>            Priority: Critical
>             Fix For: 2.6.0, 2.4.18, 2.5.6, 3.0.0-beta-1
>
>
> Found this problem while upgrading thirdparty dependencies.
> The javadoc of mergeDelimitedFrom says
> {code}
>     /**
>      * Like {@link #mergeFrom(InputStream)}, but does not read until EOF. 
> Instead, the size of the
>      * message (encoded as a varint) is read first, then the message data. 
> Use {@link
>      * MessageLite#writeDelimitedTo(OutputStream)} to write messages in this 
> format.
>      *
>      * @return true if successful, or false if the stream is at EOF when the 
> method starts. Any
>      *     other error (including reaching EOF during parsing) causes an 
> exception to be thrown.
>      * @throws InvalidProtocolBufferException the bytes read are not 
> syntactically correct
>      *     according to the protobuf wire format specification. The data is 
> corrupt, incomplete,
>      *     or was never a protobuf in the first place.
>      * @throws IOException an I/O error reading from the stream
>      */
> {code}
> So we should not ignore the return value, otherwise we may get an incomplete 
> message.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to