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

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

Commit de473c3c75f2545cae304f73d0c7f6ec1ba4f6c2 in geode-native's branch 
refs/heads/develop from Jakov Varenina
[ https://gitbox.apache.org/repos/asf?p=geode-native.git;h=de473c3 ]

GEODE-8530: Fix for coredump during tx commit (#656)

Client is fixed in a way that ignores all regions enlisted within
transaction that client doesn't have configured. This behavior is
aligned with the java client, since same thing is done there.

* Minor fixes introduced:

- added missing new line
- replaced std::string with const auto
- formatting corrected

> Native client crash indicating coredump
> ---------------------------------------
>
>                 Key: GEODE-8530
>                 URL: https://issues.apache.org/jira/browse/GEODE-8530
>             Project: Geode
>          Issue Type: Bug
>          Components: native client
>            Reporter: Jakov Varenina
>            Assignee: Jakov Varenina
>            Priority: Major
>              Labels: pull-request-available
>
> Faulty scenario:
> 1. Client initiates transaction.
>  2. Client put entry in region1 that has CacheWriter configured
>  3. Server CacheWriter receives a notification for region1, and triggers put 
> operation to region2 which is not defined on client.
>  4. client commit transaction
> When client commit transaction it then get region2 enlisted in transaction, 
> which is not defined on client and therefore coredump happens.
> This scenario works for java client. Java client only ignores region that 
> aren't defined on client:
> {code:java}
>  private boolean hookupRegion(DistributionManager dm) {
>       this.internalRegion = getRegionByPath(dm, regionPath);
>       if (this.internalRegion == null && this.parentRegionPath != null) {
>         this.internalRegion = getRegionByPath(dm, this.parentRegionPath);
>         this.regionPath = this.parentRegionPath;
>       }
>       if (this.internalRegion == null && dm.getSystem().isLoner()) {
>         // If there are additional regions that the server enlisted in the tx,
>         // which the client does not have, the client can just ignore the 
> region
>         // see bug 51922
>         return false;
>       }
>       return true;
>     }
> {code}



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

Reply via email to