Description
"test.build.data" is overloaded in HBase.At the beginning, it's the "Default parent directory for test output.", but then it's rewritten to be the directory itself in functions like HBaseTestingUtility#startMiniDFSCluster
It seems that this value is already used by MiniDFS (i.e. outside of HBase):
"Name is as it is because mini dfs has hard-codings to put test data here."
As it is today, there is at least a bug in HBaseTestingUtility:
public void initTestDir() { if (System.getProperty(TEST_DIRECTORY_KEY) == null) { clusterTestBuildDir = setupClusterTestBuildDir(); System.setProperty(TEST_DIRECTORY_KEY, clusterTestBuildDir.getPath()); } }
if you set a value for "test.build.data", the test dir will be the parent directory and not a temp subdir, leading to issues as multiple tests will end-ups in the same (bad) directory. This function is barely used today, hence it's not visible, but I would like to use it in some new code.
A possible fix is to remove the check for null and continue with the overloading, but I don't think it would be a big issue to create a new key(like "test.build.data.rootdirectory") specific to the root directory and to use "test.build.data" only to communicate with MiniDFS. Feedback welcome.
Attachments
Attachments
Issue Links
- is required by
-
HBASE-4602 Make the suite run in at least half the time
- Closed
- supercedes
-
HBASE-4639 DFS Cluster is used while not needed in some unit tests
- Closed