Fix a NullPointerException on a failure to load Bloom filter data
-----------------------------------------------------------------
Key: HBASE-3987
URL: https://issues.apache.org/jira/browse/HBASE-3987
Project: HBase
Issue Type: Bug
Components: regionserver
Affects Versions: 0.90.3, 0.90.2, 0.90.1, 0.90.0, 0.89.20100924,
0.89.20100621
Reporter: Mikhail Bautin
Assignee: Mikhail Bautin
Fix For: 0.94.0
This is a fix for an NullPointerException that happens in passesBloomFilter.
The meta block fails to load, and the IOException catch block sets the Bloom
filter to null. Then all other threads waiting on the Bloom filter to load get
a chance to try to load the meta block, and one of them eventually succeeds and
goes on to query the Bloom filter in StoreFile.passesBloomFilter, but
bloomFilter has been already set to null. The fix is to cache the bloomFilter
variable in a local variable in passesBloomFilter so that it cannot be made
null while the thread is waiting for another thread to load Bloom filter bits.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira