hadoop-hdfs-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Xiaoyu Yao (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HDDS-347) Fix : testCloseContainerViaStandaAlone fails sometimes
Date Mon, 13 Aug 2018 18:10:00 GMT

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

Xiaoyu Yao commented on HDDS-347:

Thanks [~GeLiXin] for working on this. The patch looks good to me. I think the key to address
the issue is wait for containerData.isClosed instead of !isOpened with the introduction of
the closing state.

Can you clarify if the sleep is still necessary? 

> Fix : testCloseContainerViaStandaAlone fails sometimes
> ------------------------------------------------------
>                 Key: HDDS-347
>                 URL: https://issues.apache.org/jira/browse/HDDS-347
>             Project: Hadoop Distributed Data Store
>          Issue Type: Bug
>            Reporter: LiXin Ge
>            Assignee: LiXin Ge
>            Priority: Major
>             Fix For: 0.2.1
>         Attachments: HDDS-347.000.patch
> This issue was finded in the automatic JenKins unit test of HDDS-265.
>  The container life cycle state is : Open -> Closing -> closed, this test submit
the container close command and wait for container state change to *not equal to open*, actually
even when the state condition(not equal to open) is satisfied, the container may still in
process of closing, so the LOG which will printf after the container closed can't be find
sometimes and the test fails.
> {code:java|title=KeyValueContainer.java|borderStyle=solid}
>     try {
>       writeLock();
>       containerData.closeContainer();
>       File containerFile = getContainerFile();
>       // update the new container data to .container File
>       updateContainerFile(containerFile);
>     } catch (StorageContainerException ex) {
> {code}
> Looking at the code above, the container state changes from CLOSING to CLOSED in the
first step, the remaining *updateContainerFile* may take hundreds of milliseconds, so even
we modify the test logic to wait for the *CLOSED* state will not guarantee the test success,
>  These are two way to fix this:
>  1, Remove one of the double check which depends on the LOG.
>  2, If we have to preserve the double check, we should wait for the *CLOSED* state and
sleep for a while to wait for the LOG appears.
>  patch 000 is based on the second way.

This message was sent by Atlassian JIRA

To unsubscribe, e-mail: hdfs-issues-unsubscribe@hadoop.apache.org
For additional commands, e-mail: hdfs-issues-help@hadoop.apache.org

View raw message