You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ozone.apache.org by "Arpit Agarwal (Jira)" <ji...@apache.org> on 2020/06/02 20:51:01 UTC
[jira] [Updated] (HDDS-3459) Datanode use a single thread to
process the command of scm
[ https://issues.apache.org/jira/browse/HDDS-3459?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Arpit Agarwal updated HDDS-3459:
--------------------------------
Target Version/s: 0.7.0
> Datanode use a single thread to process the command of scm
> ----------------------------------------------------------
>
> Key: HDDS-3459
> URL: https://issues.apache.org/jira/browse/HDDS-3459
> Project: Hadoop Distributed Data Store
> Issue Type: Bug
> Reporter: runzhiwang
> Assignee: runzhiwang
> Priority: Major
> Attachments: screenshot-1.png, screenshot-2.png, screenshot-3.png, screenshot-4.png, screenshot-5.png, screenshot-6.png, screenshot-7.png
>
>
> *What's the problem ?*
> Datanode use a single [command-processor-thread |https://github.com/apache/hadoop-ozone/blob/master/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/common/statemachine/DatanodeStateMachine.java#L482] to process the command of scm. Sometimes the thread maybe blocked a very long time, then all the command from scm can not be processed, it maybe cause some problem.
> For example, a group has leader, follower1, follower2, Steps to reproduce the problem are as following:
> 1. Some datanodes crash, and follower2 begin streaming container data to other datanode, then the command-processor-thread was blocked at [cont.writeLock()|https://github.com/apache/hadoop-ozone/blob/master/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/common/statemachine/commandhandler/DeleteBlocksCommandHandler.java#L130] when it try to delete block, because streaming container data need to hold the RwLock of container.
> 2. follower2 report close pipeline
> 3. scm send close pipeline command
> 4. leader and follower1 remove group, but follower2 can not remove group because the command-processor-thread was blocked.
> 5. follower2 then begin LeaderElection about 12 hours until streaming container data finish and release the RwLock, leader and follower1 response group not found.
> You can see find it in following screenshot.
> 1. follower2 begin streaming container data from 2020-04-17 23:38:39
> !screenshot-1.png!
> 2. follower2 report close pipeline 2020-01-48 01:14:39
> !screenshot-2.png!
> 3. scm send close pipeline command
> !screenshot-3.png!
> !screenshot-4.png!
> 4. leader remove group
> !screenshot-5.png!
> follower1 remove group
> !screenshot-6.png!
> 5. follower2 then begin LeaderElection about 12 hours until 2020-04-18 13:06:20.
> !screenshot-7.png!
--
This message was sent by Atlassian Jira
(v8.3.4#803005)
---------------------------------------------------------------------
To unsubscribe, e-mail: ozone-issues-unsubscribe@hadoop.apache.org
For additional commands, e-mail: ozone-issues-help@hadoop.apache.org