[ https://issues.apache.org/jira/browse/GEODE-3055?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16049776#comment-16049776 ]
ASF GitHub Bot commented on GEODE-3055: --------------------------------------- Github user upthewaterspout commented on a diff in the pull request: https://github.com/apache/geode/pull/570#discussion_r122085382 --- Diff: geode-core/src/main/java/org/apache/geode/internal/cache/PartitionedRegionDataStore.java --- @@ -1472,6 +1472,19 @@ public boolean removeBucket(int bucketId, boolean forceRemovePrimary) { } BucketAdvisor bucketAdvisor = bucketRegion.getBucketAdvisor(); + InternalDistributedMember primary = bucketAdvisor.getPrimary(); + InternalDistributedMember myId = + this.partitionedRegion.getDistributionManager().getDistributionManagerId(); + if (primary == null || myId.equals(primary)) { --- End diff -- This seems similar to the logic a few lines down where we say "if (!forceRemovePrimary && bucketAdvisor.isPrimary()) {..." Unlike that line, your new logic doesn't honor the forceRemovePrimary flag. Should it? I don't actually see any cases where that is passed in as true, so maybe we should just remove that flag? > waitUntilFlush did not check the brq's tempQueue, which caused data mismatch > ---------------------------------------------------------------------------- > > Key: GEODE-3055 > URL: https://issues.apache.org/jira/browse/GEODE-3055 > Project: Geode > Issue Type: Bug > Reporter: xiaojian zhou > Assignee: xiaojian zhou > Labels: lucene > > /export/buglogs_bvt/xzhou/lucene/concParRegHAPersist-0601-171739 > lucene/concParRegHAPersist.conf > A=accessor > B=dataStore > accessorHosts=1 > accessorThreadsPerVM=5 > accessorVMsPerHost=1 > dataStoreHosts=6 > dataStoreThreadsPerVM=5 > dataStoreVMsPerHost=1 > numVMsToStop=2 > redundantCopies=0 > no local.conf > In dataStoregemfire5_7483/system.log, thread tid=0xdf, putAll Object_11066 > 17:22:27.135 tid=0xdf] generated tag {v1; rv13 shadowKey=2939 > 17:22:27.136 _partitionedRegionPARALLELGATEWAYSENDER_QUEUE_1 bucket : null // > brq is not ready yet > is enqueued to the tempQueue > 17:22:27.272 tid=0xdf] generated tag {v3; rv15 shadowKey=3278 > 17:22:33.111 Subregion created: > /_PR/_BAsyncEventQueueindex#partitionedRegionPARALLELGATEWAYSENDER_QUEUE_1 > vm_3_dataStore3_r02-s28_28143.log: > 17:22:33.120 Put successfully in the queue shadowKey= 2939 > 17:22:33.156 tid=0x7fe started query > 17:22:33.176 Peeked shadowKey= 2939 > So the root cause is: the event is still in tempQueue before it's processed, > the query happened. WaitUntilFlush should wait until tempQueue is also > flushed. -- This message was sent by Atlassian JIRA (v6.4.14#64029)