Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
None
-
1.4.0, 1.3.2, 2.0.0-beta-1, 2.0.0, 1.2.7
-
None
-
None
-
Reviewed
Description
When I was debugging bulk load failure, I saw the following in region server log:
2017-10-17 23:05:28,795 DEBUG [B.defaultRpcServer.handler=0,queue=0,port=16020] regionserver.HRegion: NOT flushing memstore for region mx_, f449669a8b0341e4edbd2ebdacc72094f449669a8b0341e4edbd2ebdacc7209420150711,1504909319142.52d496ba39036e0c2cc9522895ad438f., flushing=true, writesEnabled=true 2017-10-17 23:05:28,796 ERROR [B.defaultRpcServer.handler=0,queue=0,port=16020] access.SecureBulkLoadEndpoint: Failed to complete bulk load java.io.IOException: Could not bulk load with an assigned sequential ID because the flush didn't run. Reason for not flushing: Not flushing since already flushing at org.apache.hadoop.hbase.regionserver.HRegion.bulkLoadHFiles(HRegion.java:5282) at org.apache.hadoop.hbase.security.access.SecureBulkLoadEndpoint$1.run(SecureBulkLoadEndpoint.java:292) at org.apache.hadoop.hbase.security.access.SecureBulkLoadEndpoint$1.run(SecureBulkLoadEndpoint.java:275)
There was concurrent flush which got misinterpreted by bulkLoadHFiles().
HRegion#bulkLoadHFiles() should wait for the concurrent flush to complete.
Attachments
Attachments
Issue Links
- relates to
-
HBASE-19442 Backport HBASE-19065 to branch-1 (HRegion#bulkLoadHFiles() should wait for concurrent Region#flush() to finish)
- Resolved