jvarenina opened a new pull request #6646:
URL: https://github.com/apache/geode/pull/6646
Issue reproduces when following conditions are fulfilled:
- Redundant partition region must be configured
- Number of servers must be greater than number of redundant copies of
partition region
- Parallel gateway sender must be configured on partition region
- Client must register CQs for the region
- Transactions must be used with put operations
- Events must be enqueued in parallel gateway senders (remote site is
unavailable)
Server that is hosting primary bucket will send TXCommitMessage to the
secondary
server, and also to the server that is hosting CQ subscription queue (if CQ
condition is fulfilled).
The problem occurs when the server that is hosting CQ subscription queue
does not host
the bucket for which event is received. In that case the server will store
the event in
bucketToTempQueueMap, because it assumes that the bucket is in the process
of the
creation, which is not correct.
The solution:
At reception of CommitProcessForTXIdMessage the events received with
TXCommitMessage will not
be stored in temporary queue, if targeted bucket region is not hosted in the
server. Following
checks are performed on receiving server in order to identify those events:
1. Check that targeted bucket region in not available locally on server
2. Check from filterRoutingInfo that the receiving server hosts
CQ/RegionInterests queue for that event
If above checks are fulfilled then tailKey is set to -1 on receiving server
to avoid enqueuing of
event in temporary queue.
Thank you for submitting a contribution to Apache Geode.
In order to streamline the review of the contribution we ask you
to ensure the following steps have been taken:
### For all changes:
- [x] Is there a JIRA ticket associated with this PR? Is it referenced in
the commit message?
- [x] Has your PR been rebased against the latest commit within the target
branch (typically `develop`)?
- [x] Is your initial contribution a single, squashed commit?
- [x] Does `gradlew build` run cleanly?
- [x] Have you written or updated unit tests to verify your changes?
- [ ] If adding new dependencies to the code, are these dependencies
licensed in a way that is compatible for inclusion under [ASF
2.0](http://www.apache.org/legal/resolved.html#category-a)?
### Note:
Please ensure that once the PR is submitted, check Concourse for build
issues and
submit an update to your PR as soon as possible. If you need help, please
send an
email to [email protected].
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]