hive-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Sergey Shelukhin (JIRA)" <>
Subject [jira] [Updated] (HIVE-17411) LLAP IO may incorrectly release a refcount in some rare cases
Date Wed, 30 Aug 2017 01:00:48 GMT


Sergey Shelukhin updated HIVE-17411:
    Attachment: HIVE-17411.patch

[~prasanth_j] can you take a look? small bugfix

> LLAP IO may incorrectly release a refcount in some rare cases
> -------------------------------------------------------------
>                 Key: HIVE-17411
>                 URL:
>             Project: Hive
>          Issue Type: Bug
>            Reporter: Sergey Shelukhin
>            Assignee: Sergey Shelukhin
>         Attachments: HIVE-17411.patch
> In a large stream whose buffers are not reused, separated into many buffers (e.g. due
to a small ORC compression buffer size), it may happen that some, but not all, buffers that
are read together as a unit are evicted from cache.
> If CacheBuffer follows BufferChunk in the buffer list, the latter will be converted to
ProcCacheChunk;  it is possible for early refcount release logic from the former to release
the refcount (for a dictionary it would always be released cause by definition there's no
reuse), and then backtrack to the latter, and try to decref an uninitialized MemoryBuffer
in ProcCacheChunk because ProcCacheChunk looks like a CacheChunk. PCC initial refcounts are
released separately after the data is uncompressed.
> I'm assuming it would almost never happen with non-stripe-level streams because one would
need both very large RG to span 2+ CBs, no overlap with next/previous RGs in 2+ buffers for
the early release to kick in, and an unfortunate eviction order. However it's possible with
large-ish dictionaries.

This message was sent by Atlassian JIRA

View raw message