[
https://issues.apache.org/jira/browse/HDDS-9709?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Duong updated HDDS-9709:
------------------------
Description:
Today, container pipelines are cached in OM and the cache data consistency is
eventually ensured by client behavior. This means, if a container is replicated
to another set of datanodes, the client detects this change when using the
outdated cached pipeline to read data from datanodes and requests OM to refresh
the pipeline cache from SCM.
When the datanodes belonging to a container go offline, there are chances that
an empty pipeline could be cached in OM. However, when client get an empty
pipeline, it fails to ask OM to refresh the pipeline.
{code:java}
Caused by: java.lang.IllegalArgumentException: NO_REPLICA_FOUND
at
com.google.common.base.Preconditions.checkArgument(Preconditions.java:145)
at
org.apache.hadoop.hdds.scm.XceiverClientManager.acquireClient(XceiverClientManager.java:164)
at
org.apache.hadoop.hdds.scm.XceiverClientManager.acquireClientForReadData(XceiverClientManager.java:157)
at
org.apache.hadoop.hdds.scm.storage.BlockInputStream.acquireClient(BlockInputStream.java:285)
at
org.apache.hadoop.hdds.scm.storage.BlockInputStream.getChunkInfos(BlockInputStream.java:238)
at
org.apache.hadoop.hdds.scm.storage.BlockInputStream.initialize(BlockInputStream.java:146)
at
org.apache.hadoop.hdds.scm.storage.BlockInputStream.readWithStrategy(BlockInputStream.java:308)
{code}
was:
Today, container pipeline are cached in OM and consistency is eventually ensure
by client behavior. This mean
When the datanodes belonging to a container go offline, there are chances that
an empty pipeline could be cached in OM for the container.
{code:java}
Caused by: java.lang.IllegalArgumentException: NO_REPLICA_FOUND
at
com.google.common.base.Preconditions.checkArgument(Preconditions.java:145)
at
org.apache.hadoop.hdds.scm.XceiverClientManager.acquireClient(XceiverClientManager.java:164)
at
org.apache.hadoop.hdds.scm.XceiverClientManager.acquireClientForReadData(XceiverClientManager.java:157)
at
org.apache.hadoop.hdds.scm.storage.BlockInputStream.acquireClient(BlockInputStream.java:285)
at
org.apache.hadoop.hdds.scm.storage.BlockInputStream.getChunkInfos(BlockInputStream.java:238)
at
org.apache.hadoop.hdds.scm.storage.BlockInputStream.initialize(BlockInputStream.java:146)
at
org.apache.hadoop.hdds.scm.storage.BlockInputStream.readWithStrategy(BlockInputStream.java:308)
{code}
> NO_REPLICA_FOUND should trigger a OM pipeline cache refresh
> -----------------------------------------------------------
>
> Key: HDDS-9709
> URL: https://issues.apache.org/jira/browse/HDDS-9709
> Project: Apache Ozone
> Issue Type: Bug
> Reporter: Duong
> Priority: Major
>
> Today, container pipelines are cached in OM and the cache data consistency is
> eventually ensured by client behavior. This means, if a container is
> replicated to another set of datanodes, the client detects this change when
> using the outdated cached pipeline to read data from datanodes and requests
> OM to refresh the pipeline cache from SCM.
> When the datanodes belonging to a container go offline, there are chances
> that an empty pipeline could be cached in OM. However, when client get an
> empty pipeline, it fails to ask OM to refresh the pipeline.
> {code:java}
> Caused by: java.lang.IllegalArgumentException: NO_REPLICA_FOUND
> at
> com.google.common.base.Preconditions.checkArgument(Preconditions.java:145)
> at
> org.apache.hadoop.hdds.scm.XceiverClientManager.acquireClient(XceiverClientManager.java:164)
> at
> org.apache.hadoop.hdds.scm.XceiverClientManager.acquireClientForReadData(XceiverClientManager.java:157)
> at
> org.apache.hadoop.hdds.scm.storage.BlockInputStream.acquireClient(BlockInputStream.java:285)
> at
> org.apache.hadoop.hdds.scm.storage.BlockInputStream.getChunkInfos(BlockInputStream.java:238)
> at
> org.apache.hadoop.hdds.scm.storage.BlockInputStream.initialize(BlockInputStream.java:146)
> at
> org.apache.hadoop.hdds.scm.storage.BlockInputStream.readWithStrategy(BlockInputStream.java:308)
> {code}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]