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

Mohammad Arafat Khan commented on HDDS-9898:
--------------------------------------------

Recon employs a *PipeLineSyncTask* responsible for creating and removing 
pipelines as needed. This task operates in the background, running every {*}5 
minutes{*}. When Recon initially starts up, this task runs for the first time 
and successfully registers the existing Ratis Pipelines.

However, when we create a key using EC replication, a separate pipeline is 
generated for EC within the cluster. Recon also receives reports from the EC 
container during this process. Still, Recon does not immediately register the 
EC container because the pipeline associated with it has not been registered in 
Recon yet.

After a 5-minute delay, the PipelineSyncTask runs again, registering the new 
pipeline with Recon. Subsequently, the EC container is added to Recon once its 
pipeline has been successfully registered.

cc: [~siddhant] 

> Recon SCM doesn't store EC containers
> -------------------------------------
>
>                 Key: HDDS-9898
>                 URL: https://issues.apache.org/jira/browse/HDDS-9898
>             Project: Apache Ozone
>          Issue Type: Bug
>            Reporter: Christos Bisias
>            Assignee: Mohammad Arafat Khan
>            Priority: Major
>
> While working on an integration test for 
> https://issues.apache.org/jira/browse/HDDS-9645
> I created an EC container and then tried to compare SCM to Recon. Recon-SCM 
> wasn't picking up the container and I noticed this ERROR in the logs.
> {code:java}
> 2023-12-11 15:57:38,663 [Recon-FixedThreadPoolWithAffinityExecutor-0-0] ERROR 
> container.ContainerReportHandler 
> (ContainerReportHandler.java:processSingleReplica(228)) - Received container 
> report for an unknown container 3 from datanode 
> 7501f622-8ca7-4a47-a65e-e2b3d77723c4(localhost/127.0.0.1).{code}
> I tested it with the docker env on master and Recon doesn't store EC 
> containers. When creating EC containers Recon's SCM containers table is empty.
> {code:java}
> bash-4.2$ ozone freon ockg -t 10 -n 10 --type=EC -r=rs-3-2-1024k
> ...
> ...
> ...
> bash-4.2$ ozone debug ldb --db=/data/metadata/recon-scm.db scan 
> --cf=containers
> {  } {code}
> Recon UI also displays 0 containers. When creating Ratis containers, it works
> {code:java}
> bash-4.2$ ozone freon ockg -t 10 -n 10 
> ...
> ...
> ...
> Total execution time (sec): 2
> Failures: 0
> Successful executions: 10
> bash-4.2$ ozone debug ldb --db=/data/metadata/recon-scm.db scan 
> --cf=containers
> { {
>   "id" : 6
> }: {
>   "state" : "OPEN",
>   "stateEnterTime" : 1702302641.257000000,
>   "replicationConfig" : {
>     "replicationFactor" : "ONE",
>     "replicationType" : "RATIS"
>   },
>   "usedBytes" : 0,
>   "numberOfKeys" : 0,
>   "lastUsed" : 1702302648.723516000,
>   "owner" : "omServiceIdDefault",
>   "containerID" : 6,
>   "deleteTransactionId" : 0,
>   "sequenceId" : 0
> }
> , {
> ...{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]

Reply via email to