summaryrefslogtreecommitdiffstats
path: root/searchcorespi
diff options
context:
space:
mode:
Diffstat (limited to 'searchcorespi')
-rw-r--r--searchcorespi/src/vespa/searchcorespi/index/fusionrunner.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/searchcorespi/src/vespa/searchcorespi/index/fusionrunner.cpp b/searchcorespi/src/vespa/searchcorespi/index/fusionrunner.cpp
index 849a591c339..b5d3086d11e 100644
--- a/searchcorespi/src/vespa/searchcorespi/index/fusionrunner.cpp
+++ b/searchcorespi/src/vespa/searchcorespi/index/fusionrunner.cpp
@@ -55,6 +55,11 @@ void readSelectorArray(const string &selector_name, SelectorArray &selector_arra
auto it = selector->createIterator();
for (uint32_t i = 0; i < num_docs; ++i) {
search::queryeval::Source source = it->getSource(i);
+ // Workaround for source selector corruption.
+ // Treat out of range source as last source.
+ if (source >= id_map.size()) {
+ source = id_map.size() - 1;
+ }
assert(source < id_map.size());
selector_array.push_back(id_map[source]);
}