You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@geode.apache.org by "ASF subversion and git services (Jira)" <ji...@apache.org> on 2019/12/31 18:13:01 UTC

[jira] [Commented] (GEODE-7347) Race condition between Cache and ClientMetadataService

    [ https://issues.apache.org/jira/browse/GEODE-7347?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17006205#comment-17006205 ] 

ASF subversion and git services commented on GEODE-7347:
--------------------------------------------------------

Commit 3a51a80c27c4e811526eb489a305f08647381955 in geode-native's branch refs/heads/master from Matthew Reddington
[ https://gitbox.apache.org/repos/asf?p=geode-native.git;h=3a51a80 ]

GEODE-7347: Guarding CacheImpl during Cache move to avoid race condition. (#542)

Co-authored-by: Mike Oleske<mo...@pivotal.io>

> Race condition between Cache and ClientMetadataService
> ------------------------------------------------------
>
>                 Key: GEODE-7347
>                 URL: https://issues.apache.org/jira/browse/GEODE-7347
>             Project: Geode
>          Issue Type: Bug
>          Components: native client
>            Reporter: Matthew Reddington
>            Assignee: Michael Oleske
>            Priority: Major
>             Fix For: 1.11.0
>
>          Time Spent: 40m
>  Remaining Estimate: 0h
>
> It was discovered that the ClientMetadataService would call into CacheImpl, which contains a backreference to Cache, and this could occur in the middle of a Cache move, where the pimpl pointer was updated, but not the backreference.
> The solution will be to guard the pimpl during the move, so the Cache can update it's pimpl and the backreference. There exists CacheImpl::doIfDestroyNotPending that locks the pimpl while executing a function to facilitate this.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)