From 32a94fe85b2aa53b2ba7192c3cf86b5dfc179505 Mon Sep 17 00:00:00 2001 From: Andrew Kostka Date: Tue, 11 Jun 2024 07:52:43 +0000 Subject: [PATCH] fix(jobs): log Elasticsearch errors when acknowledged is missing --- app/Jobs/ElasticSearchAliasInit.php | 2 +- .../CirrusSearch/ElasticSearchAliasInitTest.php | 16 ++++++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/app/Jobs/ElasticSearchAliasInit.php b/app/Jobs/ElasticSearchAliasInit.php index 5a139a9f..ae61b0f9 100644 --- a/app/Jobs/ElasticSearchAliasInit.php +++ b/app/Jobs/ElasticSearchAliasInit.php @@ -93,7 +93,7 @@ public function handle( HttpRequest $request ) } $json = json_decode( $rawResponse, true ); - if ( $json[ 'acknowledged' ] !== true ) { + if ( !isset( $json[ 'acknowledged' ] ) || $json[ 'acknowledged' ] !== true ) { Log::error( __METHOD__ . ": Updating Elasticsearch aliases failed for $this->wikiId with $rawResponse" ); $this->fail( new \RuntimeException( "Updating Elasticsearch aliases failed for $this->wikiId with $rawResponse" ) diff --git a/tests/Jobs/CirrusSearch/ElasticSearchAliasInitTest.php b/tests/Jobs/CirrusSearch/ElasticSearchAliasInitTest.php index 670dd744..755d15c1 100644 --- a/tests/Jobs/CirrusSearch/ElasticSearchAliasInitTest.php +++ b/tests/Jobs/CirrusSearch/ElasticSearchAliasInitTest.php @@ -101,6 +101,22 @@ public function testFailure() $job->handle( $request ); } + public function testElasticFailure() + { + $error = json_encode( [ 'error' => [ 'root_cause' => [ [ 'type' => 'index_not_found_exception' ] ] ] ] ); + $request = $this->getMockRequest(); + $request->method( 'execute' )->willReturn( $error ); + + $mockJob = $this->createMock( Job::class ); + $mockJob->expects( $this->once() ) + ->method( 'fail' ) + ->with( new \RuntimeException( "Updating Elasticsearch aliases failed for $this->wikiId with " . $error ) ); + + $job = new ElasticSearchAliasInit( $this->wikiId, $this->prefix ); + $job->setJob( $mockJob ); + $job->handle( $request ); + } + public function testMissingDatabaseFailure() { $this->wikiId = -1;