From 00e0f5cae3911fec2491d3bba7684365fe74fdb5 Mon Sep 17 00:00:00 2001 From: Anton Dosov Date: Wed, 8 Mar 2023 13:26:16 +0100 Subject: [PATCH] Fix csv generation when `search:includeFrozen` is enabled (#152354) fix https://github.com/elastic/kibana/issues/151546 see: https://github.com/elastic/kibana/issues/151546#issuecomment-1443996912 Since it isn't possible to freeze an index in 8.x to test you have to create an index and freeze it in 7.x and then upgrade to 8.x. --- .../generate_csv/generate_csv.test.ts | 11 ++++++++++- .../csv_searchsource/generate_csv/generate_csv.ts | 9 +++++++-- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/x-pack/plugins/reporting/server/export_types/csv_searchsource/generate_csv/generate_csv.test.ts b/x-pack/plugins/reporting/server/export_types/csv_searchsource/generate_csv/generate_csv.test.ts index 91c8c51704718..fc2d092bf31a3 100644 --- a/x-pack/plugins/reporting/server/export_types/csv_searchsource/generate_csv/generate_csv.test.ts +++ b/x-pack/plugins/reporting/server/export_types/csv_searchsource/generate_csv/generate_csv.test.ts @@ -819,11 +819,20 @@ it('can override ignoring frozen indices', async () => { await generateCsv.generateData(); + expect(mockEsClient.asCurrentUser.openPointInTime).toHaveBeenCalledWith( + { + ignore_unavailable: true, + ignore_throttled: false, + index: 'logstash-*', + keep_alive: '30s', + }, + { maxRetries: 0, requestTimeout: '30s' } + ); + expect(mockDataClient.search).toBeCalledWith( { params: { body: {}, - ignore_throttled: false, }, }, { strategy: 'es', transport: { maxRetries: 0, requestTimeout: '30s' } } diff --git a/x-pack/plugins/reporting/server/export_types/csv_searchsource/generate_csv/generate_csv.ts b/x-pack/plugins/reporting/server/export_types/csv_searchsource/generate_csv/generate_csv.ts index e5b38430f9fdc..44438a3208624 100644 --- a/x-pack/plugins/reporting/server/export_types/csv_searchsource/generate_csv/generate_csv.ts +++ b/x-pack/plugins/reporting/server/export_types/csv_searchsource/generate_csv/generate_csv.ts @@ -66,6 +66,12 @@ export class CsvGenerator { index: indexPatternTitle, keep_alive: duration, ignore_unavailable: true, + // TODO: currently this doesn't do anything as es has a bug that throttled indices are always included when using PIT api + // if es fixes the issue, everything should work as expected. Just needs to be tested and this comment removed + // if es decides to not fix, then we can close the issue and remove the `ignore_throttled` code from here + // https://github.com/elastic/kibana/issues/152884 + // @ts-expect-error ignore_throttled is not in the type definition, but it is accepted by es + ignore_throttled: settings.includeFrozen ? false : undefined, // "true" will cause deprecation warnings logged in ES }, { requestTimeout: duration, @@ -91,7 +97,7 @@ export class CsvGenerator { settings: CsvExportSettings, searchAfter?: estypes.SortResults ) { - const { scroll: scrollSettings, includeFrozen } = settings; + const { scroll: scrollSettings } = settings; searchSource.setField('size', scrollSettings.size); if (searchAfter) { @@ -112,7 +118,6 @@ export class CsvGenerator { const searchParams = { params: { body: searchBody, - ignore_throttled: includeFrozen ? false : undefined, // "true" will cause deprecation warnings logged in ES }, };