jvarenina commented on pull request #6477: URL: https://github.com/apache/geode/pull/6477#issuecomment-846037604
Hi all, I have been able to find the case when events are enqueued in bucketToTempQueue. The case if following: 1. Configure partition region on multiple servers 2. Run traffic with puts 3. Stop one of the servers and then perform "rebalance" operation (this is also done while traffic is running) In this case running servers will become owners of the buckets from the member that has been shut down. In this case events are enqueued in temporary queue (bucketToTempQueue) while server is performing "Get Initial Image" (GII) operation from primary server. This current solution breaks this design base behavior, because it doesn't store events in temporary queue during this period of GII. The problem with solution is following: ``` } else if (!prQ.getColocatedWithRegion().getRegionAdvisor().getBucketOwners(bucketId) .contains(prQ.getCache().getMyId())) { if (isDebugEnabled) { logger.debug( "ParallelGatewaySenderOrderedQueue not putting key {} : Value : {} as bucket is not hosted locally.", key, value); } ``` `getColocatedWithRegion().getRegionAdvisor().getBucketOwners(bucketId) `- code only returns primary server ID during GII process, and not the server that it copying the bucket and taking ownership over the secondary the bucket. Sorry for missing this case. I will try to find different solution. Any advice from your side is welcome. -- 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. For queries about this service, please contact Infrastructure at: us...@infra.apache.org