Skip to content

Conversation

@gmmorris
Copy link
Contributor

@gmmorris gmmorris commented Sep 7, 2020

Summary

Filters out invalid SOs from search results to prevent a never ending loop and spamming of logs in Task Manager.

closes #51222

Checklist

Delete any items that are not applicable to this PR.

For maintainers

@gmmorris gmmorris requested a review from a team as a code owner September 7, 2020 16:07
@gmmorris gmmorris changed the title filter invalid SOs from the searc hresults in Task Manager [Task Manager] Filters invalid SOs from search results Sep 7, 2020
@gmmorris gmmorris added Feature:Alerting Feature:Task Manager release_note:fix Team:ResponseOps Platform ResponseOps team (formerly the Cases and Alerting teams) t// v7.10.0 v8.0.0 labels Sep 7, 2020
@elasticmachine
Copy link
Contributor

Pinging @elastic/kibana-alerting-services (Team:Alerting Services)

@gmmorris gmmorris changed the title [Task Manager] Filters invalid SOs from search results [Task Manager] Prevents Task Manager from trying to claim invalid tasks Sep 7, 2020
Copy link
Member

@pmuellr pmuellr left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The fix seems correct, but I left a question about one of the tests. Other than that, LGTM

]);
});

test('it filters out invalid tasks that arent SavedObjects', async () => {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's not immediately clear to me that these tasks aren't valid - isn't the change just to make sure the id has a task: prefix and has a type field? So, either the test name isn't quite right, or else there should probably be a comment explaining more. Here's the new code being called to check the validity:

public isRawSavedObject(rawDoc: SavedObjectsRawDoc) {
const { type, namespace } = rawDoc._source;
const namespacePrefix =
namespace && this.registry.isSingleNamespace(type) ? `${namespace}:` : '';
return Boolean(
type &&
rawDoc._id.startsWith(`${namespacePrefix}${type}:`) &&
rawDoc._source.hasOwnProperty(type)
);
}

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The way I see it is that the type: is a SavedObjects internal implementation detail.
We're using the SavedObject's validator to validate - the actual distinction seems less relevant to Task Manager as far as I can tell. 🤔

Does that make sense?

Copy link
Contributor

@YulNaumenko YulNaumenko left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@gmmorris
Copy link
Contributor Author

@elasticmachine merge upstream

@kibanamachine
Copy link
Contributor

💛 Build succeeded, but was flaky


Test Failures

Accessibility Tests.test/accessibility/apps/discover·ts.Discover Load a new search from the panel

Link to Jenkins

Standard Out

Failed Tests Reporter:
  - Test has failed 9 times on tracked branches: https://github.com/elastic/kibana/issues/59975

[00:00:00]       │
[00:00:00]         └-: Discover
[00:00:00]           └-> "before all" hook
[00:00:00]           └-> "before all" hook
[00:00:00]             │ info [discover] Loading "mappings.json"
[00:00:00]             │ info [discover] Loading "data.json.gz"
[00:00:00]             │ info [o.e.c.m.MetadataDeleteIndexService] [kibana-ci-immutable-ubuntu-18-tests-xxl-1600096049631666971] [.kibana_1/oECVK3m0Rrqez4QZh6jYXA] deleting index
[00:00:00]             │ info [discover] Deleted existing index [".kibana_1"]
[00:00:00]             │ info [o.e.c.m.MetadataCreateIndexService] [kibana-ci-immutable-ubuntu-18-tests-xxl-1600096049631666971] [.kibana] creating index, cause [api], templates [], shards [1]/[1]
[00:00:00]             │ info [discover] Created index ".kibana"
[00:00:00]             │ debg [discover] ".kibana" settings {"index":{"number_of_replicas":"1","number_of_shards":"1"}}
[00:00:00]             │ info [discover] Indexed 2 docs into ".kibana"
[00:00:00]             │ info [o.e.c.m.MetadataMappingService] [kibana-ci-immutable-ubuntu-18-tests-xxl-1600096049631666971] [.kibana/FEJBFC8mR8i6PM8BPNEzuQ] update_mapping [_doc]
[00:00:00]             │ debg Migrating saved objects
[00:00:00]             │ proc [kibana]   log   [15:24:23.491] [info][savedobjects-service] Creating index .kibana_2.
[00:00:00]             │ info [o.e.c.m.MetadataCreateIndexService] [kibana-ci-immutable-ubuntu-18-tests-xxl-1600096049631666971] [.kibana_2] creating index, cause [api], templates [], shards [1]/[1]
[00:00:00]             │ info [o.e.c.r.a.AllocationService] [kibana-ci-immutable-ubuntu-18-tests-xxl-1600096049631666971] updating number_of_replicas to [0] for indices [.kibana_2]
[00:00:00]             │ proc [kibana]   log   [15:24:23.669] [info][savedobjects-service] Reindexing .kibana to .kibana_1
[00:00:00]             │ info [o.e.c.m.MetadataCreateIndexService] [kibana-ci-immutable-ubuntu-18-tests-xxl-1600096049631666971] [.kibana_1] creating index, cause [api], templates [], shards [1]/[1]
[00:00:00]             │ info [o.e.c.r.a.AllocationService] [kibana-ci-immutable-ubuntu-18-tests-xxl-1600096049631666971] updating number_of_replicas to [0] for indices [.kibana_1]
[00:00:01]             │ info [o.e.c.m.MetadataCreateIndexService] [kibana-ci-immutable-ubuntu-18-tests-xxl-1600096049631666971] [.tasks] creating index, cause [auto(task api)], templates [], shards [1]/[1]
[00:00:01]             │ info [o.e.c.r.a.AllocationService] [kibana-ci-immutable-ubuntu-18-tests-xxl-1600096049631666971] updating number_of_replicas to [0] for indices [.tasks]
[00:00:01]             │ info [o.e.t.LoggingTaskListener] [kibana-ci-immutable-ubuntu-18-tests-xxl-1600096049631666971] 106 finished with response BulkByScrollResponse[took=240.8ms,timed_out=false,sliceId=null,updated=0,created=2,deleted=0,batches=1,versionConflicts=0,noops=0,retries=0,throttledUntil=0s,bulk_failures=[],search_failures=[]]
[00:00:01]             │ info [o.e.c.m.MetadataDeleteIndexService] [kibana-ci-immutable-ubuntu-18-tests-xxl-1600096049631666971] [.kibana/FEJBFC8mR8i6PM8BPNEzuQ] deleting index
[00:00:01]             │ proc [kibana]   log   [15:24:24.591] [info][savedobjects-service] Migrating .kibana_1 saved objects to .kibana_2
[00:00:01]             │ info [o.e.c.m.MetadataMappingService] [kibana-ci-immutable-ubuntu-18-tests-xxl-1600096049631666971] [.kibana_2/mjUMvgpwTlapxv9xMsk72w] update_mapping [_doc]
[00:00:02]             │ info [o.e.c.m.MetadataMappingService] [kibana-ci-immutable-ubuntu-18-tests-xxl-1600096049631666971] [.kibana_2/mjUMvgpwTlapxv9xMsk72w] update_mapping [_doc]
[00:00:02]             │ proc [kibana]   log   [15:24:24.951] [info][savedobjects-service] Pointing alias .kibana to .kibana_2.
[00:00:02]             │ proc [kibana]   log   [15:24:25.044] [info][savedobjects-service] Finished in 1557ms.
[00:00:02]             │ debg applying update to kibana config: {"accessibility:disableAnimations":true,"dateFormat:tz":"UTC"}
[00:00:02]             │ info [o.e.c.m.MetadataMappingService] [kibana-ci-immutable-ubuntu-18-tests-xxl-1600096049631666971] [.kibana_2/mjUMvgpwTlapxv9xMsk72w] update_mapping [_doc]
[00:00:03]             │ info [logstash_functional] Loading "mappings.json"
[00:00:03]             │ info [logstash_functional] Loading "data.json.gz"
[00:00:03]             │ info [o.e.c.m.MetadataCreateIndexService] [kibana-ci-immutable-ubuntu-18-tests-xxl-1600096049631666971] [logstash-2015.09.22] creating index, cause [api], templates [], shards [1]/[0]
[00:00:04]             │ info [o.e.c.r.a.AllocationService] [kibana-ci-immutable-ubuntu-18-tests-xxl-1600096049631666971] current.health="GREEN" message="Cluster health status changed from [YELLOW] to [GREEN] (reason: [shards started [[logstash-2015.09.22][0]]])." previous.health="YELLOW" reason="shards started [[logstash-2015.09.22][0]]"
[00:00:04]             │ info [logstash_functional] Created index "logstash-2015.09.22"
[00:00:04]             │ debg [logstash_functional] "logstash-2015.09.22" settings {"index":{"analysis":{"analyzer":{"url":{"max_token_length":"1000","tokenizer":"uax_url_email","type":"standard"}}},"number_of_replicas":"0","number_of_shards":"1"}}
[00:00:04]             │ info [o.e.c.m.MetadataCreateIndexService] [kibana-ci-immutable-ubuntu-18-tests-xxl-1600096049631666971] [logstash-2015.09.20] creating index, cause [api], templates [], shards [1]/[0]
[00:00:04]             │ info [o.e.c.r.a.AllocationService] [kibana-ci-immutable-ubuntu-18-tests-xxl-1600096049631666971] current.health="GREEN" message="Cluster health status changed from [YELLOW] to [GREEN] (reason: [shards started [[logstash-2015.09.20][0]]])." previous.health="YELLOW" reason="shards started [[logstash-2015.09.20][0]]"
[00:00:04]             │ info [logstash_functional] Created index "logstash-2015.09.20"
[00:00:04]             │ debg [logstash_functional] "logstash-2015.09.20" settings {"index":{"analysis":{"analyzer":{"url":{"max_token_length":"1000","tokenizer":"uax_url_email","type":"standard"}}},"number_of_replicas":"0","number_of_shards":"1"}}
[00:00:04]             │ info [o.e.c.m.MetadataCreateIndexService] [kibana-ci-immutable-ubuntu-18-tests-xxl-1600096049631666971] [logstash-2015.09.21] creating index, cause [api], templates [], shards [1]/[0]
[00:00:04]             │ info [o.e.c.r.a.AllocationService] [kibana-ci-immutable-ubuntu-18-tests-xxl-1600096049631666971] current.health="GREEN" message="Cluster health status changed from [YELLOW] to [GREEN] (reason: [shards started [[logstash-2015.09.21][0]]])." previous.health="YELLOW" reason="shards started [[logstash-2015.09.21][0]]"
[00:00:04]             │ info [logstash_functional] Created index "logstash-2015.09.21"
[00:00:04]             │ debg [logstash_functional] "logstash-2015.09.21" settings {"index":{"analysis":{"analyzer":{"url":{"max_token_length":"1000","tokenizer":"uax_url_email","type":"standard"}}},"number_of_replicas":"0","number_of_shards":"1"}}
[00:00:13]             │ info progress: 4811
[00:00:23]             │ info progress: 12859
[00:00:25]             │ info [logstash_functional] Indexed 4633 docs into "logstash-2015.09.22"
[00:00:25]             │ info [logstash_functional] Indexed 4757 docs into "logstash-2015.09.20"
[00:00:25]             │ info [logstash_functional] Indexed 4614 docs into "logstash-2015.09.21"
[00:00:25]             │ debg applying update to kibana config: {"defaultIndex":"logstash-*"}
[00:00:25]             │ debg navigating to discover url: http://localhost:61111/app/discover#/
[00:00:25]             │ debg navigate to: http://localhost:61111/app/discover#/
[00:00:26]             │ debg browser[INFO] http://localhost:61111/app/discover?_t=1600097088720#/ 341 Refused to execute inline script because it violates the following Content Security Policy directive: "script-src 'unsafe-eval' 'self'". Either the 'unsafe-inline' keyword, a hash ('sha256-P5polb1UreUSOe5V/Pv7tc+yeZuJXiOi/3fqhGsU7BE='), or a nonce ('nonce-...') is required to enable inline execution.
[00:00:26]             │
[00:00:26]             │ debg browser[INFO] http://localhost:61111/bootstrap.js 42:19 "^ A single error about an inline script not firing due to content security policy is expected!"
[00:00:26]             │ debg ... sleep(700) start
[00:00:26]             │ debg ... sleep(700) end
[00:00:26]             │ debg returned from get, calling refresh
[00:00:29]             │ERROR browser[SEVERE] http://localhost:61111/36242/bundles/core/core.entry.js 83:272044 TypeError: Failed to fetch
[00:00:29]             │ debg browser[INFO] http://localhost:61111/app/discover?_t=1600097088720#/ 341 Refused to execute inline script because it violates the following Content Security Policy directive: "script-src 'unsafe-eval' 'self'". Either the 'unsafe-inline' keyword, a hash ('sha256-P5polb1UreUSOe5V/Pv7tc+yeZuJXiOi/3fqhGsU7BE='), or a nonce ('nonce-...') is required to enable inline execution.
[00:00:29]             │
[00:00:29]             │ debg browser[INFO] http://localhost:61111/bootstrap.js 42:19 "^ A single error about an inline script not firing due to content security policy is expected!"
[00:00:29]             │ debg currentUrl = http://localhost:61111/app/discover#/
[00:00:29]             │          appUrl = http://localhost:61111/app/discover#/
[00:00:29]             │ debg TestSubjects.find(kibanaChrome)
[00:00:29]             │ debg Find.findByCssSelector('[data-test-subj="kibanaChrome"]') with timeout=60000
[00:00:32]             │ debg ... sleep(501) start
[00:00:33]             │ debg ... sleep(501) end
[00:00:33]             │ debg in navigateTo url = http://localhost:61111/app/discover#/
[00:00:33]             │ debg TestSubjects.exists(statusPageContainer)
[00:00:33]             │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="statusPageContainer"]') with timeout=2500
[00:00:35]             │ debg --- retry.tryForTime error: [data-test-subj="statusPageContainer"] is not displayed
[00:00:36]             │ debg Setting absolute range to Sep 19, 2015 @ 06:31:44.000 to Sep 23, 2015 @ 18:31:44.000
[00:00:36]             │ debg TestSubjects.exists(superDatePickerToggleQuickMenuButton)
[00:00:36]             │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="superDatePickerToggleQuickMenuButton"]') with timeout=20000
[00:00:36]             │ debg TestSubjects.exists(superDatePickerShowDatesButton)
[00:00:36]             │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="superDatePickerShowDatesButton"]') with timeout=2500
[00:00:36]             │ debg TestSubjects.click(superDatePickerShowDatesButton)
[00:00:36]             │ debg Find.clickByCssSelector('[data-test-subj="superDatePickerShowDatesButton"]') with timeout=10000
[00:00:36]             │ debg Find.findByCssSelector('[data-test-subj="superDatePickerShowDatesButton"]') with timeout=10000
[00:00:36]             │ debg TestSubjects.exists(superDatePickerstartDatePopoverButton)
[00:00:36]             │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="superDatePickerstartDatePopoverButton"]') with timeout=2500
[00:00:36]             │ debg TestSubjects.click(superDatePickerendDatePopoverButton)
[00:00:36]             │ debg Find.clickByCssSelector('[data-test-subj="superDatePickerendDatePopoverButton"]') with timeout=10000
[00:00:36]             │ debg Find.findByCssSelector('[data-test-subj="superDatePickerendDatePopoverButton"]') with timeout=10000
[00:00:37]             │ debg Find.findByCssSelector('div.euiPopover__panel-isOpen') with timeout=10000
[00:00:37]             │ debg TestSubjects.click(superDatePickerAbsoluteTab)
[00:00:37]             │ debg Find.clickByCssSelector('[data-test-subj="superDatePickerAbsoluteTab"]') with timeout=10000
[00:00:37]             │ debg Find.findByCssSelector('[data-test-subj="superDatePickerAbsoluteTab"]') with timeout=10000
[00:00:37]             │ debg TestSubjects.click(superDatePickerAbsoluteDateInput)
[00:00:37]             │ debg Find.clickByCssSelector('[data-test-subj="superDatePickerAbsoluteDateInput"]') with timeout=10000
[00:00:37]             │ debg Find.findByCssSelector('[data-test-subj="superDatePickerAbsoluteDateInput"]') with timeout=10000
[00:00:37]             │ debg TestSubjects.setValue(superDatePickerAbsoluteDateInput, Sep 23, 2015 @ 18:31:44.000)
[00:00:37]             │ debg TestSubjects.click(superDatePickerAbsoluteDateInput)
[00:00:37]             │ debg Find.clickByCssSelector('[data-test-subj="superDatePickerAbsoluteDateInput"]') with timeout=10000
[00:00:37]             │ debg Find.findByCssSelector('[data-test-subj="superDatePickerAbsoluteDateInput"]') with timeout=10000
[00:00:38]             │ debg ... sleep(500) start
[00:00:38]             │ debg ... sleep(500) end
[00:00:38]             │ debg TestSubjects.click(superDatePickerstartDatePopoverButton)
[00:00:38]             │ debg Find.clickByCssSelector('[data-test-subj="superDatePickerstartDatePopoverButton"]') with timeout=10000
[00:00:38]             │ debg Find.findByCssSelector('[data-test-subj="superDatePickerstartDatePopoverButton"]') with timeout=10000
[00:00:39]             │ debg Find.waitForElementStale with timeout=10000
[00:00:39]             │ debg Find.findByCssSelector('div.euiPopover__panel-isOpen') with timeout=10000
[00:00:39]             │ debg TestSubjects.click(superDatePickerAbsoluteTab)
[00:00:39]             │ debg Find.clickByCssSelector('[data-test-subj="superDatePickerAbsoluteTab"]') with timeout=10000
[00:00:39]             │ debg Find.findByCssSelector('[data-test-subj="superDatePickerAbsoluteTab"]') with timeout=10000
[00:00:39]             │ debg TestSubjects.click(superDatePickerAbsoluteDateInput)
[00:00:39]             │ debg Find.clickByCssSelector('[data-test-subj="superDatePickerAbsoluteDateInput"]') with timeout=10000
[00:00:39]             │ debg Find.findByCssSelector('[data-test-subj="superDatePickerAbsoluteDateInput"]') with timeout=10000
[00:00:39]             │ debg TestSubjects.setValue(superDatePickerAbsoluteDateInput, Sep 19, 2015 @ 06:31:44.000)
[00:00:39]             │ debg TestSubjects.click(superDatePickerAbsoluteDateInput)
[00:00:39]             │ debg Find.clickByCssSelector('[data-test-subj="superDatePickerAbsoluteDateInput"]') with timeout=10000
[00:00:39]             │ debg Find.findByCssSelector('[data-test-subj="superDatePickerAbsoluteDateInput"]') with timeout=10000
[00:00:40]             │ debg TestSubjects.exists(superDatePickerApplyTimeButton)
[00:00:40]             │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="superDatePickerApplyTimeButton"]') with timeout=2500
[00:00:43]             │ debg --- retry.tryForTime error: [data-test-subj="superDatePickerApplyTimeButton"] is not displayed
[00:00:43]             │ debg TestSubjects.click(querySubmitButton)
[00:00:43]             │ debg Find.clickByCssSelector('[data-test-subj="querySubmitButton"]') with timeout=10000
[00:00:43]             │ debg Find.findByCssSelector('[data-test-subj="querySubmitButton"]') with timeout=10000
[00:00:44]             │ debg Find.waitForElementStale with timeout=10000
[00:00:44]             │ debg TestSubjects.exists(globalLoadingIndicator-hidden)
[00:00:44]             │ debg Find.existsByCssSelector('[data-test-subj="globalLoadingIndicator-hidden"]') with timeout=100000
[00:00:47]           └-> main view
[00:00:47]             └-> "before each" hook: global before each
[00:01:05]             └- ✓ pass  (17.6s) "Discover main view"
[00:01:05]           └-> Click save button
[00:01:05]             └-> "before each" hook: global before each
[00:01:05]             │ debg TestSubjects.click(discoverSaveButton)
[00:01:05]             │ debg Find.clickByCssSelector('[data-test-subj="discoverSaveButton"]') with timeout=10000
[00:01:05]             │ debg Find.findByCssSelector('[data-test-subj="discoverSaveButton"]') with timeout=10000
[00:01:08]             └- ✓ pass  (3.1s) "Discover Click save button"
[00:01:08]           └-> Save search panel
[00:01:08]             └-> "before each" hook: global before each
[00:01:08]             │ debg TestSubjects.setValue(savedObjectTitle, a11ySearch)
[00:01:08]             │ debg TestSubjects.click(savedObjectTitle)
[00:01:08]             │ debg Find.clickByCssSelector('[data-test-subj="savedObjectTitle"]') with timeout=10000
[00:01:08]             │ debg Find.findByCssSelector('[data-test-subj="savedObjectTitle"]') with timeout=10000
[00:01:11]             └- ✓ pass  (2.5s) "Discover Save search panel"
[00:01:11]           └-> Confirm saved search
[00:01:11]             └-> "before each" hook: global before each
[00:01:11]             │ debg TestSubjects.click(confirmSaveSavedObjectButton)
[00:01:11]             │ debg Find.clickByCssSelector('[data-test-subj="confirmSaveSavedObjectButton"]') with timeout=10000
[00:01:11]             │ debg Find.findByCssSelector('[data-test-subj="confirmSaveSavedObjectButton"]') with timeout=10000
[00:01:13]             └- ✓ pass  (2.7s) "Discover Confirm saved search"
[00:01:13]           └-> Click on new to clear the search
[00:01:13]             └-> "before each" hook: global before each
[00:01:13]             │ debg TestSubjects.click(discoverNewButton)
[00:01:13]             │ debg Find.clickByCssSelector('[data-test-subj="discoverNewButton"]') with timeout=10000
[00:01:13]             │ debg Find.findByCssSelector('[data-test-subj="discoverNewButton"]') with timeout=10000
[00:01:14]             │ debg isGlobalLoadingIndicatorVisible
[00:01:14]             │ debg TestSubjects.exists(globalLoadingIndicator)
[00:01:14]             │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="globalLoadingIndicator"]') with timeout=1500
[00:01:14]             │ debg TestSubjects.exists(globalLoadingIndicator-hidden)
[00:01:14]             │ debg Find.existsByCssSelector('[data-test-subj="globalLoadingIndicator-hidden"]') with timeout=100000
[00:01:26]             └- ✓ pass  (13.1s) "Discover Click on new to clear the search"
[00:01:26]           └-> Open load saved search panel
[00:01:26]             └-> "before each" hook: global before each
[00:01:26]             │ debg TestSubjects.exists(loadSearchForm)
[00:01:26]             │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="loadSearchForm"]') with timeout=2500
[00:01:29]             │ debg --- retry.tryForTime error: [data-test-subj="loadSearchForm"] is not displayed
[00:01:29]             │ debg Waiting up to 20000ms for saved search panel is opened...
[00:01:29]             │ debg TestSubjects.moveMouseTo(discoverOpenButton)
[00:01:29]             │ debg TestSubjects.find(discoverOpenButton)
[00:01:29]             │ debg Find.findByCssSelector('[data-test-subj="discoverOpenButton"]') with timeout=10000
[00:01:30]             │ debg TestSubjects.click(discoverOpenButton)
[00:01:30]             │ debg Find.clickByCssSelector('[data-test-subj="discoverOpenButton"]') with timeout=10000
[00:01:30]             │ debg Find.findByCssSelector('[data-test-subj="discoverOpenButton"]') with timeout=10000
[00:01:30]             │ debg isGlobalLoadingIndicatorVisible
[00:01:30]             │ debg TestSubjects.exists(globalLoadingIndicator)
[00:01:30]             │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="globalLoadingIndicator"]') with timeout=1500
[00:01:31]             │ debg --- retry.tryForTime error: [data-test-subj="globalLoadingIndicator"] is not displayed
[00:01:33]             │ debg --- retry.tryForTime failed again with the same message...
[00:01:33]             │ debg TestSubjects.exists(globalLoadingIndicator-hidden)
[00:01:33]             │ debg Find.existsByCssSelector('[data-test-subj="globalLoadingIndicator-hidden"]') with timeout=100000
[00:01:33]             │ debg TestSubjects.exists(loadSearchForm)
[00:01:33]             │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="loadSearchForm"]') with timeout=2500
[00:01:35]             │ debg TestSubjects.click(euiFlyoutCloseButton)
[00:01:35]             │ debg Find.clickByCssSelector('[data-test-subj="euiFlyoutCloseButton"]') with timeout=10000
[00:01:35]             │ debg Find.findByCssSelector('[data-test-subj="euiFlyoutCloseButton"]') with timeout=10000
[00:01:35]             └- ✓ pass  (8.9s) "Discover Open load saved search panel"
[00:01:35]           └-> Open inspector panel
[00:01:35]             └-> "before each" hook: global before each
[00:01:35]             │ debg Inspector.open
[00:01:35]             │ debg TestSubjects.exists(inspectorPanel)
[00:01:35]             │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="inspectorPanel"]') with timeout=2500
[00:01:38]             │ debg --- retry.tryForTime error: [data-test-subj="inspectorPanel"] is not displayed
[00:01:38]             │ debg TestSubjects.click(openInspectorButton)
[00:01:38]             │ debg Find.clickByCssSelector('[data-test-subj="openInspectorButton"]') with timeout=10000
[00:01:38]             │ debg Find.findByCssSelector('[data-test-subj="openInspectorButton"]') with timeout=10000
[00:01:39]             │ debg TestSubjects.exists(inspectorPanel)
[00:01:39]             │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="inspectorPanel"]') with timeout=2500
[00:01:41]             │ debg Close Inspector
[00:01:41]             │ debg TestSubjects.exists(inspectorPanel)
[00:01:41]             │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="inspectorPanel"]') with timeout=2500
[00:01:41]             │ debg Closing flyout inspectorPanel
[00:01:41]             │ debg TestSubjects.find(inspectorPanel)
[00:01:41]             │ debg Find.findByCssSelector('[data-test-subj="inspectorPanel"]') with timeout=10000
[00:01:42]             │ debg Waiting up to 20000ms for flyout closed...
[00:01:42]             │ debg TestSubjects.exists(inspectorPanel)
[00:01:42]             │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="inspectorPanel"]') with timeout=1000
[00:01:43]             │ debg --- retry.tryForTime error: [data-test-subj="inspectorPanel"] is not displayed
[00:01:43]             │ debg TestSubjects.exists(inspectorPanel)
[00:01:43]             │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="inspectorPanel"]') with timeout=2500
[00:01:46]             │ debg --- retry.tryForTime error: [data-test-subj="inspectorPanel"] is not displayed
[00:01:46]             └- ✓ pass  (10.8s) "Discover Open inspector panel"
[00:01:46]           └-> Open add filter
[00:01:46]             └-> "before each" hook: global before each
[00:01:46]             │ debg TestSubjects.click(addFilter)
[00:01:46]             │ debg Find.clickByCssSelector('[data-test-subj="addFilter"]') with timeout=10000
[00:01:46]             │ debg Find.findByCssSelector('[data-test-subj="addFilter"]') with timeout=10000
[00:01:48]             └- ✓ pass  (1.9s) "Discover Open add filter"
[00:01:48]           └-> Select values for a filter
[00:01:48]             └-> "before each" hook: global before each
[00:01:48]             │ debg TestSubjects.click(addFilter)
[00:01:48]             │ debg Find.clickByCssSelector('[data-test-subj="addFilter"]') with timeout=10000
[00:01:48]             │ debg Find.findByCssSelector('[data-test-subj="addFilter"]') with timeout=10000
[00:01:48]             │ debg comboBox.set, comboBoxSelector: filterFieldSuggestionList
[00:01:48]             │ debg TestSubjects.find(filterFieldSuggestionList)
[00:01:48]             │ debg Find.findByCssSelector('[data-test-subj="filterFieldSuggestionList"]') with timeout=10000
[00:01:48]             │ debg comboBox.setElement, value: extension.raw
[00:01:48]             │ debg comboBox.isOptionSelected, value: extension.raw
[00:01:51]             │ debg TestSubjects.exists(~comboBoxOptionsList)
[00:01:51]             │ debg Find.existsByDisplayedByCssSelector('[data-test-subj~="comboBoxOptionsList"]') with timeout=2500
[00:01:51]             │ debg Find.allByCssSelector('.euiFilterSelectItem[title^="extension.raw"]') with timeout=2500
[00:01:51]             │ debg TestSubjects.exists(~comboBoxOptionsList)
[00:01:51]             │ debg Find.existsByDisplayedByCssSelector('[data-test-subj~="comboBoxOptionsList"]') with timeout=2500
[00:01:54]             │ debg --- retry.tryForTime error: [data-test-subj~="comboBoxOptionsList"] is not displayed
[00:01:54]             │ debg comboBox.set, comboBoxSelector: filterOperatorList
[00:01:54]             │ debg TestSubjects.find(filterOperatorList)
[00:01:54]             │ debg Find.findByCssSelector('[data-test-subj="filterOperatorList"]') with timeout=10000
[00:01:54]             │ debg comboBox.setElement, value: is one of
[00:01:54]             │ debg comboBox.isOptionSelected, value: is one of
[00:01:57]             │ debg TestSubjects.exists(~comboBoxOptionsList)
[00:01:57]             │ debg Find.existsByDisplayedByCssSelector('[data-test-subj~="comboBoxOptionsList"]') with timeout=2500
[00:01:57]             │ debg Find.allByCssSelector('.euiFilterSelectItem[title^="is one of"]') with timeout=2500
[00:01:57]             │ debg TestSubjects.exists(~comboBoxOptionsList)
[00:01:57]             │ debg Find.existsByDisplayedByCssSelector('[data-test-subj~="comboBoxOptionsList"]') with timeout=2500
[00:02:00]             │ debg --- retry.tryForTime error: [data-test-subj~="comboBoxOptionsList"] is not displayed
[00:02:00]             │ debg TestSubjects.find(filterParams)
[00:02:00]             │ debg Find.findByCssSelector('[data-test-subj="filterParams"]') with timeout=10000
[00:02:00]             │ debg comboBox.setElement, value: jpg
[00:02:00]             │ debg comboBox.isOptionSelected, value: jpg
[00:02:03]             │ debg TestSubjects.exists(~comboBoxOptionsList)
[00:02:03]             │ debg Find.existsByDisplayedByCssSelector('[data-test-subj~="comboBoxOptionsList"]') with timeout=2500
[00:02:03]             │ debg Find.allByCssSelector('.euiFilterSelectItem[title^="jpg"]') with timeout=2500
[00:02:03]             │ debg TestSubjects.exists(~comboBoxOptionsList)
[00:02:03]             │ debg Find.existsByDisplayedByCssSelector('[data-test-subj~="comboBoxOptionsList"]') with timeout=2500
[00:02:04]             │ debg TestSubjects.click(saveFilter)
[00:02:04]             │ debg Find.clickByCssSelector('[data-test-subj="saveFilter"]') with timeout=10000
[00:02:04]             │ debg Find.findByCssSelector('[data-test-subj="saveFilter"]') with timeout=10000
[00:02:04]             │ debg TestSubjects.exists(globalLoadingIndicator-hidden)
[00:02:04]             │ debg Find.existsByCssSelector('[data-test-subj="globalLoadingIndicator-hidden"]') with timeout=100000
[00:02:20]             └- ✓ pass  (32.4s) "Discover Select values for a filter"
[00:02:20]           └-> Load a new search from the panel
[00:02:20]             └-> "before each" hook: global before each
[00:02:20]             │ debg TestSubjects.click(discoverSaveButton)
[00:02:20]             │ debg Find.clickByCssSelector('[data-test-subj="discoverSaveButton"]') with timeout=10000
[00:02:20]             │ debg Find.findByCssSelector('[data-test-subj="discoverSaveButton"]') with timeout=10000
[00:02:21]             │ debg TestSubjects.setValue(savedObjectTitle, filterSearch)
[00:02:21]             │ debg TestSubjects.click(savedObjectTitle)
[00:02:21]             │ debg Find.clickByCssSelector('[data-test-subj="savedObjectTitle"]') with timeout=10000
[00:02:21]             │ debg Find.findByCssSelector('[data-test-subj="savedObjectTitle"]') with timeout=10000
[00:02:22]             │ debg TestSubjects.click(confirmSaveSavedObjectButton)
[00:02:22]             │ debg Find.clickByCssSelector('[data-test-subj="confirmSaveSavedObjectButton"]') with timeout=10000
[00:02:22]             │ debg Find.findByCssSelector('[data-test-subj="confirmSaveSavedObjectButton"]') with timeout=10000
[00:02:22]             │ debg TestSubjects.exists(loadSearchForm)
[00:02:22]             │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="loadSearchForm"]') with timeout=2500
[00:02:25]             │ debg --- retry.tryForTime error: [data-test-subj="loadSearchForm"] is not displayed
[00:02:25]             │ debg Waiting up to 20000ms for saved search panel is opened...
[00:02:25]             │ debg TestSubjects.moveMouseTo(discoverOpenButton)
[00:02:25]             │ debg TestSubjects.find(discoverOpenButton)
[00:02:25]             │ debg Find.findByCssSelector('[data-test-subj="discoverOpenButton"]') with timeout=10000
[00:02:26]             │ debg TestSubjects.click(discoverOpenButton)
[00:02:26]             │ debg Find.clickByCssSelector('[data-test-subj="discoverOpenButton"]') with timeout=10000
[00:02:26]             │ debg Find.findByCssSelector('[data-test-subj="discoverOpenButton"]') with timeout=10000
[00:02:26]             │ debg isGlobalLoadingIndicatorVisible
[00:02:26]             │ debg TestSubjects.exists(globalLoadingIndicator)
[00:02:26]             │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="globalLoadingIndicator"]') with timeout=1500
[00:02:27]             │ debg --- retry.tryForTime error: [data-test-subj="globalLoadingIndicator"] is not displayed
[00:02:28]             │ debg TestSubjects.exists(globalLoadingIndicator-hidden)
[00:02:28]             │ debg Find.existsByCssSelector('[data-test-subj="globalLoadingIndicator-hidden"]') with timeout=100000
[00:02:28]             │ debg TestSubjects.exists(loadSearchForm)
[00:02:28]             │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="loadSearchForm"]') with timeout=2500
[00:02:28]             │ debg TestSubjects.exists(loadSearchForm)
[00:02:28]             │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="loadSearchForm"]') with timeout=2500
[00:02:28]             │ debg Find.byButtonText('filterSearch') with timeout=10000
[00:02:38]             │ debg --- retry.tryForTime error: stale element reference: element is not attached to the page document
[00:02:38]             │        (Session info: headless chrome=84.0.4147.135)
[00:02:38]             │ info Taking screenshot "/dev/shm/workspace/parallel/11/kibana/test/functional/screenshots/failure/Discover Load a new search from the panel.png"
[00:02:39]             │ info Current URL is: http://localhost:61111/app/discover#/view/b2f0c290-f69e-11ea-88e2-5d04608659fb?_g=(filters:!(),refreshInterval:(pause:!t,value:0),time:(from:%272015-09-19T06:31:44.000Z%27,to:%272015-09-23T18:31:44.000Z%27))&_a=(columns:!(_source),filters:!((%27$state%27:(store:appState),meta:(alias:!n,disabled:!f,index:%27logstash-*%27,key:extension.raw,negate:!f,params:!(jpg),type:phrases,value:jpg),query:(bool:(minimum_should_match:1,should:!((match_phrase:(extension.raw:jpg))))))),index:%27logstash-*%27,interval:auto,query:(language:kuery,query:%27%27),sort:!())
[00:02:39]             │ info Saving page source to: /dev/shm/workspace/parallel/11/kibana/test/functional/failure_debug/html/Discover Load a new search from the panel.html
[00:02:39]             └- ✖ fail: Discover Load a new search from the panel
[00:02:39]             │      Error: retry.tryForTime timeout: StaleElementReferenceError: stale element reference: element is not attached to the page document
[00:02:39]             │   (Session info: headless chrome=84.0.4147.135)
[00:02:39]             │     at Object.throwDecodedError (/dev/shm/workspace/kibana/node_modules/selenium-webdriver/lib/error.js:550:15)
[00:02:39]             │     at parseHttpResponse (/dev/shm/workspace/kibana/node_modules/selenium-webdriver/lib/http.js:565:13)
[00:02:39]             │     at Executor.execute (/dev/shm/workspace/kibana/node_modules/selenium-webdriver/lib/http.js:491:26)
[00:02:39]             │     at process._tickCallback (internal/process/next_tick.js:68:7)
[00:02:39]             │       at onFailure (test/common/services/retry/retry_for_success.ts:28:9)
[00:02:39]             │       at retryForSuccess (test/common/services/retry/retry_for_success.ts:68:13)
[00:02:39]             │ 
[00:02:39]             │ 

Stack Trace

Error: retry.tryForTime timeout: StaleElementReferenceError: stale element reference: element is not attached to the page document
  (Session info: headless chrome=84.0.4147.135)
    at Object.throwDecodedError (/dev/shm/workspace/kibana/node_modules/selenium-webdriver/lib/error.js:550:15)
    at parseHttpResponse (/dev/shm/workspace/kibana/node_modules/selenium-webdriver/lib/http.js:565:13)
    at Executor.execute (/dev/shm/workspace/kibana/node_modules/selenium-webdriver/lib/http.js:491:26)
    at process._tickCallback (internal/process/next_tick.js:68:7)
    at onFailure (test/common/services/retry/retry_for_success.ts:28:9)
    at retryForSuccess (test/common/services/retry/retry_for_success.ts:68:13)

Build metrics

✅ unchanged

History

To update your PR or re-run it, just comment with:
@elasticmachine merge upstream

@gmmorris gmmorris merged commit 8f54c50 into elastic:master Sep 14, 2020
gmmorris added a commit to gmmorris/kibana that referenced this pull request Sep 14, 2020
…6891)

Filters out invalid SOs from search results to prevent a never ending loop and spamming of logs in Task Manager.
gmmorris added a commit to gmmorris/kibana that referenced this pull request Sep 14, 2020
* master: (65 commits)
  [Security Solution][Resolver] Analyzed event styling (elastic#77115)
  filter invalid SOs from the searc hresults in Task Manager (elastic#76891)
  [RUM Dashboard] Visitors by region map (elastic#77135)
  [Security Solution][Endpoint][Admin] Task/endpoint list actions (elastic#76555)
  [Ingest pipelines] Forms for processors T-U (elastic#76710)
  updating datatable type (elastic#77320)
  [ML] Fix custom URLs processing for security app (elastic#76957)
  [telemetry] add schema guideline + schema_check new check for --path config (elastic#75747)
  [ML] Transforms: API schemas and integration tests (elastic#75164)
  [Mappings editor] Add support for wildcard field type (elastic#76574)
  [Ingest Manager] Fix flyout instruction selection (elastic#77071)
  [Telemetry Tools] update lodash to 4.17 (elastic#77317)
  [APM] Service inventory redesign (elastic#76744)
  Hide management sections based on cluster/index privileges (elastic#67791)
  [Snapshot Restore] Disable steps when form is invalid (elastic#76540)
  [Mappings editor] Add support for positive_score_impact to rank_feature (elastic#76824)
  Update apm.ts (elastic#77310)
  [OBS] Remove beta badge, change news feed size and add external icon to news feed link (elastic#77164)
  [Discover] Convert legacy sort to be compatible with multi sort (elastic#76986)
  [APM] API Snapshot Testing (elastic#77229)
  ...
gmmorris added a commit to gmmorris/kibana that referenced this pull request Sep 14, 2020
* master: (65 commits)
  [Security Solution][Resolver] Analyzed event styling (elastic#77115)
  filter invalid SOs from the searc hresults in Task Manager (elastic#76891)
  [RUM Dashboard] Visitors by region map (elastic#77135)
  [Security Solution][Endpoint][Admin] Task/endpoint list actions (elastic#76555)
  [Ingest pipelines] Forms for processors T-U (elastic#76710)
  updating datatable type (elastic#77320)
  [ML] Fix custom URLs processing for security app (elastic#76957)
  [telemetry] add schema guideline + schema_check new check for --path config (elastic#75747)
  [ML] Transforms: API schemas and integration tests (elastic#75164)
  [Mappings editor] Add support for wildcard field type (elastic#76574)
  [Ingest Manager] Fix flyout instruction selection (elastic#77071)
  [Telemetry Tools] update lodash to 4.17 (elastic#77317)
  [APM] Service inventory redesign (elastic#76744)
  Hide management sections based on cluster/index privileges (elastic#67791)
  [Snapshot Restore] Disable steps when form is invalid (elastic#76540)
  [Mappings editor] Add support for positive_score_impact to rank_feature (elastic#76824)
  Update apm.ts (elastic#77310)
  [OBS] Remove beta badge, change news feed size and add external icon to news feed link (elastic#77164)
  [Discover] Convert legacy sort to be compatible with multi sort (elastic#76986)
  [APM] API Snapshot Testing (elastic#77229)
  ...
gmmorris added a commit that referenced this pull request Sep 15, 2020
…77374)

Filters out invalid SOs from search results to prevent a never ending loop and spamming of logs in Task Manager.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Feature:Task Manager release_note:fix Team:ResponseOps Platform ResponseOps team (formerly the Cases and Alerting teams) t// v7.10.0 v8.0.0

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Task manager can get in an endless loop when attempting to claim non-saved object tasks

5 participants