[ 
https://issues.apache.org/jira/browse/HBASE-11249?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ted Yu updated HBASE-11249:
---------------------------

    Description: 
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.

  was:
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 store above, potentially leading to 
partially rolled back state in memstore.


> Missing null check in finally block of HRegion#processRowsWithLocks()
> ---------------------------------------------------------------------
>
>                 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.2#6252)

Reply via email to