hbase-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Ted Yu (JIRA)" <j...@apache.org>
Subject [jira] [Created] (HBASE-18099) FlushSnapshotSubprocedure should check the return value from Region#flush()
Date Wed, 24 May 2017 15:38:04 GMT
Ted Yu created HBASE-18099:
------------------------------

             Summary: FlushSnapshotSubprocedure should check the return value from Region#flush()
                 Key: HBASE-18099
                 URL: https://issues.apache.org/jira/browse/HBASE-18099
             Project: HBase
          Issue Type: Bug
            Reporter: Ted Yu


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.3.15#6346)

Mime
View raw message