You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@kudu.apache.org by "Todd Lipcon (JIRA)" <ji...@apache.org> on 2017/05/04 17:11:04 UTC

[jira] [Resolved] (KUDU-1992) heap-use-after-free when running threadlocal cache destructor

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

Todd Lipcon resolved KUDU-1992.
-------------------------------
       Resolution: Fixed
    Fix Version/s: 1.4.0

Fixed in 579cb0b145ad141cd3b49324406c85fe2ca96b15

> heap-use-after-free when running threadlocal cache destructor
> -------------------------------------------------------------
>
>                 Key: KUDU-1992
>                 URL: https://issues.apache.org/jira/browse/KUDU-1992
>             Project: Kudu
>          Issue Type: Bug
>          Components: cfile, util
>    Affects Versions: 1.4.0
>            Reporter: Todd Lipcon
>            Assignee: Todd Lipcon
>            Priority: Blocker
>             Fix For: 1.4.0
>
>
> After KUDU-680, we started to see the occasional heap-use-after-free when destructing the new thread-local cache. The issue seems to be:
> - the thread uses LongAdder somewhere, which allocates a threadlocal 'struct HashCode'
> - the thread also uses the threadlocal block cache
> On thread destruction, we are running the LongAdder HashCode destructor first, and then running the threadlocal cache destructor. The threadlocal cache runs 'Release()' on the cached blocks, which tries to update the cache's LongAdder-based metrics. This then accesses the hashcode threadlocal which has already been destructed.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)