You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by up...@apache.org on 2017/02/16 18:39:05 UTC
geode git commit: Fix some races in to IndexRepository creation
Repository: geode
Updated Branches:
refs/heads/feature/GEODE-2402 31190029b -> e7e29dd13
Fix some races in to IndexRepository creation
1) Since we have the partition listener on the chunk bucket, we should
be looking at the chunk bucket to tell if we are primary, not the file
bucket
2) We were not cleaning up the dlock in some cases if the bucket moved.
Project: http://git-wip-us.apache.org/repos/asf/geode/repo
Commit: http://git-wip-us.apache.org/repos/asf/geode/commit/e7e29dd1
Tree: http://git-wip-us.apache.org/repos/asf/geode/tree/e7e29dd1
Diff: http://git-wip-us.apache.org/repos/asf/geode/diff/e7e29dd1
Branch: refs/heads/feature/GEODE-2402
Commit: e7e29dd130d4e4b2171e502482764f8ed8f1d9ae
Parents: 3119002
Author: Dan Smith <up...@apache.org>
Authored: Thu Feb 16 09:28:03 2017 -0800
Committer: Dan Smith <up...@apache.org>
Committed: Thu Feb 16 09:28:03 2017 -0800
----------------------------------------------------------------------
.../geode/cache/lucene/internal/IndexRepositoryFactory.java | 8 ++++----
.../lucene/internal/repository/IndexRepositoryImpl.java | 4 ++--
2 files changed, 6 insertions(+), 6 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/geode/blob/e7e29dd1/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/IndexRepositoryFactory.java
----------------------------------------------------------------------
diff --git a/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/IndexRepositoryFactory.java b/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/IndexRepositoryFactory.java
index 6861c96..7e685b7 100644
--- a/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/IndexRepositoryFactory.java
+++ b/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/IndexRepositoryFactory.java
@@ -56,8 +56,8 @@ public class IndexRepositoryFactory {
}
return null;
}
- if (!fileBucket.getBucketAdvisor().isPrimary()) {
- if (oldRepository != null && !oldRepository.isClosed()) {
+ if (!chunkBucket.getBucketAdvisor().isPrimary()) {
+ if (oldRepository != null) {
oldRepository.cleanup();
}
return null;
@@ -73,7 +73,7 @@ public class IndexRepositoryFactory {
DistributedLockService lockService = getLockService();
String lockName = getLockName(bucketId, fileBucket);
while (!lockService.lock(lockName, 100, -1)) {
- if (!fileBucket.getBucketAdvisor().isPrimary()) {
+ if (!chunkBucket.getBucketAdvisor().isPrimary()) {
return null;
}
}
@@ -105,7 +105,7 @@ public class IndexRepositoryFactory {
}
private String getLockName(final Integer bucketId, final BucketRegion fileBucket) {
- return FILE_REGION_LOCK_FOR_BUCKET_ID + fileBucket.getFullPath() + bucketId;
+ return FILE_REGION_LOCK_FOR_BUCKET_ID + fileBucket.getFullPath();
}
private DistributedLockService getLockService() {
http://git-wip-us.apache.org/repos/asf/geode/blob/e7e29dd1/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/repository/IndexRepositoryImpl.java
----------------------------------------------------------------------
diff --git a/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/repository/IndexRepositoryImpl.java b/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/repository/IndexRepositoryImpl.java
index fc04f6e..8a68b07 100644
--- a/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/repository/IndexRepositoryImpl.java
+++ b/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/repository/IndexRepositoryImpl.java
@@ -51,7 +51,7 @@ public class IndexRepositoryImpl implements IndexRepository {
private Region<?, ?> userRegion;
private LuceneIndexStats stats;
private DocumentCountSupplier documentCountSupplier;
- private DistributedLockService lockService;
+ private final DistributedLockService lockService;
private String lockName;
private static final Logger logger = LogService.getLogger();
@@ -167,7 +167,7 @@ public class IndexRepositoryImpl implements IndexRepository {
}
@Override
- public synchronized void cleanup() {
+ public void cleanup() {
try {
stats.removeDocumentsSupplier(documentCountSupplier);
try {