[ https://issues.apache.org/jira/browse/HBASE-11099?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Andrew Purtell reopened HBASE-11099: ------------------------------------ +1 for 0.98. Reopening. Apologies that I got behind with this. If you provide a 0.98 patch I will commit it > Two situations where we could open a region with smaller sequence number > ------------------------------------------------------------------------ > > Key: HBASE-11099 > URL: https://issues.apache.org/jira/browse/HBASE-11099 > Project: HBase > Issue Type: Bug > Components: regionserver > Affects Versions: 0.99.1 > Reporter: Jeffrey Zhong > Assignee: Stephen Yuan Jiang > Fix For: 2.0.0, 0.98.9, 0.99.2 > > Attachments: HBASE-11099.v1-2.0.patch > > > Recently I happened to run into code where we potentially could open region > with smaller sequence number: > 1) Inside function: HRegion#internalFlushcache. This is due to we change the > way WAL Sync where we use late binding(assign sequence number right before > wal sync). > The flushSeqId may less than the change sequence number included in the flush > which may cause later region opening code to use a smaller than expected > sequence number when we reopen the region. > {code} > flushSeqId = this.sequenceId.incrementAndGet(); > ... > mvcc.waitForRead(w); > {code} > 2) HRegion#replayRecoveredEdits where we have following code: > {code} > ... > if (coprocessorHost != null) { > status.setStatus("Running pre-WAL-restore hook in coprocessors"); > if (coprocessorHost.preWALRestore(this.getRegionInfo(), key, > val)) { > // if bypass this log entry, ignore it ... > continue; > } > } > ... > currentEditSeqId = key.getLogSeqNum(); > {code} > If coprocessor skip some tail WALEdits, then the function will return smaller > currentEditSeqId. In the end, a region may also open with a smaller sequence > number. This may cause data loss because Master may record a larger flushed > sequence Id and some WALEdits maybe skipped during recovery if the region > fail again. -- This message was sent by Atlassian JIRA (v6.3.4#6332)