[ https://issues.apache.org/jira/browse/HBASE-18099?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Sean Busbey updated HBASE-18099: -------------------------------- Component/s: snapshots > FlushSnapshotSubprocedure should wait for concurrent Region#flush() to finish > ----------------------------------------------------------------------------- > > Key: HBASE-18099 > URL: https://issues.apache.org/jira/browse/HBASE-18099 > Project: HBase > Issue Type: Bug > Components: snapshots > Reporter: Ted Yu > Assignee: Ted Yu > Priority: Critical > Fix For: 2.0.0, 1.4.0 > > Attachments: 18099.v1.txt, 18099.v2.txt, 18099.v3.txt, 18099.v4.txt > > > In the following thread: > http://search-hadoop.com/m/HBase/YGbbMXkeHlI9zo > Jacob described the scenario where data from certain region were missing in > the snapshot. > Here was related region server log: > https://pastebin.com/1ECXjhRp > He pointed out that concurrent flush from MemStoreFlusher.1 thread was not > initiated from the thread pool for snapshot. > In RegionSnapshotTask#call() method there is this: > {code} > region.flush(true); > {code} > The return value is not checked. > In HRegion#flushcache(), Result.CANNOT_FLUSH may be returned due to: > {code} > String msg = "Not flushing since " > + (writestate.flushing ? "already flushing" > : "writes not enabled"); > {code} > This implies that FlushSnapshotSubprocedure may incorrectly skip waiting for > the concurrent flush to complete. -- This message was sent by Atlassian JIRA (v6.4.14#64029)