terry zhang created HBASE-6719: ---------------------------------- Summary: [replication] Data will lose if open a Hlog failed more than maxRetriesMultiplier Key: HBASE-6719 URL: https://issues.apache.org/jira/browse/HBASE-6719 Project: HBase Issue Type: Bug Components: replication Affects Versions: 0.94.1 Reporter: terry zhang Assignee: terry zhang Priority: Critical Fix For: 0.94.2
Please Take a look below code {code:title=ReplicationSource.java|borderStyle=solid} protected boolean openReader(int sleepMultiplier) { { ... catch (IOException ioe) { LOG.warn(peerClusterZnode + " Got: ", ioe); // TODO Need a better way to determinate if a file is really gone but // TODO without scanning all logs dir if (sleepMultiplier == this.maxRetriesMultiplier) { LOG.warn("Waited too long for this file, considering dumping"); return !processEndOfFile(); // Open a file failed over maxRetriesMultiplier(default 10) } } return true; ... } protected boolean processEndOfFile() { if (this.queue.size() != 0) { // Skipped this Hlog . Data loss this.currentPath = null; this.position = 0; return true; } else if (this.queueRecovered) { // Terminate Failover Replication source thread ,data loss this.manager.closeRecoveredQueue(this); LOG.info("Finished recovering the queue"); this.running = false; return true; } return false; } {code} Some Time HDFS will meet some problem but actually Hlog file is OK , So after HDFS back ,Some data will lose and can not find them back in slave cluster. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira