[
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)