1
0
Fork 0

bug fix for jobs looking at distrubuteShardsLike and virtual collections (#4666)

This commit is contained in:
Kaveh Vahedipour 2018-02-28 16:09:16 +01:00 committed by Michael Hackstein
parent 967ccf768d
commit a69c60d79b
2 changed files with 12 additions and 4 deletions

View File

@ -1,8 +1,6 @@
v3.3.4 (XXXX-XX-XX)
-------------------
* fix issue #4698: databases within the UI are now displayed in a sorted order.
* remove unused startup option `--ldap.permissions-attribute-name`
* fix issue #4677: AQL WITH with bind parameters results in "access after data-modification"
@ -20,6 +18,8 @@ v3.3.4 (XXXX-XX-XX)
* internal issue #1726: supervision failed to remove multiple servers
from health monitoring at once.
* fixed a bug where supervision tried to deal with shards of virtual collections
* Behaviour of permissions for databases and collections changed:
The new fallback rule for databases for which an access level is not explicitly specified:
Choose the higher access level of:
@ -31,7 +31,6 @@ v3.3.4 (XXXX-XX-XX)
* The access level for the current database
* The access level for the `_system` database
v3.3.3 (2018-01-26)
-------------------

View File

@ -294,7 +294,16 @@ std::vector<Job::shard_t> Job::clones(
if (otherCollection != collection &&
col.has("distributeShardsLike") &&
col("distributeShardsLike").slice().copyString() == collection) {
ret.emplace_back(otherCollection, sortedShardList(col("shards"))[steps]);
auto const theirshards = sortedShardList(col("shards"));
if (theirshards.size() > 0) { // do not care about virtual collections
if (theirshards.size() == myshards.size()) {
ret.emplace_back(otherCollection, sortedShardList(col("shards"))[steps]);
} else {
LOG_TOPIC(ERR, Logger::SUPERVISION)
<< "Shard distribution of clone(" << othercollection
<< ") does not match ours (" << collection << ")";
}
}
}
}