You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hive.apache.org by Sunitha Beeram via Review Board <no...@reviews.apache.org> on 2017/06/21 22:02:26 UTC

Review Request 60303: HIVE-16908: Update table and partition replication tests to not use 2nd HCat instance

-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/60303/
-----------------------------------------------------------

Review request for hive, Carl Steinbach, Anthony Hsu, and Ratandeep Ratti.


Bugs: HIVE-16908
    https://issues.apache.org/jira/browse/HIVE-16908


Repository: hive-git


Description
-------

HIVE-16908: Update table and partition replication tests to not use 2nd HCat instance

HIVE-16844 fixed a connection leak issue which subsequently exposed failures in TestHCatClient. The connection leak gets triggered if a metastore instance is updated with a different JDO configuration. TestHCatClient uses 2 metastore instances to test replication related methods. Unfortunately, it does so by providing a different derby db name for the second instance. Since the 2 metastores run in the same JVM, the path fixed in HIVE-16844 gets triggered, resulting in "sourceMetastore"'s connection being closed and thus resulting in failures.

It appears to me that running 2 metastore instances within the same JVM is error prone as there could be unintentional side-effects due to statics in the code (as was exposed by fixing HIVE-16844). This patch provides a way to test the replication related methods without involving a second instance. The changes mainly validate the serialize/deserialize methods. One of the tests, testPartitionRegistrationWithCustomSchema, uses addPartitions method to verify propogation of changes and it appeared that addPartitions wasn't covered by other tests in TestHCatClient and there wasn't a better way to verify the intended path, so I used an approach where the original database and table are dropped and recreated using the serialized-string and captured partition spec.


Diffs
-----

  hcatalog/webhcat/java-client/src/test/java/org/apache/hive/hcatalog/api/TestHCatClient.java 86d3acbcb462d244fa2dc2f48923aab1e3ccee66 


Diff: https://reviews.apache.org/r/60303/diff/1/


Testing
-------

mvn test -DTest=TestHCatClient now passes.


Thanks,

Sunitha Beeram


Re: Review Request 60303: HIVE-16908: Update table and partition replication tests to not use 2nd HCat instance

Posted by Anthony Hsu via Review Board <no...@reviews.apache.org>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/60303/#review178710
-----------------------------------------------------------




hcatalog/webhcat/java-client/src/test/java/org/apache/hive/hcatalog/api/TestHCatClient.java
Lines 796-807 (original)
<https://reviews.apache.org/r/60303/#comment252859>

    Instead of deleting this, what about just starting the second metastore in a separate process? Then we can preserve the end-to-end integration-esque nature of the tests.



hcatalog/webhcat/java-client/src/test/java/org/apache/hive/hcatalog/api/TestHCatClient.java
Line 1011 (original), 996 (patched)
<https://reviews.apache.org/r/60303/#comment252858>

    its -> it's


- Anthony Hsu


On 六月 22, 2017, 12:59 a.m., Sunitha Beeram wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/60303/
> -----------------------------------------------------------
> 
> (Updated 六月 22, 2017, 12:59 a.m.)
> 
> 
> Review request for hive, Carl Steinbach, Anthony Hsu, and Ratandeep Ratti.
> 
> 
> Bugs: HIVE-16908
>     https://issues.apache.org/jira/browse/HIVE-16908
> 
> 
> Repository: hive-git
> 
> 
> Description
> -------
> 
> HIVE-16908: Update table and partition replication tests to not use 2nd HCat instance
> 
> HIVE-16844 fixed a connection leak issue which subsequently exposed failures in TestHCatClient. The connection leak gets triggered if a metastore instance is updated with a different JDO configuration. TestHCatClient uses 2 metastore instances to test replication related methods. Unfortunately, it does so by providing a different derby db name for the second instance. Since the 2 metastores run in the same JVM, the path fixed in HIVE-16844 gets triggered, resulting in "sourceMetastore"'s connection being closed and thus resulting in failures.
> 
> It appears to me that running 2 metastore instances within the same JVM is error prone as there could be unintentional side-effects due to statics in the code (as was exposed by fixing HIVE-16844). This patch provides a way to test the replication related methods without involving a second instance. The changes mainly validate the serialize/deserialize methods. One of the tests, testPartitionRegistrationWithCustomSchema, uses addPartitions method to verify propogation of changes and it appeared that addPartitions wasn't covered by other tests in TestHCatClient and there wasn't a better way to verify the intended path, so I used an approach where the original database and table are dropped and recreated using the serialized-string and captured partition spec.
> 
> 
> Diffs
> -----
> 
>   hcatalog/webhcat/java-client/src/test/java/org/apache/hive/hcatalog/api/TestHCatClient.java 86d3acbcb462d244fa2dc2f48923aab1e3ccee66 
> 
> 
> Diff: https://reviews.apache.org/r/60303/diff/2/
> 
> 
> Testing
> -------
> 
> mvn test -DTest=TestHCatClient now passes.
> 
> 
> Thanks,
> 
> Sunitha Beeram
> 
>


Re: Review Request 60303: HIVE-16908: Update table and partition replication tests to not use 2nd HCat instance

Posted by Sunitha Beeram via Review Board <no...@reviews.apache.org>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/60303/
-----------------------------------------------------------

(Updated June 22, 2017, 12:59 a.m.)


Review request for hive, Carl Steinbach, Anthony Hsu, and Ratandeep Ratti.


Bugs: HIVE-16908
    https://issues.apache.org/jira/browse/HIVE-16908


Repository: hive-git


Description
-------

HIVE-16908: Update table and partition replication tests to not use 2nd HCat instance

HIVE-16844 fixed a connection leak issue which subsequently exposed failures in TestHCatClient. The connection leak gets triggered if a metastore instance is updated with a different JDO configuration. TestHCatClient uses 2 metastore instances to test replication related methods. Unfortunately, it does so by providing a different derby db name for the second instance. Since the 2 metastores run in the same JVM, the path fixed in HIVE-16844 gets triggered, resulting in "sourceMetastore"'s connection being closed and thus resulting in failures.

It appears to me that running 2 metastore instances within the same JVM is error prone as there could be unintentional side-effects due to statics in the code (as was exposed by fixing HIVE-16844). This patch provides a way to test the replication related methods without involving a second instance. The changes mainly validate the serialize/deserialize methods. One of the tests, testPartitionRegistrationWithCustomSchema, uses addPartitions method to verify propogation of changes and it appeared that addPartitions wasn't covered by other tests in TestHCatClient and there wasn't a better way to verify the intended path, so I used an approach where the original database and table are dropped and recreated using the serialized-string and captured partition spec.


Diffs (updated)
-----

  hcatalog/webhcat/java-client/src/test/java/org/apache/hive/hcatalog/api/TestHCatClient.java 86d3acbcb462d244fa2dc2f48923aab1e3ccee66 


Diff: https://reviews.apache.org/r/60303/diff/2/

Changes: https://reviews.apache.org/r/60303/diff/1-2/


Testing
-------

mvn test -DTest=TestHCatClient now passes.


Thanks,

Sunitha Beeram