Browse Source

Bug 26312: (follow-up) Fix passing of exception messages

'error' has special meaning in exceptions so naming the fields:
type, details

Rather than only dealing with a single exception type, we generically
get the ES exception info and pass it up.

I could not recreate timeout still, however, I simply restarted the
ES docker during commit stage to cause NoNodes exceptions

Signed-off-by: Joonas Kylmälä <joonas.kylmala@helsinki.fi>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
21.05.x
Nick Clemens 3 years ago
committed by Jonathan Druart
parent
commit
cc8787bf87
  1. 2
      Koha/Exceptions/Elasticsearch.pm
  2. 6
      Koha/SearchEngine/Elasticsearch/Indexer.pm
  3. 6
      misc/search_tools/rebuild_elasticsearch.pl

2
Koha/Exceptions/Elasticsearch.pm

@ -25,7 +25,7 @@ use Exception::Class (
'Koha::Exceptions::Elasticsearch::BadResponse' => {
isa => 'Koha::Exceptions::Elasticsearch',
description => 'Bad response received when submitting request to Elasticsearch',
fields => [ 'error', 'details' ]
fields => [ 'type', 'details' ]
},
'Koha::Exceptions::Elasticsearch::MARCFieldExprParseError' => {
isa => 'Koha::Exceptions::Elasticsearch',

6
Koha/SearchEngine/Elasticsearch/Indexer.pm

@ -125,12 +125,10 @@ sub update_index {
carp "One or more ElasticSearch errors occurred when indexing documents";
}
} catch {
if( ref $_ eq 'Search::Elasticsearch::Error::Timeout' ){
Koha::Exceptions::Elasticsearch::BadResponse->throw(
error => "Record commit failed.",
details => "Timeout",
type => $_->{type},
details => $_->{text},
);
}
};
}
return $response;

6
misc/search_tools/rebuild_elasticsearch.pl

@ -309,10 +309,8 @@ sub _do_reindex {
_handle_response($response);
_log( 1, "Commit complete\n" );
} catch {
if( ref $_ eq 'Koha::Exceptions::Elasticsearch::BadResponse'){
_log(1,$_->{error});
_log(2,$_->{details});
}
_log(1,"Elasticsearch exception thrown: ".$_->type."\n");
_log(2,"Details: ".$_->details."\n");
};
$commit_count = $commit;
@id_buffer = ();

Loading…
Cancel
Save