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)