jenkins-bot has submitted this change and it was merged. ( 
https://gerrit.wikimedia.org/r/377661 )

Change subject: compsuggest: Handle edge case of empty index
......................................................................


compsuggest: Handle edge case of empty index

In prod we have a some closed wikis (akwiktionary, probably others)
that have no content pages. As such their titlesuggest index is also
empty. It seems that when the titlesuggest index is empty elasticsearch
short-circuits it's regular response handling and doesn't return the
empty suggest keys that it usually does.

Change-Id: Ifa9ee4eb7f76a1864c5e786c5680d07e487b6e70
---
M includes/CompletionSuggester.php
M tests/unit/CompletionSuggesterTest.php
2 files changed, 11 insertions(+), 1 deletion(-)

Approvals:
  Smalyshev: Looks good to me, approved
  Cindy-the-browser-test-bot: Looks good to me, but someone else must approve
  jenkins-bot: Verified



diff --git a/includes/CompletionSuggester.php b/includes/CompletionSuggester.php
index d923e40..625ea8e 100644
--- a/includes/CompletionSuggester.php
+++ b/includes/CompletionSuggester.php
@@ -368,7 +368,13 @@
         */
        protected function postProcessSuggest( \Elastica\Response $response, 
$profiles, CompletionRequestLog $log ) {
                $log->setResponse( $response );
-               $data = $response->getData()['suggest'];
+               $fullResponse = $response->getData();
+               if ( !isset( $fullResponse['suggest'] ) ) {
+                       // Edge case where the index contains 0 documents and 
does not even return the 'suggest' field
+                       return SearchSuggestionSet::emptySuggestionSet();
+               }
+
+               $data = $fullResponse['suggest'];
 
                $limit = $this->getHardLimit();
                $suggestionsByDocId = [];
diff --git a/tests/unit/CompletionSuggesterTest.php 
b/tests/unit/CompletionSuggesterTest.php
index 3047b43..363bae2 100644
--- a/tests/unit/CompletionSuggesterTest.php
+++ b/tests/unit/CompletionSuggesterTest.php
@@ -300,6 +300,10 @@
                                $resp,
                                5, 200, null, null, 0, 300
                        ],
+                       'Empty index' => [
+                               new \Elastica\Response( [] ),
+                               5, 200, null, null, 0, 50
+                       ],
                ];
        }
 }

-- 
To view, visit https://gerrit.wikimedia.org/r/377661
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: Ifa9ee4eb7f76a1864c5e786c5680d07e487b6e70
Gerrit-PatchSet: 2
Gerrit-Project: mediawiki/extensions/CirrusSearch
Gerrit-Branch: master
Gerrit-Owner: EBernhardson <ebernhard...@wikimedia.org>
Gerrit-Reviewer: Cindy-the-browser-test-bot <bernhardsone...@gmail.com>
Gerrit-Reviewer: DCausse <dcau...@wikimedia.org>
Gerrit-Reviewer: Gehel <guillaume.leder...@wikimedia.org>
Gerrit-Reviewer: Smalyshev <smalys...@wikimedia.org>
Gerrit-Reviewer: Tjones <tjo...@wikimedia.org>
Gerrit-Reviewer: jenkins-bot <>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to