hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Mingliang Liu (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-21138) Close HRegion instance at the end of every test in TestHRegion
Date Sat, 01 Sep 2018 04:37:00 GMT

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

Mingliang Liu commented on HBASE-21138:

We should keep the same behavior.
Make sense.

I checked the test source file and thought that, for those local variables we can actually
make them test case variable. That way, we can close it in {{tearDown()}} in a standard way,
and each test can focus on the real meaningful test by avoiding try-finally clause. In a few
cases where the test method needs to the region itself, it's fine {{tearDown()}} closes it
again as long as we set the {{region}} to null value. The reason is that, {{HBaseTestingUtility.closeRegionAndWAL()}}
will be a no-op if region is null.

So the plan is to review all the test methods: 1) use the test field {{region}} if possible
2) close in {{tearDown()}}, 3) remove the duplicate close in each test method {{finally}}
clause unless it may relate to other resource (e.g. {{wals}} close). Sounds good? Thanks,

> Close HRegion instance at the end of every test in TestHRegion
> --------------------------------------------------------------
>                 Key: HBASE-21138
>                 URL: https://issues.apache.org/jira/browse/HBASE-21138
>             Project: HBase
>          Issue Type: Test
>            Reporter: Ted Yu
>            Assignee: Mingliang Liu
>            Priority: Major
>         Attachments: HBASE-21138.000.patch
> TestHRegion has over 100 tests.
> The following is from one subtest:
> {code}
>   public void testCompactionAffectedByScanners() throws Exception {
>     byte[] family = Bytes.toBytes("family");
>     this.region = initHRegion(tableName, method, CONF, family);
> {code}
> this.region is not closed at the end of the subtest.
> testToShowNPEOnRegionScannerReseek is another example.
> Every subtest should use the following construct toward the end:
> {code}
>     } finally {
>       HBaseTestingUtility.closeRegionAndWAL(this.region);
> {code}

This message was sent by Atlassian JIRA

View raw message