In the following thread:
Jacob described the scenario where data from certain region were missing in the snapshot.
Here was related region server log:
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:
The return value is not checked.
In HRegion#flushcache(), Result.CANNOT_FLUSH may be returned due to:
This implies that FlushSnapshotSubprocedure may incorrectly skip waiting for the concurrent flush to complete.