[
https://issues.apache.org/jira/browse/HDDS-1294?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16813703#comment-16813703
]
Shashikant Banerjee commented on HDDS-1294:
-------------------------------------------
Thanks[~jnp] for the review.
{noformat}
What is the need for returning synchronizedList? I think the problem is that
same class is used at client to update, and also at the SCM to
iterate.{noformat}
The idea here is to make sure the pipelineIds list doesn't mutate once multiple
keys update the exclude list but use the same the same Rpc Client instance.
Also, while iterating through the returned list, it should not mutate as well.
That is why, in latest patch, it returns a copy of the list. Same goes for
datanodes and container list as well. Currently, these methods are called only
in tests and hence i have added a synchronized version for each of them which
are visible for testing.
SCM and Client work on different objects of Exclude list, so no need to
synchronization there.
Rest of the review comments are addressed in patch v2.
> ExcludeList shoud be a RPC Client config so that multiple streams can avoid
> the same error.
> -------------------------------------------------------------------------------------------
>
> Key: HDDS-1294
> URL: https://issues.apache.org/jira/browse/HDDS-1294
> Project: Hadoop Distributed Data Store
> Issue Type: Bug
> Components: Ozone Client
> Affects Versions: 0.4.0
> Reporter: Mukul Kumar Singh
> Assignee: Shashikant Banerjee
> Priority: Major
> Labels: MiniOzoneChaosCluster
> Attachments: HDDS-1294.000.patch, HDDS-1294.001.patch,
> HDDS-1294.002.patch
>
>
> ExcludeList right now is a per BlockOutPutStream value, this can result in
> multiple keys created out of the same client to run into same exception
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]