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]


Reply via email to