From 354504334f3c4b10d7acdcdd792604ca3ea1d111 Mon Sep 17 00:00:00 2001 From: Igor Motov Date: Fri, 17 Jul 2015 16:04:39 -0400 Subject: [PATCH] Create a directory during repository verification The repository verification process should create a subdirectory to make sure we check permission of newly created directories in case elasticsearch processes on different nodes are running using different uids and creating blobs with incompatible permissions. Closes #11611 --- .../blobstore/BlobStoreIndexShardRepository.java | 6 +++--- .../repositories/blobstore/BlobStoreRepository.java | 9 +++++---- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/core/src/main/java/org/elasticsearch/index/snapshots/blobstore/BlobStoreIndexShardRepository.java b/core/src/main/java/org/elasticsearch/index/snapshots/blobstore/BlobStoreIndexShardRepository.java index c870b214500..cce7e44d0f9 100644 --- a/core/src/main/java/org/elasticsearch/index/snapshots/blobstore/BlobStoreIndexShardRepository.java +++ b/core/src/main/java/org/elasticsearch/index/snapshots/blobstore/BlobStoreIndexShardRepository.java @@ -221,10 +221,10 @@ public class BlobStoreIndexShardRepository extends AbstractComponent implements @Override public void verify(String seed) { - BlobContainer testBlobContainer = blobStore.blobContainer(basePath); + BlobContainer testBlobContainer = blobStore.blobContainer(basePath.add(testBlobPrefix(seed))); DiscoveryNode localNode = clusterService.localNode(); - if (testBlobContainer.blobExists(testBlobPrefix(seed) + "-master")) { - try (OutputStream outputStream = testBlobContainer.createOutput(testBlobPrefix(seed) + "-" + localNode.getId())) { + if (testBlobContainer.blobExists("master.dat")) { + try (OutputStream outputStream = testBlobContainer.createOutput("data-" + localNode.getId() + ".dat")) { outputStream.write(Strings.toUTF8Bytes(seed)); } catch (IOException exp) { throw new RepositoryVerificationException(repositoryName, "store location [" + blobStore + "] is not accessible on the node [" + localNode + "]", exp); diff --git a/core/src/main/java/org/elasticsearch/repositories/blobstore/BlobStoreRepository.java b/core/src/main/java/org/elasticsearch/repositories/blobstore/BlobStoreRepository.java index 62c57ed21d6..3e9fbaaad09 100644 --- a/core/src/main/java/org/elasticsearch/repositories/blobstore/BlobStoreRepository.java +++ b/core/src/main/java/org/elasticsearch/repositories/blobstore/BlobStoreRepository.java @@ -624,12 +624,13 @@ public abstract class BlobStoreRepository extends AbstractLifecycleComponent