Stephen Yuan Jiang created HBASE-13800:
------------------------------------------

             Summary: TestStore#testDeleteExpiredStoreFiles should create 
different data/log directory for each call
                 Key: HBASE-13800
                 URL: https://issues.apache.org/jira/browse/HBASE-13800
             Project: HBase
          Issue Type: Bug
          Components: test
    Affects Versions: 1.1.0, 2.0.0, 1.2.0
            Reporter: Stephen Yuan Jiang
            Assignee: Stephen Yuan Jiang
            Priority: Minor


When TestStore#init() was called twice in 
TestStore#testDeleteExpiredStoreFiles, it did not use different base directory 
for each call (other tests in the same test suite do).  If the first call did 
not release the handle of WAL files fast enough, the second init() call would 
fail.  

This is constantly seen in Windows environment:
{noformat}
java.io.IOException: Target WAL already exists within directory 
file:/C:/hbase/hbase-server/target/test-data/f39ecdde-1d04-4332-93c7-4c8df1e08e67/TestStoretestDeleteExpiredStoreFiles/WALs/testDeleteExpiredStoreFiles
        at 
org.apache.hadoop.hbase.regionserver.wal.FSHLog.<init>(FSHLog.java:525)
        at 
org.apache.hadoop.hbase.wal.DefaultWALProvider.init(DefaultWALProvider.java:97)
        at 
org.apache.hadoop.hbase.wal.WALFactory.getProvider(WALFactory.java:147)
        at org.apache.hadoop.hbase.wal.WALFactory.<init>(WALFactory.java:179)
        at 
org.apache.hadoop.hbase.regionserver.TestStore.init(TestStore.java:185)
        at 
org.apache.hadoop.hbase.regionserver.TestStore.init(TestStore.java:162)
        at 
org.apache.hadoop.hbase.regionserver.TestStore.testDeleteExpiredStoreFiles(TestStore.java:307)
        at 
org.apache.hadoop.hbase.regionserver.TestStore.testDeleteExpiredStoreFiles(TestStore.java:286)
{noformat}

The fix is trivial: just like other tests in the same test suite, use different 
base directory for multiple init() calls in the same test.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to