From b0792f1de3eed5754ee40365b9f127768eb51d17 Mon Sep 17 00:00:00 2001 From: Andreas Streichardt Date: Fri, 13 Jan 2017 13:21:41 +0100 Subject: [PATCH] Propagate errors during index creation --- js/server/modules/@arangodb/cluster.js | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/js/server/modules/@arangodb/cluster.js b/js/server/modules/@arangodb/cluster.js index 4f0d7c49c3..2f6b7075d8 100644 --- a/js/server/modules/@arangodb/cluster.js +++ b/js/server/modules/@arangodb/cluster.js @@ -1373,7 +1373,7 @@ function executePlanForCollections(plan) { // found a shard we are responsible for localErrors[shard] = { error: false, errorNum: 0, - errorMessage: 'no error' }; + errorMessage: 'no error', indexes: {} }; let error = localErrors[shard]; @@ -1483,18 +1483,16 @@ function executePlanForCollections(plan) { database, shard, JSON.stringify(index)); - try { arangodb.db._collection(shard).ensureIndex(index); + } catch (err5) { - if (error.indexes === undefined) { - error.indexes = []; - } - error.indexes.push({ + error.indexes[index.id] = { + id: index.id, error: true, errorNum: err5.errorNum, errorMessage: err5.errorMessage - }); + }; } } } @@ -1636,6 +1634,9 @@ function updateCurrentForCollections(localErrors, current) { payload.indexes[i].id = payload.indexes[i].id.slice(pos+1); } } + Object.keys(error.indexes).forEach(id => { + payload.indexes.push(error.indexes[id]); + }); if (error !== undefined && error.error) { _.assign(payload, error); } else {