You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hbase.apache.org by "Mike Drob (JIRA)" <ji...@apache.org> on 2017/07/13 15:24:00 UTC
[jira] [Resolved] (HBASE-11249) Missing null check in finally block
of HRegion#processRowsWithLocks() may lead to partially rolled back state
in memstore.
[ https://issues.apache.org/jira/browse/HBASE-11249?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Mike Drob resolved HBASE-11249.
-------------------------------
Resolution: Not A Problem
This code was rewritten in HBASE-15158, doesn't look like a problem anymore.
> Missing null check in finally block of HRegion#processRowsWithLocks() may lead to partially rolled back state in memstore.
> --------------------------------------------------------------------------------------------------------------------------
>
> Key: HBASE-11249
> URL: https://issues.apache.org/jira/browse/HBASE-11249
> Project: HBase
> Issue Type: Bug
> Reporter: Ted Yu
> Priority: Minor
>
> At line 4883:
> {code}
> Store store = getStore(kv);
> if (store == null) {
> checkFamily(CellUtil.cloneFamily(kv));
> // unreachable
> }
> {code}
> Exception would be thrown from checkFamily() if store is null.
> In the finally block:
> {code}
> } finally {
> if (!mutations.isEmpty() && !walSyncSuccessful) {
> LOG.warn("Wal sync failed. Roll back " + mutations.size() +
> " memstore keyvalues for row(s):" + StringUtils.byteToHexString(
> processor.getRowsToLock().iterator().next()) + "...");
> for (KeyValue kv : mutations) {
> getStore(kv).rollback(kv);
> }
> {code}
> There is no corresponding null check for return value of getStore() above, potentially leading to partially rolled back state in memstore.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)