Ted Yu created HBASE-12685:
------------------------------

             Summary: TestSplitLogManager#testLogFilesAreArchived sometimes 
times out due to race condition 
                 Key: HBASE-12685
                 URL: https://issues.apache.org/jira/browse/HBASE-12685
             Project: HBase
          Issue Type: Test
            Reporter: Ted Yu
            Assignee: Ted Yu
            Priority: Minor


>From 
>https://builds.apache.org/job/hbase-0.98/739/testReport/org.apache.hadoop.hbase.master/TestSplitLogManager/testLogFilesAreArchived/
> :
{code}
2014-12-14 14:40:30,420 INFO  [Thread-27] master.SplitLogManager(325): started 
splitting 1 logs in 
[/home/jenkins/jenkins-slave/workspace/HBase-0.98/hbase-server/target/test-data/c065c13d-bc83-48e7-9178-51a14df531c3/testLogFilesAreArchived/f7ae1e8f-c848-4089-b5b1-20aff73c81dd]
2014-12-14 14:40:30,422 WARN  [Thread-31] master.TestSplitLogManager$5(527): 
org.apache.zookeeper.KeeperException$NoNodeException: KeeperErrorCode = NoNode 
for /hbase/splitWAL/f7ae1e8f-c848-4089-b5b1-20aff73c81dd%2Ffoo%2C1%2C1
2014-12-14 14:40:30,423 DEBUG [main-EventThread] master.SplitLogManager(703): 
put up splitlog task at znode 
/hbase/splitWAL/f7ae1e8f-c848-4089-b5b1-20aff73c81dd%2Ffoo%2C1%2C1
{code}
The thread which mocks split done called ZKUtil.setData() before 
SplitLogManager put up the splitlog task znode. The setting of done to true 
should exclude the above scenario.
Otherwise log split task would miss the split done mock, resulting in test 
failure:
{code}
2014-12-14 14:41:18,562 INFO  [main-EventThread] master.SplitLogManager(753): 
task /hbase/splitWAL/RESCAN0000000004 entered state: DONE dummy-master,1,1
2014-12-14 14:41:18,563 DEBUG [main-EventThread] 
zookeeper.ZooKeeperWatcher(312): 
split-log-manager-testsa62d20ae-9904-4dc6-9e79-b7d98486dd49-0x14a493e58af0000, 
quorum=localhost:50869, baseZNode=/hbase Received ZooKeeper Event, 
type=NodeDeleted, state=SyncConnected, path=/hbase/splitWAL/RESCAN0000000004
2014-12-14 14:41:18,563 DEBUG [main-EventThread] 
master.SplitLogManager$DeleteAsyncCallback(1712): deleted 
/hbase/splitWAL/RESCAN0000000004
2014-12-14 14:41:18,563 DEBUG [main-EventThread] master.SplitLogManager(935): 
deleted task without in memory state /hbase/splitWAL/RESCAN0000000004
2014-12-14 14:41:20,562 INFO  [dummy-master,1,1.splitLogManagerTimeoutMonitor] 
master.SplitLogManager$TimeoutMonitor(1502): total tasks = 1 unassigned = 1 
tasks={/hbase/splitWAL/f7ae1e8f-c848-4089-b5b1-20aff73c81dd%2Ffoo%2C1%2C1=last_update
 = -1 last_version = -1 cur_worker_name = null status = in_progress incarnation 
= 0 resubmits = 0 batch = installed = 1 done = 0 error = 0}
2014-12-14 14:41:25,568 INFO  [dummy-master,1,1.splitLogManagerTimeoutMonitor] 
master.SplitLogManager$TimeoutMonitor(1502): total tasks = 1 unassigned = 1 
tasks={/hbase/splitWAL/f7ae1e8f-c848-4089-b5b1-20aff73c81dd%2Ffoo%2C1%2C1=last_update
 = -1 last_version = -1 cur_worker_name = null status = in_progress incarnation 
= 0 resubmits = 0 batch = installed = 1 done = 0 error = 0}
2014-12-14 14:41:30,399 WARN  [Thread-27] master.SplitLogManager(441): 
Interrupted while waiting for log splits to be completed
{code}



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

Reply via email to