Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Console] Move out of legacy + migrate server side to New Platform #55690

Merged
merged 19 commits into from Jan 30, 2020

Conversation

jloleysens
Copy link
Contributor

@jloleysens jloleysens commented Jan 23, 2020

Summary

Continuation of #43346. Move the console AND console_extensions to New Platform (NP).

How to review

  • A lot of files have moved and a lot of them are JSON. It is safe to ignore these.
  • Files of importance to review are:
    • src/legacy/core_plugins/console_legacy/**/*
    • src/plugins/console/public/*.ts
    • src/plugins/console/server/*.ts

Testing

Because server has been migrated to NP in this PR it will be important to test thoroughly, we need to make sure that the kibana.yml config works as expected and that the proxying behaviour works as expected including fallback to nodes.

Some things to run through (besides the Test Rail test case CC @cuff-links)

  • Check that autocomplete as expected works in x-pack and OSS
  • Issue a request that will error and ensure it works
  • Ensure we can open Docs as before and that copy to curl works.

Outstanding/known issues:

Checklist

Use strikethroughs to remove checklist items you don't feel are applicable to this PR.

@jloleysens jloleysens requested review from a team as code owners January 23, 2020 12:45
@jloleysens jloleysens added release_note:roadmap Team:Kibana Management Dev Tools, Index Management, Upgrade Assistant, ILM, Ingest Node Pipelines, and more v7.7.0 v8.0.0 labels Jan 23, 2020
@elasticmachine
Copy link
Contributor

Pinging @elastic/es-ui (Team:Elasticsearch UI)

@jloleysens jloleysens added Feature:Console Dev Tools Console Feature Feature:Dev Tools labels Jan 23, 2020
Copy link
Member

@joshdover joshdover left a comment

Choose a reason for hiding this comment

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

Migration changes look good. Have one suggestion / question on the Core change.

const elasticsearchUrl = injectedMetadata.getInjectedVar(
'elasticsearchUrl',
'http://localhost:9200'
) as string;
render(
Copy link
Member

Choose a reason for hiding this comment

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

You may want to take a look at the conventions for applications. The main difference between the convention and what you have here is that the ./application module should export a single renderApp function that encapsulates the entire rendering logic (invoking React).

This should be a minor change, but makes this a bit more consistent across the code base.

Comment on lines +60 to +63
const elasticsearchUrl = injectedMetadata.getInjectedVar(
'elasticsearchUrl',
'http://localhost:9200'
) as string;
Copy link
Member

Choose a reason for hiding this comment

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

Guess I'm a bit surprised we expose this to the client. Is this necessary? Seems like a potential low-severity security issue? If it can be removed, can be addressed separately from this PR.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Yeah, it is a bit awkward :c. The reason it exists is for the copy as cURL functionality in console. So that we can provide a better experience for going from Console to the terminal.

I agree that this qualifies as low-severity security concern. Do you think it merits being removed for that reason? Misread your message. To be clear, my understanding of the security issue is that we are leaking DNS entry + port to client side and can't assume we are in a secured environment (like a VPC)?

proxyFilter: schema.arrayOf(schema.string(), { defaultValue: ['.*'] }),
ssl: schema.object({ verify: schema.boolean({ defaultValue: false }) }, {}),

// This does not actually work, track this issue: https://github.com/elastic/kibana/issues/55576
Copy link
Member

Choose a reason for hiding this comment

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

I'm guessing this issue blocks this PR?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I don't think it needs to block this PR, but it would be nice to do the testing here if we can :). Otherwise, I can do it in post-merging too.

Copy link
Member

Choose a reason for hiding this comment

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

Has been solved already! 😄 Thanks @pgayvallet!

) {
addExtensionSpecFilePath(join(__dirname, 'spec/'));
processors.forEach(processor => addProcessorDefinition(processor));
this.log.info('Installed console autocomplete extensions.');
Copy link
Member

Choose a reason for hiding this comment

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

nit: I think this should probably be debug instead of info

@@ -112,8 +113,14 @@ export class HapiResponseAdapter {
return response;
}

private toError(kibanaResponse: KibanaResponse<ResponseError>) {
private toError(kibanaResponse: KibanaResponse<ResponseError | Buffer | stream.Readable>) {
Copy link
Member

Choose a reason for hiding this comment

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

I think it may be more appropriate to add Buffer | stream.Readable to the ResponseError union type. @restrry WDYT?

Copy link
Contributor

@mshustov mshustov Jan 28, 2020

Choose a reason for hiding this comment

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

When it's required? As I can see proxyRequest rejects a promise with an error message, not steam or a buffer

const onError = (e: Error) => reject(e);

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Hey @restrry ! Thanks for weighing in!

This is the flow:

User issues request in browser -> console streams to ES -> ES responds (e.g., status code 400!) -> console streams back to browser -> user sees error.

With the current implementation console cannot stream the error response ES gave us back to browser because the current implementation wants to send back JS object encoded as JSON when we haven't read the body into memory for that.

The error handler you linked to is for lower-level errors on http request - like if the socket gets hung up. Not for a 4xx or 5xx status code. You can see here how the response is handled:

esIncomingMessage = await proxyRequest({

Copy link
Contributor

@mshustov mshustov Jan 29, 2020

Choose a reason for hiding this comment

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

Ok, I think we can merge the current changes. Could you add headers configuration as done in https://github.com/elastic/kibana/pull/55690/files/46c5cab221d6b63a8b442f3ba8a3a7bdc4c03f4d#diff-92d94ad4d163809567c4258f95ff37e2R96 ?
I created an issue to add tests for this API #56305

Copy link
Contributor

Choose a reason for hiding this comment

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

I think it may be more appropriate to add Buffer | stream.Readable to the ResponseError union type. @restrry WDYT?

agree, can be done in #56305

…ve-out-legacy

* 'master' of github.com:elastic/kibana: (187 commits)
  [ML] Reseting categorization validation if category field is cleared (elastic#56029)
  [SIEM] Fields browser readable (elastic#56000)
  [docs] Remove unused callout (elastic#56032)
  Refactor saved object management registry usage (elastic#54155)
  [SIEM][Detection Engine] critical blocker, updates the pre-packaged rules, removes dead ones, adds license file (elastic#56090)
  Fix failing snapshot artifact tests when using env var (elastic#56063)
  Fix Github PR comment formatting (elastic#56078)
  [Maps] fix join metric field selection bugs (elastic#56044)
  Create a new menu for observability links (elastic#54847)
  [SIEM] [Detection Engine] Fixes histogram intervals  (elastic#55969)
  make test less flaky by retrying if list is re-rendered (elastic#55949)
  Remove matrix build support (elastic#54202)
  Add animation to service map layout (elastic#56042)
  [Canvas] Remove Angular and unnecessary reporting config from Canvas (elastic#54050)
  [Uptime] Simplify snapshot max to Infinity (elastic#55931)
  [Uptime] Reintroduce a column for url (elastic#55451)
  Cleanup action task params objects after successful execution (elastic#55227)
  [CI] Retry flaky tests (elastic#53961)
  Expose NP FieldFormats service to server side (elastic#55419)
  [Endpoint] EMT-65: make endpoint data types common, restructure (elastic#54772)
  ...

# Conflicts:
#	src/legacy/core_plugins/console/public/np_ready/application/components/split_panel/__snapshots__/split_panel.test.tsx.snap
#	src/legacy/core_plugins/console/public/np_ready/application/components/split_panel/containers/panel.tsx
#	src/legacy/core_plugins/console/public/np_ready/application/components/split_panel/context.tsx
#	src/legacy/core_plugins/console/public/np_ready/application/components/split_panel/index.ts
#	src/legacy/core_plugins/console/public/np_ready/application/components/split_panel/split_panel.test.tsx
#	src/legacy/ui/public/vis/editors/default/default_editor.tsx
#	src/plugins/console/public/application/components/split_panel/__snapshots__/split_panel.test.tsx.snap
#	src/plugins/console/public/application/components/split_panel/components/resizer.tsx
#	src/plugins/console/public/application/components/split_panel/containers/panel.tsx
#	src/plugins/console/public/application/components/split_panel/containers/panel_container.tsx
#	src/plugins/console/public/application/components/split_panel/context.tsx
#	src/plugins/console/public/application/components/split_panel/index.ts
#	src/plugins/console/public/application/components/split_panel/registry.ts
#	src/plugins/console/public/application/components/split_panel/split_panel.test.tsx
#	src/plugins/kibana_react/public/split_panel/__snapshots__/split_panel.test.tsx.snap
#	src/plugins/kibana_react/public/split_panel/containers/panel.tsx
#	src/plugins/kibana_react/public/split_panel/context.tsx
#	src/plugins/kibana_react/public/split_panel/index.ts
#	src/plugins/kibana_react/public/split_panel/split_panel.test.tsx
@jloleysens
Copy link
Contributor Author

jloleysens commented Jan 28, 2020

@joshdover There is one other thing that is worth looking at for the Console migration and that is the proxy route (src/plugins/console/server/routes/api/console/proxy/index.ts). I am currently using ensureRawRequest from http to get the underlying hapi request object. There are values on there like req.info.remotePort which are used by Console to properly proxy requests (setting x headers).

Not sure what a better work around for this could be until we expose this information via KibanaRequest somehow?

…or now.

Refactor file name of request.ts -> proxy_request.ts. This is consistent with the exported function now
Started fixing server side tests for the proxy route
  - Migrated away from sinon
  - Completed the body.js -> body.test.ts. Still have to do the rest
@@ -37,7 +37,7 @@ interface Args {
// We use a modified version of Hapi's Wreck because Hapi, Axios, and Superagent don't support GET requests
// with bodies, but ES APIs do. Similarly with DELETE requests with bodies. Another library, `request`
// diverged too much from current behaviour.
export const sendRequest = ({
export const proxyRequest = ({
Copy link
Contributor

Choose a reason for hiding this comment

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

@joshdover I'm wondering if the platform should provide proxying functionality out of the box. The current implementation stops working when we merge #55670 Should I re-open #41960 ?

Copy link
Member

Choose a reason for hiding this comment

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

Makes sense to me, but I think we should let this PR move forward and refactor it once we have a solution for #41960.

IMO, we could even push this work off until after NP migrations are complete, but before 8.0.

Copy link
Contributor

Choose a reason for hiding this comment

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

works for me

Copy link
Contributor

@ryankeairns ryankeairns left a comment

Choose a reason for hiding this comment

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

The SCSS files involved are just changing directories. The use of index files and imports looks correct.

@jloleysens
Copy link
Contributor Author

@elasticmachine merge upstream

Copy link
Contributor

@cjcenizal cjcenizal left a comment

Choose a reason for hiding this comment

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

I tested the cases you mentioned as well as the cases in #42029 and everything seems to work as expected. I didn't test the node fallback behavior.

@jloleysens
Copy link
Contributor Author

@elasticmachine merge upstream

@jloleysens jloleysens merged commit 952b61e into elastic:master Jan 30, 2020
@jloleysens jloleysens deleted the np/console/move-out-legacy branch January 30, 2020 09:51
jloleysens added a commit to jloleysens/kibana that referenced this pull request Jan 30, 2020
…lastic#55690)

* Initial move of public and setup of server skeleton

* Fix public paths and types

* Use new usage stats dependency directly in tracker also mark as an optional dependency

* WiP on getting server side working

* Restore proxy route behaviour for base case, still need to test custom proxy and SSL

* Add new type and lib files

* Clean up legacy start up code and add comment about issue in kibana.yml config for console

* Move console_extensions to new platform and introduce ConsoleSetup API for extending autocomplete
Add TODO regarding exposing legacy ES config

* Re-introduce injected elasticsearch variable and use it in public

* Don't pass stateSetter prop through to checkbox

* Refactor of proxy route (split into separate files). Easier testing for now.
Refactor file name of request.ts -> proxy_request.ts. This is consistent with the exported function now
Started fixing server side tests for the proxy route
  - Migrated away from sinon
  - Completed the body.js -> body.test.ts. Still have to do the rest

* headers.js test -> headers.test.ts and moved some of the proxy route mocking logic to a common space

* Finish migration of rest of proxy route test away from hapi
Add test for custom route validation

* Bring console application in line with https://github.com/elastic/kibana/blob/master/src/core/CONVENTIONS.md#applications
Change log from info level to debug level for console_extensions plugin

* Update i18nrc file for console

* Add setHeaders when passing back error response

Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>

# Conflicts:
#	.github/CODEOWNERS
#	src/legacy/core_plugins/console/server/__tests__/proxy_route/params.js
#	src/legacy/core_plugins/console/server/__tests__/proxy_route/query_string.js
#	src/plugins/console/server/lib/spec_definitions/spec/generated/get_script_context.json
#	x-pack/plugins/console_extensions/server/spec/overrides/security.delete_privileges.json
#	x-pack/plugins/console_extensions/server/spec/overrides/security.put_privileges.json
jloleysens added a commit to jloleysens/kibana that referenced this pull request Jan 30, 2020
…lways-use-first-text-object

* 'master' of github.com:elastic/kibana:
  [Console] Move out of legacy + migrate server side to New Platform (elastic#55690)
jloleysens added a commit that referenced this pull request Jan 30, 2020
…55690) (#56360)

* Initial move of public and setup of server skeleton

* Fix public paths and types

* Use new usage stats dependency directly in tracker also mark as an optional dependency

* WiP on getting server side working

* Restore proxy route behaviour for base case, still need to test custom proxy and SSL

* Add new type and lib files

* Clean up legacy start up code and add comment about issue in kibana.yml config for console

* Move console_extensions to new platform and introduce ConsoleSetup API for extending autocomplete
Add TODO regarding exposing legacy ES config

* Re-introduce injected elasticsearch variable and use it in public

* Don't pass stateSetter prop through to checkbox

* Refactor of proxy route (split into separate files). Easier testing for now.
Refactor file name of request.ts -> proxy_request.ts. This is consistent with the exported function now
Started fixing server side tests for the proxy route
  - Migrated away from sinon
  - Completed the body.js -> body.test.ts. Still have to do the rest

* headers.js test -> headers.test.ts and moved some of the proxy route mocking logic to a common space

* Finish migration of rest of proxy route test away from hapi
Add test for custom route validation

* Bring console application in line with https://github.com/elastic/kibana/blob/master/src/core/CONVENTIONS.md#applications
Change log from info level to debug level for console_extensions plugin

* Update i18nrc file for console

* Add setHeaders when passing back error response

Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>

# Conflicts:
#	.github/CODEOWNERS
#	src/legacy/core_plugins/console/server/__tests__/proxy_route/params.js
#	src/legacy/core_plugins/console/server/__tests__/proxy_route/query_string.js
#	src/plugins/console/server/lib/spec_definitions/spec/generated/get_script_context.json
#	x-pack/plugins/console_extensions/server/spec/overrides/security.delete_privileges.json
#	x-pack/plugins/console_extensions/server/spec/overrides/security.put_privileges.json
@kibanamachine
Copy link
Contributor

💛 Build succeeded, but was flaky


Test Failures

Kibana Pipeline / kibana-xpack-agent / Chrome X-Pack UI Functional Tests.x-pack/test/functional/apps/machine_learning/anomaly_detection/advanced_job·ts.machine learning anomaly detection advanced job with categorization detector and default datafeed settings job creation displays details for the created job in the job list

Link to Jenkins

Standard Out

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

[00:00:00]       │
[00:12:42]         └-: machine learning
[00:12:42]           └-> "before all" hook
[00:15:41]           └-: anomaly detection
[00:15:41]             └-> "before all" hook
[00:30:28]             └-: advanced job
[00:30:28]               └-> "before all" hook
[00:30:28]               └-> "before all" hook
[00:30:28]                 │ info [ml/ecommerce] Loading "mappings.json"
[00:30:28]                 │ info [ml/ecommerce] Loading "data.json.gz"
[00:30:28]                 │ info [o.e.c.m.MetaDataDeleteIndexService] [kibana-ci-immutable-oraclelinux-tests-xl-1580397070958261496] [ecommerce/V09JhnxdTy-oNAcJUEZuxQ] deleting index
[00:30:28]                 │ info [ml/ecommerce] Deleted existing index "ecommerce"
[00:30:28]                 │ info [o.e.c.m.MetaDataCreateIndexService] [kibana-ci-immutable-oraclelinux-tests-xl-1580397070958261496] [ecommerce] creating index, cause [api], templates [], shards [1]/[0], mappings [_doc]
[00:30:28]                 │ info [o.e.c.r.a.AllocationService] [kibana-ci-immutable-oraclelinux-tests-xl-1580397070958261496] Cluster health status changed from [YELLOW] to [GREEN] (reason: [shards started [[ecommerce][0]]]).
[00:30:28]                 │ info [ml/ecommerce] Created index "ecommerce"
[00:30:28]                 │ debg [ml/ecommerce] "ecommerce" settings {"index":{"number_of_replicas":"0","number_of_shards":"1"}}
[00:30:28]                 │ info [o.e.c.m.MetaDataDeleteIndexService] [kibana-ci-immutable-oraclelinux-tests-xl-1580397070958261496] [.kibana_2/jMZM2UrWTq6se0stBHwq-w] deleting index
[00:30:28]                 │ info [o.e.c.m.MetaDataDeleteIndexService] [kibana-ci-immutable-oraclelinux-tests-xl-1580397070958261496] [.kibana_1/jPpHuaTHQiyxWBPBO0ZTlA] deleting index
[00:30:28]                 │ info [ml/ecommerce] Deleted existing index [".kibana_2",".kibana_1"]
[00:30:28]                 │ info [o.e.c.m.MetaDataCreateIndexService] [kibana-ci-immutable-oraclelinux-tests-xl-1580397070958261496] [.kibana_1] creating index, cause [api], templates [], shards [1]/[0], mappings [_doc]
[00:30:28]                 │ info [o.e.c.r.a.AllocationService] [kibana-ci-immutable-oraclelinux-tests-xl-1580397070958261496] Cluster health status changed from [YELLOW] to [GREEN] (reason: [shards started [[.kibana_1][0]]]).
[00:30:28]                 │ info [ml/ecommerce] Created index ".kibana_1"
[00:30:28]                 │ debg [ml/ecommerce] ".kibana_1" settings {"index":{"auto_expand_replicas":"0-1","number_of_replicas":"0","number_of_shards":"1"}}
[00:30:31]                 │ info Creating index .kibana_2.
[00:30:31]                 │ info [o.e.c.m.MetaDataCreateIndexService] [kibana-ci-immutable-oraclelinux-tests-xl-1580397070958261496] [.kibana_2] creating index, cause [api], templates [], shards [1]/[1], mappings [_doc]
[00:30:31]                 │ info [o.e.c.r.a.AllocationService] [kibana-ci-immutable-oraclelinux-tests-xl-1580397070958261496] updating number_of_replicas to [0] for indices [.kibana_2]
[00:30:31]                 │ info [o.e.c.r.a.AllocationService] [kibana-ci-immutable-oraclelinux-tests-xl-1580397070958261496] Cluster health status changed from [YELLOW] to [GREEN] (reason: [shards started [[.kibana_2][0]]]).
[00:30:31]                 │ info Migrating .kibana_1 saved objects to .kibana_2
[00:30:31]                 │ debg Migrating saved objects space:default, maps-telemetry:maps-telemetry, config:7.0.0, index-pattern:5193f870-d861-11e9-a311-0fa548c5f953
[00:30:31]                 │ info [o.e.c.m.MetaDataMappingService] [kibana-ci-immutable-oraclelinux-tests-xl-1580397070958261496] [.kibana_2/5LZPyIPfQtmCABlYrBAfeA] update_mapping [_doc]
[00:30:31]                 │ info [o.e.c.m.MetaDataMappingService] [kibana-ci-immutable-oraclelinux-tests-xl-1580397070958261496] [.kibana_2/5LZPyIPfQtmCABlYrBAfeA] update_mapping [_doc]
[00:30:31]                 │ info [o.e.c.m.MetaDataMappingService] [kibana-ci-immutable-oraclelinux-tests-xl-1580397070958261496] [.kibana_2/5LZPyIPfQtmCABlYrBAfeA] update_mapping [_doc]
[00:30:31]                 │ info Pointing alias .kibana to .kibana_2.
[00:30:31]                 │ info Finished in 271ms.
[00:30:31]                 │ debg Creating calendar with id 'wizard-test-calendar'...
[00:30:31]                 │ info [o.e.c.m.MetaDataCreateIndexService] [kibana-ci-immutable-oraclelinux-tests-xl-1580397070958261496] [.ml-meta] creating index, cause [auto(bulk api)], templates [.ml-meta], shards [1]/[1], mappings [_doc]
[00:30:31]                 │ info [o.e.c.r.a.AllocationService] [kibana-ci-immutable-oraclelinux-tests-xl-1580397070958261496] updating number_of_replicas to [0] for indices [.ml-meta]
[00:30:31]                 │ info [o.e.c.m.MetaDataCreateIndexService] [kibana-ci-immutable-oraclelinux-tests-xl-1580397070958261496] [.ml-annotations-6] creating index, cause [api], templates [], shards [1]/[1], mappings [_doc]
[00:30:31]                 │ info [o.e.c.r.a.AllocationService] [kibana-ci-immutable-oraclelinux-tests-xl-1580397070958261496] updating number_of_replicas to [0] for indices [.ml-annotations-6]
[00:30:31]                 │ info [o.e.c.r.a.AllocationService] [kibana-ci-immutable-oraclelinux-tests-xl-1580397070958261496] Cluster health status changed from [YELLOW] to [GREEN] (reason: [shards started [[.ml-annotations-6][0]]]).
[00:30:31]                 │ info [o.e.x.m.MlInitializationService] [kibana-ci-immutable-oraclelinux-tests-xl-1580397070958261496] Created ML annotations index and aliases
[00:30:31]                 │ info [o.e.c.m.MetaDataMappingService] [kibana-ci-immutable-oraclelinux-tests-xl-1580397070958261496] [.ml-meta/liQsLUHJS-qD9y83e_kCOg] update_mapping [_doc]
[00:30:31]                 │ debg Waiting up to 30000ms for 'wizard-test-calendar' to be created...
[00:34:01]               └-: with categorization detector and default datafeed settings
[00:34:01]                 └-> "before all" hook
[00:34:01]                 └-> job creation loads the job management page
[00:34:01]                   └-> "before each" hook: global before each
[00:34:01]                   │ debg navigating to ml url: http://localhost:6141/app/ml
[00:34:01]                   │ debg Navigate to: http://localhost:6141/app/ml
[00:34:01]                   │ debg ... sleep(700) start
[00:34:01]                   │ debg browser[INFO] http://localhost:6141/app/ml?_t=1580400716653 350 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:34:01]                   │
[00:34:01]                   │ debg browser[INFO] http://localhost:6141/bundles/app/ml/bootstrap.js 8:19 "^ A single error about an inline script not firing due to content security policy is expected!"
[00:34:02]                   │ debg ... sleep(700) end
[00:34:02]                   │ debg returned from get, calling refresh
[00:34:02]                   │ debg browser[INFO] http://localhost:6141/app/ml?_t=1580400716653 350 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:34:02]                   │
[00:34:02]                   │ debg browser[INFO] http://localhost:6141/bundles/app/ml/bootstrap.js 8:19 "^ A single error about an inline script not firing due to content security policy is expected!"
[00:34:02]                   │ debg currentUrl = http://localhost:6141/app/ml
[00:34:02]                   │          appUrl = http://localhost:6141/app/ml
[00:34:02]                   │ debg Find.findByCssSelector('[data-test-subj="kibanaChrome"]') with timeout=60000
[00:34:05]                   │ debg browser[INFO] http://localhost:6141/built_assets/dlls/vendors_2.bundle.dll.js 92:138197 "INFO: 2020-01-30T16:11:59Z
[00:34:05]                   │        Adding connection to http://localhost:6141/elasticsearch
[00:34:05]                   │
[00:34:05]                   │      "
[00:34:05]                   │ debg ... sleep(501) start
[00:34:06]                   │ debg ... sleep(501) end
[00:34:06]                   │ debg in navigateTo url = http://localhost:6141/app/ml#/overview?_g=(refreshInterval:(pause:!t,value:0))
[00:34:06]                   │ debg --- retry.try error: URL changed, waiting for it to settle
[00:34:06]                   │ debg ... sleep(501) start
[00:34:07]                   │ debg ... sleep(501) end
[00:34:07]                   │ debg in navigateTo url = http://localhost:6141/app/ml#/overview?_g=(refreshInterval:(pause:!t,value:0))
[00:34:07]                   │ debg TestSubjects.exists(statusPageContainer)
[00:34:07]                   │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="statusPageContainer"]') with timeout=2500
[00:34:09]                   │ debg --- retry.tryForTime error: [data-test-subj="statusPageContainer"] is not displayed
[00:34:10]                   │ debg TestSubjects.click(~mlMainTab & ~anomalyDetection)
[00:34:10]                   │ debg Find.clickByCssSelector('[data-test-subj~="mlMainTab"][data-test-subj~="anomalyDetection"]') with timeout=10000
[00:34:10]                   │ debg Find.findByCssSelector('[data-test-subj~="mlMainTab"][data-test-subj~="anomalyDetection"]') with timeout=10000
[00:34:10]                   │ debg TestSubjects.exists(~mlMainTab & ~anomalyDetection & ~selected)
[00:34:10]                   │ debg Find.existsByDisplayedByCssSelector('[data-test-subj~="mlMainTab"][data-test-subj~="anomalyDetection"][data-test-subj~="selected"]') with timeout=120000
[00:34:10]                   │ debg TestSubjects.exists(mlPageJobManagement)
[00:34:10]                   │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="mlPageJobManagement"]') with timeout=120000
[00:34:10]                   │ debg TestSubjects.findAll(~mlSubTab)
[00:34:10]                   │ debg Find.allByCssSelector('[data-test-subj~="mlSubTab"]') with timeout=3
[00:34:10]                   │ debg TestSubjects.exists(~mlSubTab&~jobManagement)
[00:34:10]                   │ debg Find.existsByDisplayedByCssSelector('[data-test-subj~="mlSubTab"][data-test-subj~="jobManagement"]') with timeout=1000
[00:34:10]                   │ debg TestSubjects.exists(~mlSubTab&~anomalyExplorer)
[00:34:10]                   │ debg Find.existsByDisplayedByCssSelector('[data-test-subj~="mlSubTab"][data-test-subj~="anomalyExplorer"]') with timeout=1000
[00:34:10]                   │ debg TestSubjects.exists(~mlSubTab&~singleMetricViewer)
[00:34:10]                   │ debg Find.existsByDisplayedByCssSelector('[data-test-subj~="mlSubTab"][data-test-subj~="singleMetricViewer"]') with timeout=1000
[00:34:10]                   │ debg TestSubjects.exists(~mlSubTab&~settings)
[00:34:10]                   │ debg Find.existsByDisplayedByCssSelector('[data-test-subj~="mlSubTab"][data-test-subj~="settings"]') with timeout=1000
[00:34:10]                   │ debg TestSubjects.click(~mlSubTab & ~jobManagement)
[00:34:10]                   │ debg Find.clickByCssSelector('[data-test-subj~="mlSubTab"][data-test-subj~="jobManagement"]') with timeout=10000
[00:34:10]                   │ debg Find.findByCssSelector('[data-test-subj~="mlSubTab"][data-test-subj~="jobManagement"]') with timeout=10000
[00:34:11]                   │ debg TestSubjects.exists(~mlSubTab & ~jobManagement & ~selected)
[00:34:11]                   │ debg Find.existsByDisplayedByCssSelector('[data-test-subj~="mlSubTab"][data-test-subj~="jobManagement"][data-test-subj~="selected"]') with timeout=120000
[00:34:11]                   │ debg TestSubjects.exists(mlPageJobManagement)
[00:34:11]                   │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="mlPageJobManagement"]') with timeout=120000
[00:34:11]                   └- ✓ pass  (9.8s) "machine learning anomaly detection advanced job with categorization detector and default datafeed settings job creation loads the job management page"
[00:34:11]                 └-> job creation loads the new job source selection page
[00:34:11]                   └-> "before each" hook: global before each
[00:34:11]                   │ debg TestSubjects.clickWhenNotDisabled(mlCreateNewJobButton)
[00:34:11]                   │ debg Find.clickByCssSelectorWhenNotDisabled('[data-test-subj="mlCreateNewJobButton"]') with timeout=10000
[00:34:11]                   │ debg Find.findByCssSelector('[data-test-subj="mlCreateNewJobButton"]') with timeout=10000
[00:34:11]                   │ debg TestSubjects.exists(mlPageSourceSelection)
[00:34:11]                   │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="mlPageSourceSelection"]') with timeout=120000
[00:34:11]                   └- ✓ pass  (326ms) "machine learning anomaly detection advanced job with categorization detector and default datafeed settings job creation loads the new job source selection page"
[00:34:11]                 └-> job creation loads the job type selection page
[00:34:11]                   └-> "before each" hook: global before each
[00:34:11]                   │ debg TestSubjects.setValue(savedObjectFinderSearchInput, ecommerce)
[00:34:11]                   │ debg TestSubjects.click(savedObjectFinderSearchInput)
[00:34:11]                   │ debg Find.clickByCssSelector('[data-test-subj="savedObjectFinderSearchInput"]') with timeout=10000
[00:34:11]                   │ debg Find.findByCssSelector('[data-test-subj="savedObjectFinderSearchInput"]') with timeout=10000
[00:34:11]                   │ debg TestSubjects.exists(savedObjectTitleecommerce)
[00:34:11]                   │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="savedObjectTitleecommerce"]') with timeout=120000
[00:34:12]                   │ debg TestSubjects.clickWhenNotDisabled(savedObjectTitleecommerce)
[00:34:12]                   │ debg Find.clickByCssSelectorWhenNotDisabled('[data-test-subj="savedObjectTitleecommerce"]') with timeout=10000
[00:34:12]                   │ debg Find.findByCssSelector('[data-test-subj="savedObjectTitleecommerce"]') with timeout=10000
[00:34:12]                   │ debg TestSubjects.exists(mlPageJobTypeSelection)
[00:34:12]                   │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="mlPageJobTypeSelection"]') with timeout=10000
[00:34:12]                   └- ✓ pass  (1.0s) "machine learning anomaly detection advanced job with categorization detector and default datafeed settings job creation loads the job type selection page"
[00:34:12]                 └-> job creation loads the advanced job wizard page
[00:34:12]                   └-> "before each" hook: global before each
[00:34:12]                   │ debg TestSubjects.clickWhenNotDisabled(mlJobTypeLinkAdvancedJob)
[00:34:12]                   │ debg Find.clickByCssSelectorWhenNotDisabled('[data-test-subj="mlJobTypeLinkAdvancedJob"]') with timeout=10000
[00:34:12]                   │ debg Find.findByCssSelector('[data-test-subj="mlJobTypeLinkAdvancedJob"]') with timeout=10000
[00:34:12]                   │ debg TestSubjects.exists(mlPageJobWizard advanced)
[00:34:12]                   │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="mlPageJobWizard advanced"]') with timeout=120000
[00:34:13]                   └- ✓ pass  (509ms) "machine learning anomaly detection advanced job with categorization detector and default datafeed settings job creation loads the advanced job wizard page"
[00:34:13]                 └-> job creation displays the configure datafeed step
[00:34:13]                   └-> "before each" hook: global before each
[00:34:13]                   │ debg TestSubjects.exists(mlJobWizardStepTitleConfigureDatafeed)
[00:34:13]                   │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="mlJobWizardStepTitleConfigureDatafeed"]') with timeout=120000
[00:34:13]                   └- ✓ pass  (41ms) "machine learning anomaly detection advanced job with categorization detector and default datafeed settings job creation displays the configure datafeed step"
[00:34:13]                 └-> job creation pre-fills the datafeed query editor
[00:34:13]                   └-> "before each" hook: global before each
[00:34:13]                   │ debg TestSubjects.exists(mlAdvancedDatafeedQueryEditor > codeEditorContainer)
[00:34:13]                   │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="mlAdvancedDatafeedQueryEditor"] [data-test-subj="codeEditorContainer"]') with timeout=120000
[00:34:13]                   │ debg TestSubjects.find(mlAdvancedDatafeedQueryEditor > codeEditorContainer)
[00:34:13]                   │ debg Find.findByCssSelector('[data-test-subj="mlAdvancedDatafeedQueryEditor"] [data-test-subj="codeEditorContainer"]') with timeout=10000
[00:34:13]                   └- ✓ pass  (297ms) "machine learning anomaly detection advanced job with categorization detector and default datafeed settings job creation pre-fills the datafeed query editor"
[00:34:13]                 └-> job creation inputs the query delay
[00:34:13]                   └-> "before each" hook: global before each
[00:34:13]                   │ debg TestSubjects.exists(mlJobWizardInputQueryDelay)
[00:34:13]                   │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="mlJobWizardInputQueryDelay"]') with timeout=120000
[00:34:13]                   │ debg TestSubjects.getAttribute(mlJobWizardInputQueryDelay, value)
[00:34:13]                   │ debg TestSubjects.find(mlJobWizardInputQueryDelay)
[00:34:13]                   │ debg Find.findByCssSelector('[data-test-subj="mlJobWizardInputQueryDelay"]') with timeout=10000
[00:34:13]                   │ debg TestSubjects.getAttribute(mlJobWizardInputQueryDelay, placeholder)
[00:34:13]                   │ debg TestSubjects.find(mlJobWizardInputQueryDelay)
[00:34:13]                   │ debg Find.findByCssSelector('[data-test-subj="mlJobWizardInputQueryDelay"]') with timeout=10000
[00:34:13]                   └- ✓ pass  (85ms) "machine learning anomaly detection advanced job with categorization detector and default datafeed settings job creation inputs the query delay"
[00:34:13]                 └-> job creation inputs the frequency
[00:34:13]                   └-> "before each" hook: global before each
[00:34:13]                   │ debg TestSubjects.exists(mlJobWizardInputFrequency)
[00:34:13]                   │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="mlJobWizardInputFrequency"]') with timeout=120000
[00:34:13]                   │ debg TestSubjects.getAttribute(mlJobWizardInputFrequency, value)
[00:34:13]                   │ debg TestSubjects.find(mlJobWizardInputFrequency)
[00:34:13]                   │ debg Find.findByCssSelector('[data-test-subj="mlJobWizardInputFrequency"]') with timeout=10000
[00:34:13]                   │ debg TestSubjects.getAttribute(mlJobWizardInputFrequency, placeholder)
[00:34:13]                   │ debg TestSubjects.find(mlJobWizardInputFrequency)
[00:34:13]                   │ debg Find.findByCssSelector('[data-test-subj="mlJobWizardInputFrequency"]') with timeout=10000
[00:34:13]                   └- ✓ pass  (67ms) "machine learning anomaly detection advanced job with categorization detector and default datafeed settings job creation inputs the frequency"
[00:34:13]                 └-> job creation inputs the scroll size
[00:34:13]                   └-> "before each" hook: global before each
[00:34:13]                   │ debg TestSubjects.exists(mlJobWizardInputScrollSize)
[00:34:13]                   │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="mlJobWizardInputScrollSize"]') with timeout=120000
[00:34:13]                   │ debg TestSubjects.getAttribute(mlJobWizardInputScrollSize, value)
[00:34:13]                   │ debg TestSubjects.find(mlJobWizardInputScrollSize)
[00:34:13]                   │ debg Find.findByCssSelector('[data-test-subj="mlJobWizardInputScrollSize"]') with timeout=10000
[00:34:13]                   │ debg TestSubjects.getAttribute(mlJobWizardInputScrollSize, placeholder)
[00:34:13]                   │ debg TestSubjects.find(mlJobWizardInputScrollSize)
[00:34:13]                   │ debg Find.findByCssSelector('[data-test-subj="mlJobWizardInputScrollSize"]') with timeout=10000
[00:34:13]                   └- ✓ pass  (68ms) "machine learning anomaly detection advanced job with categorization detector and default datafeed settings job creation inputs the scroll size"
[00:34:13]                 └-> job creation pre-fills the time field
[00:34:13]                   └-> "before each" hook: global before each
[00:34:13]                   │ debg TestSubjects.exists(mlTimeFieldNameSelect > comboBoxInput)
[00:34:13]                   │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="mlTimeFieldNameSelect"] [data-test-subj="comboBoxInput"]') with timeout=120000
[00:34:13]                   │ debg comboBox.getComboBoxSelectedOptions, comboBoxSelector: mlTimeFieldNameSelect > comboBoxInput
[00:34:13]                   │ debg TestSubjects.find(mlTimeFieldNameSelect > comboBoxInput)
[00:34:13]                   │ debg Find.findByCssSelector('[data-test-subj="mlTimeFieldNameSelect"] [data-test-subj="comboBoxInput"]') with timeout=10000
[00:34:13]                   └- ✓ pass  (58ms) "machine learning anomaly detection advanced job with categorization detector and default datafeed settings job creation pre-fills the time field"
[00:34:13]                 └-> job creation displays the pick fields step
[00:34:13]                   └-> "before each" hook: global before each
[00:34:13]                   │ debg TestSubjects.exists(mlJobWizardNavButtonNext)
[00:34:13]                   │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="mlJobWizardNavButtonNext"]') with timeout=120000
[00:34:13]                   │ debg TestSubjects.clickWhenNotDisabled(mlJobWizardNavButtonNext)
[00:34:13]                   │ debg Find.clickByCssSelectorWhenNotDisabled('[data-test-subj="mlJobWizardNavButtonNext"]') with timeout=10000
[00:34:13]                   │ debg Find.findByCssSelector('[data-test-subj="mlJobWizardNavButtonNext"]') with timeout=10000
[00:34:13]                   │ debg TestSubjects.exists(mlJobWizardStepTitlePickFields)
[00:34:13]                   │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="mlJobWizardStepTitlePickFields"]') with timeout=120000
[00:34:13]                   └- ✓ pass  (351ms) "machine learning anomaly detection advanced job with categorization detector and default datafeed settings job creation displays the pick fields step"
[00:34:13]                 └-> job creation selects the categorization field
[00:34:13]                   └-> "before each" hook: global before each
[00:34:13]                   │ debg TestSubjects.exists(mlCategorizationFieldNameSelect > comboBoxInput)
[00:34:13]                   │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="mlCategorizationFieldNameSelect"] [data-test-subj="comboBoxInput"]') with timeout=120000
[00:34:14]                   │ debg comboBox.set, comboBoxSelector: mlCategorizationFieldNameSelect > comboBoxInput
[00:34:14]                   │ debg TestSubjects.find(mlCategorizationFieldNameSelect > comboBoxInput)
[00:34:14]                   │ debg Find.findByCssSelector('[data-test-subj="mlCategorizationFieldNameSelect"] [data-test-subj="comboBoxInput"]') with timeout=10000
[00:34:14]                   │ debg comboBox.setElement, value: products.product_name
[00:34:14]                   │ debg comboBox.isOptionSelected, value: products.product_name
[00:34:16]                   │ debg TestSubjects.exists(~comboBoxOptionsList)
[00:34:16]                   │ debg Find.existsByDisplayedByCssSelector('[data-test-subj~="comboBoxOptionsList"]') with timeout=2500
[00:34:16]                   │ debg Find.allByCssSelector('.euiFilterSelectItem[title^="products.product_name"]') with timeout=2500
[00:34:16]                   │ debg TestSubjects.exists(~comboBoxOptionsList)
[00:34:16]                   │ debg Find.existsByDisplayedByCssSelector('[data-test-subj~="comboBoxOptionsList"]') with timeout=2500
[00:34:19]                   │ debg --- retry.tryForTime error: [data-test-subj~="comboBoxOptionsList"] is not displayed
[00:34:19]                   │ debg comboBox.getComboBoxSelectedOptions, comboBoxSelector: mlCategorizationFieldNameSelect > comboBoxInput
[00:34:19]                   │ debg TestSubjects.find(mlCategorizationFieldNameSelect > comboBoxInput)
[00:34:19]                   │ debg Find.findByCssSelector('[data-test-subj="mlCategorizationFieldNameSelect"] [data-test-subj="comboBoxInput"]') with timeout=10000
[00:34:19]                   └- ✓ pass  (5.9s) "machine learning anomaly detection advanced job with categorization detector and default datafeed settings job creation selects the categorization field"
[00:34:19]                 └-> job creation selects the summary count field
[00:34:19]                   └-> "before each" hook: global before each
[00:34:19]                   │ debg TestSubjects.exists(mlSummaryCountFieldNameSelect > comboBoxInput)
[00:34:19]                   │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="mlSummaryCountFieldNameSelect"] [data-test-subj="comboBoxInput"]') with timeout=120000
[00:34:19]                   │ debg comboBox.getComboBoxSelectedOptions, comboBoxSelector: mlSummaryCountFieldNameSelect > comboBoxInput
[00:34:19]                   │ debg TestSubjects.find(mlSummaryCountFieldNameSelect > comboBoxInput)
[00:34:19]                   │ debg Find.findByCssSelector('[data-test-subj="mlSummaryCountFieldNameSelect"] [data-test-subj="comboBoxInput"]') with timeout=10000
[00:34:19]                   └- ✓ pass  (56ms) "machine learning anomaly detection advanced job with categorization detector and default datafeed settings job creation selects the summary count field"
[00:34:19]                 └-> job creation adds detectors
[00:34:19]                   └-> "before each" hook: global before each
[00:34:19]                   │ debg TestSubjects.click(mlAddDetectorButton)
[00:34:19]                   │ debg Find.clickByCssSelector('[data-test-subj="mlAddDetectorButton"]') with timeout=10000
[00:34:19]                   │ debg Find.findByCssSelector('[data-test-subj="mlAddDetectorButton"]') with timeout=10000
[00:34:20]                   │ debg TestSubjects.exists(mlCreateDetectorModal)
[00:34:20]                   │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="mlCreateDetectorModal"]') with timeout=5000
[00:34:20]                   │ debg TestSubjects.exists(mlAdvancedFunctionSelect > comboBoxInput)
[00:34:20]                   │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="mlAdvancedFunctionSelect"] [data-test-subj="comboBoxInput"]') with timeout=120000
[00:34:20]                   │ debg comboBox.getComboBoxSelectedOptions, comboBoxSelector: mlAdvancedFunctionSelect > comboBoxInput
[00:34:20]                   │ debg TestSubjects.find(mlAdvancedFunctionSelect > comboBoxInput)
[00:34:20]                   │ debg Find.findByCssSelector('[data-test-subj="mlAdvancedFunctionSelect"] [data-test-subj="comboBoxInput"]') with timeout=10000
[00:34:20]                   │ debg TestSubjects.exists(mlAdvancedFieldSelect > comboBoxInput)
[00:34:20]                   │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="mlAdvancedFieldSelect"] [data-test-subj="comboBoxInput"]') with timeout=120000
[00:34:20]                   │ debg comboBox.getComboBoxSelectedOptions, comboBoxSelector: mlAdvancedFieldSelect > comboBoxInput
[00:34:20]                   │ debg TestSubjects.find(mlAdvancedFieldSelect > comboBoxInput)
[00:34:20]                   │ debg Find.findByCssSelector('[data-test-subj="mlAdvancedFieldSelect"] [data-test-subj="comboBoxInput"]') with timeout=10000
[00:34:20]                   │ debg TestSubjects.exists(mlAdvancedByFieldSelect > comboBoxInput)
[00:34:20]                   │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="mlAdvancedByFieldSelect"] [data-test-subj="comboBoxInput"]') with timeout=120000
[00:34:20]                   │ debg comboBox.getComboBoxSelectedOptions, comboBoxSelector: mlAdvancedByFieldSelect > comboBoxInput
[00:34:20]                   │ debg TestSubjects.find(mlAdvancedByFieldSelect > comboBoxInput)
[00:34:20]                   │ debg Find.findByCssSelector('[data-test-subj="mlAdvancedByFieldSelect"] [data-test-subj="comboBoxInput"]') with timeout=10000
[00:34:20]                   │ debg TestSubjects.exists(mlAdvancedOverFieldSelect > comboBoxInput)
[00:34:20]                   │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="mlAdvancedOverFieldSelect"] [data-test-subj="comboBoxInput"]') with timeout=120000
[00:34:20]                   │ debg comboBox.getComboBoxSelectedOptions, comboBoxSelector: mlAdvancedOverFieldSelect > comboBoxInput
[00:34:20]                   │ debg TestSubjects.find(mlAdvancedOverFieldSelect > comboBoxInput)
[00:34:20]                   │ debg Find.findByCssSelector('[data-test-subj="mlAdvancedOverFieldSelect"] [data-test-subj="comboBoxInput"]') with timeout=10000
[00:34:20]                   │ debg TestSubjects.exists(mlAdvancedPartitionFieldSelect > comboBoxInput)
[00:34:20]                   │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="mlAdvancedPartitionFieldSelect"] [data-test-subj="comboBoxInput"]') with timeout=120000
[00:34:20]                   │ debg comboBox.getComboBoxSelectedOptions, comboBoxSelector: mlAdvancedPartitionFieldSelect > comboBoxInput
[00:34:20]                   │ debg TestSubjects.find(mlAdvancedPartitionFieldSelect > comboBoxInput)
[00:34:20]                   │ debg Find.findByCssSelector('[data-test-subj="mlAdvancedPartitionFieldSelect"] [data-test-subj="comboBoxInput"]') with timeout=10000
[00:34:20]                   │ debg TestSubjects.exists(mlAdvancedExcludeFrequentSelect > comboBoxInput)
[00:34:20]                   │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="mlAdvancedExcludeFrequentSelect"] [data-test-subj="comboBoxInput"]') with timeout=120000
[00:34:20]                   │ debg comboBox.getComboBoxSelectedOptions, comboBoxSelector: mlAdvancedExcludeFrequentSelect > comboBoxInput
[00:34:20]                   │ debg TestSubjects.find(mlAdvancedExcludeFrequentSelect > comboBoxInput)
[00:34:20]                   │ debg Find.findByCssSelector('[data-test-subj="mlAdvancedExcludeFrequentSelect"] [data-test-subj="comboBoxInput"]') with timeout=10000
[00:34:20]                   │ debg TestSubjects.exists(mlAdvancedDetectorDescriptionInput)
[00:34:20]                   │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="mlAdvancedDetectorDescriptionInput"]') with timeout=120000
[00:34:20]                   │ debg TestSubjects.getAttribute(mlAdvancedDetectorDescriptionInput, value)
[00:34:20]                   │ debg TestSubjects.find(mlAdvancedDetectorDescriptionInput)
[00:34:20]                   │ debg Find.findByCssSelector('[data-test-subj="mlAdvancedDetectorDescriptionInput"]') with timeout=10000
[00:34:20]                   │ debg comboBox.set, comboBoxSelector: mlAdvancedFunctionSelect > comboBoxInput
[00:34:20]                   │ debg TestSubjects.find(mlAdvancedFunctionSelect > comboBoxInput)
[00:34:20]                   │ debg Find.findByCssSelector('[data-test-subj="mlAdvancedFunctionSelect"] [data-test-subj="comboBoxInput"]') with timeout=10000
[00:34:20]                   │ debg comboBox.setElement, value: count
[00:34:20]                   │ debg comboBox.isOptionSelected, value: count
[00:34:22]                   │ debg TestSubjects.exists(~comboBoxOptionsList)
[00:34:22]                   │ debg Find.existsByDisplayedByCssSelector('[data-test-subj~="comboBoxOptionsList"]') with timeout=2500
[00:34:22]                   │ debg Find.allByCssSelector('.euiFilterSelectItem[title^="count"]') with timeout=2500
[00:34:23]                   │ debg TestSubjects.exists(~comboBoxOptionsList)
[00:34:23]                   │ debg Find.existsByDisplayedByCssSelector('[data-test-subj~="comboBoxOptionsList"]') with timeout=2500
[00:34:25]                   │ debg --- retry.tryForTime error: [data-test-subj~="comboBoxOptionsList"] is not displayed
[00:34:26]                   │ debg comboBox.getComboBoxSelectedOptions, comboBoxSelector: mlAdvancedFunctionSelect > comboBoxInput
[00:34:26]                   │ debg TestSubjects.find(mlAdvancedFunctionSelect > comboBoxInput)
[00:34:26]                   │ debg Find.findByCssSelector('[data-test-subj="mlAdvancedFunctionSelect"] [data-test-subj="comboBoxInput"]') with timeout=10000
[00:34:26]                   │ debg comboBox.set, comboBoxSelector: mlAdvancedByFieldSelect > comboBoxInput
[00:34:26]                   │ debg TestSubjects.find(mlAdvancedByFieldSelect > comboBoxInput)
[00:34:26]                   │ debg Find.findByCssSelector('[data-test-subj="mlAdvancedByFieldSelect"] [data-test-subj="comboBoxInput"]') with timeout=10000
[00:34:26]                   │ debg comboBox.setElement, value: mlcategory
[00:34:26]                   │ debg comboBox.isOptionSelected, value: mlcategory
[00:34:28]                   │ debg TestSubjects.exists(~comboBoxOptionsList)
[00:34:28]                   │ debg Find.existsByDisplayedByCssSelector('[data-test-subj~="comboBoxOptionsList"]') with timeout=2500
[00:34:28]                   │ debg Find.allByCssSelector('.euiFilterSelectItem[title^="mlcategory"]') with timeout=2500
[00:34:28]                   │ debg TestSubjects.exists(~comboBoxOptionsList)
[00:34:28]                   │ debg Find.existsByDisplayedByCssSelector('[data-test-subj~="comboBoxOptionsList"]') with timeout=2500
[00:34:31]                   │ debg --- retry.tryForTime error: [data-test-subj~="comboBoxOptionsList"] is not displayed
[00:34:31]                   │ debg comboBox.getComboBoxSelectedOptions, comboBoxSelector: mlAdvancedByFieldSelect > comboBoxInput
[00:34:31]                   │ debg TestSubjects.find(mlAdvancedByFieldSelect > comboBoxInput)
[00:34:31]                   │ debg Find.findByCssSelector('[data-test-subj="mlAdvancedByFieldSelect"] [data-test-subj="comboBoxInput"]') with timeout=10000
[00:34:31]                   │ debg TestSubjects.clickWhenNotDisabled(mlCreateDetectorModalSaveButton)
[00:34:31]                   │ debg Find.clickByCssSelectorWhenNotDisabled('[data-test-subj="mlCreateDetectorModalSaveButton"]') with timeout=10000
[00:34:31]                   │ debg Find.findByCssSelector('[data-test-subj="mlCreateDetectorModalSaveButton"]') with timeout=10000
[00:34:32]                   │ debg TestSubjects.missingOrFail(mlCreateDetectorModal)
[00:34:32]                   │ debg Find.waitForDeletedByCssSelector('[data-test-subj="mlCreateDetectorModal"]') with timeout=2500
[00:34:32]                   └- ✓ pass  (12.6s) "machine learning anomaly detection advanced job with categorization detector and default datafeed settings job creation adds detectors"
[00:34:32]                 └-> job creation displays detector entries
[00:34:32]                   └-> "before each" hook: global before each
[00:34:32]                   │ debg TestSubjects.exists(mlAdvancedDetector 0)
[00:34:32]                   │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="mlAdvancedDetector 0"]') with timeout=120000
[00:34:32]                   │ debg TestSubjects.getVisibleText(mlAdvancedDetector 0 > mlDetectorIdentifier)
[00:34:32]                   │ debg TestSubjects.find(mlAdvancedDetector 0 > mlDetectorIdentifier)
[00:34:32]                   │ debg Find.findByCssSelector('[data-test-subj="mlAdvancedDetector 0"] [data-test-subj="mlDetectorIdentifier"]') with timeout=10000
[00:34:32]                   └- ✓ pass  (91ms) "machine learning anomaly detection advanced job with categorization detector and default datafeed settings job creation displays detector entries"
[00:34:32]                 └-> job creation inputs the bucket span
[00:34:32]                   └-> "before each" hook: global before each
[00:34:32]                   │ debg TestSubjects.exists(mlJobWizardInputBucketSpan)
[00:34:32]                   │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="mlJobWizardInputBucketSpan"]') with timeout=120000
[00:34:32]                   │ debg TestSubjects.setValueWithChecks(mlJobWizardInputBucketSpan, 4h)
[00:34:32]                   │ debg TestSubjects.click(mlJobWizardInputBucketSpan)
[00:34:32]                   │ debg Find.clickByCssSelector('[data-test-subj="mlJobWizardInputBucketSpan"]') with timeout=10000
[00:34:32]                   │ debg Find.findByCssSelector('[data-test-subj="mlJobWizardInputBucketSpan"]') with timeout=10000
[00:34:33]                   │ debg TestSubjects.getAttribute(mlJobWizardInputBucketSpan, value)
[00:34:33]                   │ debg TestSubjects.find(mlJobWizardInputBucketSpan)
[00:34:33]                   │ debg Find.findByCssSelector('[data-test-subj="mlJobWizardInputBucketSpan"]') with timeout=10000
[00:34:33]                   └- ✓ pass  (579ms) "machine learning anomaly detection advanced job with categorization detector and default datafeed settings job creation inputs the bucket span"
[00:34:33]                 └-> job creation inputs influencers
[00:34:33]                   └-> "before each" hook: global before each
[00:34:33]                   │ debg TestSubjects.exists(mlInfluencerSelect > comboBoxInput)
[00:34:33]                   │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="mlInfluencerSelect"] [data-test-subj="comboBoxInput"]') with timeout=120000
[00:34:33]                   │ debg comboBox.getComboBoxSelectedOptions, comboBoxSelector: mlInfluencerSelect > comboBoxInput
[00:34:33]                   │ debg TestSubjects.find(mlInfluencerSelect > comboBoxInput)
[00:34:33]                   │ debg Find.findByCssSelector('[data-test-subj="mlInfluencerSelect"] [data-test-subj="comboBoxInput"]') with timeout=10000
[00:34:33]                   │ debg comboBox.set, comboBoxSelector: mlInfluencerSelect > comboBoxInput
[00:34:33]                   │ debg TestSubjects.find(mlInfluencerSelect > comboBoxInput)
[00:34:33]                   │ debg Find.findByCssSelector('[data-test-subj="mlInfluencerSelect"] [data-test-subj="comboBoxInput"]') with timeout=10000
[00:34:33]                   │ debg comboBox.setElement, value: mlcategory
[00:34:33]                   │ debg comboBox.isOptionSelected, value: mlcategory
[00:34:35]                   │ debg TestSubjects.exists(~comboBoxOptionsList)
[00:34:35]                   │ debg Find.existsByDisplayedByCssSelector('[data-test-subj~="comboBoxOptionsList"]') with timeout=2500
[00:34:35]                   │ debg Find.allByCssSelector('.euiFilterSelectItem[title^="mlcategory"]') with timeout=2500
[00:34:35]                   │ debg TestSubjects.exists(~comboBoxOptionsList)
[00:34:35]                   │ debg Find.existsByDisplayedByCssSelector('[data-test-subj~="comboBoxOptionsList"]') with timeout=2500
[00:34:36]                   │ debg comboBox.getComboBoxSelectedOptions, comboBoxSelector: mlInfluencerSelect > comboBoxInput
[00:34:36]                   │ debg TestSubjects.find(mlInfluencerSelect > comboBoxInput)
[00:34:36]                   │ debg Find.findByCssSelector('[data-test-subj="mlInfluencerSelect"] [data-test-subj="comboBoxInput"]') with timeout=10000
[00:34:36]                   └- ✓ pass  (2.8s) "machine learning anomaly detection advanced job with categorization detector and default datafeed settings job creation inputs influencers"
[00:34:36]                 └-> job creation inputs the model memory limit
[00:34:36]                   └-> "before each" hook: global before each
[00:34:36]                   │ debg TestSubjects.exists(mlJobWizardInputModelMemoryLimit)
[00:34:36]                   │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="mlJobWizardInputModelMemoryLimit"]') with timeout=120000
[00:34:36]                   │ debg TestSubjects.setValueWithChecks(mlJobWizardInputModelMemoryLimit, 100mb)
[00:34:36]                   │ debg TestSubjects.click(mlJobWizardInputModelMemoryLimit)
[00:34:36]                   │ debg Find.clickByCssSelector('[data-test-subj="mlJobWizardInputModelMemoryLimit"]') with timeout=10000
[00:34:36]                   │ debg Find.findByCssSelector('[data-test-subj="mlJobWizardInputModelMemoryLimit"]') with timeout=10000
[00:34:36]                   │ debg TestSubjects.getAttribute(mlJobWizardInputModelMemoryLimit, value)
[00:34:36]                   │ debg TestSubjects.find(mlJobWizardInputModelMemoryLimit)
[00:34:36]                   │ debg Find.findByCssSelector('[data-test-subj="mlJobWizardInputModelMemoryLimit"]') with timeout=10000
[00:34:36]                   └- ✓ pass  (503ms) "machine learning anomaly detection advanced job with categorization detector and default datafeed settings job creation inputs the model memory limit"
[00:34:36]                 └-> job creation displays the job details step
[00:34:36]                   └-> "before each" hook: global before each
[00:34:36]                   │ debg TestSubjects.exists(mlJobWizardNavButtonNext)
[00:34:36]                   │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="mlJobWizardNavButtonNext"]') with timeout=120000
[00:34:36]                   │ debg TestSubjects.clickWhenNotDisabled(mlJobWizardNavButtonNext)
[00:34:36]                   │ debg Find.clickByCssSelectorWhenNotDisabled('[data-test-subj="mlJobWizardNavButtonNext"]') with timeout=10000
[00:34:36]                   │ debg Find.findByCssSelector('[data-test-subj="mlJobWizardNavButtonNext"]') with timeout=10000
[00:34:37]                   │ debg TestSubjects.exists(mlJobWizardStepTitleJobDetails)
[00:34:37]                   │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="mlJobWizardStepTitleJobDetails"]') with timeout=120000
[00:34:37]                   └- ✓ pass  (792ms) "machine learning anomaly detection advanced job with categorization detector and default datafeed settings job creation displays the job details step"
[00:34:37]                 └-> job creation inputs the job id
[00:34:37]                   └-> "before each" hook: global before each
[00:34:37]                   │ debg TestSubjects.exists(mlJobWizardInputJobId)
[00:34:37]                   │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="mlJobWizardInputJobId"]') with timeout=120000
[00:34:37]                   │ debg TestSubjects.setValueWithChecks(mlJobWizardInputJobId, ec_advanced_2_1580398673559)
[00:34:37]                   │ debg TestSubjects.click(mlJobWizardInputJobId)
[00:34:37]                   │ debg Find.clickByCssSelector('[data-test-subj="mlJobWizardInputJobId"]') with timeout=10000
[00:34:37]                   │ debg Find.findByCssSelector('[data-test-subj="mlJobWizardInputJobId"]') with timeout=10000
[00:34:38]                   │ debg TestSubjects.getAttribute(mlJobWizardInputJobId, value)
[00:34:38]                   │ debg TestSubjects.find(mlJobWizardInputJobId)
[00:34:38]                   │ debg Find.findByCssSelector('[data-test-subj="mlJobWizardInputJobId"]') with timeout=10000
[00:34:38]                   └- ✓ pass  (1.4s) "machine learning anomaly detection advanced job with categorization detector and default datafeed settings job creation inputs the job id"
[00:34:38]                 └-> job creation inputs the job description
[00:34:38]                   └-> "before each" hook: global before each
[00:34:38]                   │ debg TestSubjects.exists(mlJobWizardInputJobDescription)
[00:34:38]                   │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="mlJobWizardInputJobDescription"]') with timeout=120000
[00:34:38]                   │ debg TestSubjects.setValueWithChecks(mlJobWizardInputJobDescription, Create advanced job from ecommerce dataset with a categorization detector and default datafeed settings)
[00:34:38]                   │ debg TestSubjects.click(mlJobWizardInputJobDescription)
[00:34:38]                   │ debg Find.clickByCssSelector('[data-test-subj="mlJobWizardInputJobDescription"]') with timeout=10000
[00:34:38]                   │ debg Find.findByCssSelector('[data-test-subj="mlJobWizardInputJobDescription"]') with timeout=10000
[00:34:43]                   │ debg TestSubjects.getVisibleText(mlJobWizardInputJobDescription)
[00:34:43]                   │ debg TestSubjects.find(mlJobWizardInputJobDescription)
[00:34:43]                   │ debg Find.findByCssSelector('[data-test-subj="mlJobWizardInputJobDescription"]') with timeout=10000
[00:34:43]                   └- ✓ pass  (4.5s) "machine learning anomaly detection advanced job with categorization detector and default datafeed settings job creation inputs the job description"
[00:34:43]                 └-> job creation inputs job groups
[00:34:43]                   └-> "before each" hook: global before each
[00:34:43]                   │ debg TestSubjects.exists(mlJobWizardComboBoxJobGroups > comboBoxInput)
[00:34:43]                   │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="mlJobWizardComboBoxJobGroups"] [data-test-subj="comboBoxInput"]') with timeout=120000
[00:34:43]                   │ debg comboBox.setCustom, comboBoxSelector: mlJobWizardComboBoxJobGroups > comboBoxInput, value: automated
[00:34:43]                   │ debg TestSubjects.find(mlJobWizardComboBoxJobGroups > comboBoxInput)
[00:34:43]                   │ debg Find.findByCssSelector('[data-test-subj="mlJobWizardComboBoxJobGroups"] [data-test-subj="comboBoxInput"]') with timeout=10000
[00:34:45]                   │ debg TestSubjects.exists(~comboBoxOptionsList)
[00:34:45]                   │ debg Find.existsByDisplayedByCssSelector('[data-test-subj~="comboBoxOptionsList"]') with timeout=2500
[00:34:45]                   │ debg comboBox.getComboBoxSelectedOptions, comboBoxSelector: mlJobWizardComboBoxJobGroups > comboBoxInput
[00:34:45]                   │ debg TestSubjects.find(mlJobWizardComboBoxJobGroups > comboBoxInput)
[00:34:45]                   │ debg Find.findByCssSelector('[data-test-subj="mlJobWizardComboBoxJobGroups"] [data-test-subj="comboBoxInput"]') with timeout=10000
[00:34:45]                   │ debg comboBox.setCustom, comboBoxSelector: mlJobWizardComboBoxJobGroups > comboBoxInput, value: ecommerce
[00:34:45]                   │ debg TestSubjects.find(mlJobWizardComboBoxJobGroups > comboBoxInput)
[00:34:45]                   │ debg Find.findByCssSelector('[data-test-subj="mlJobWizardComboBoxJobGroups"] [data-test-subj="comboBoxInput"]') with timeout=10000
[00:34:48]                   │ debg TestSubjects.exists(~comboBoxOptionsList)
[00:34:48]                   │ debg Find.existsByDisplayedByCssSelector('[data-test-subj~="comboBoxOptionsList"]') with timeout=2500
[00:34:48]                   │ debg comboBox.getComboBoxSelectedOptions, comboBoxSelector: mlJobWizardComboBoxJobGroups > comboBoxInput
[00:34:48]                   │ debg TestSubjects.find(mlJobWizardComboBoxJobGroups > comboBoxInput)
[00:34:48]                   │ debg Find.findByCssSelector('[data-test-subj="mlJobWizardComboBoxJobGroups"] [data-test-subj="comboBoxInput"]') with timeout=10000
[00:34:48]                   │ debg comboBox.setCustom, comboBoxSelector: mlJobWizardComboBoxJobGroups > comboBoxInput, value: advanced
[00:34:48]                   │ debg TestSubjects.find(mlJobWizardComboBoxJobGroups > comboBoxInput)
[00:34:48]                   │ debg Find.findByCssSelector('[data-test-subj="mlJobWizardComboBoxJobGroups"] [data-test-subj="comboBoxInput"]') with timeout=10000
[00:34:50]                   │ debg TestSubjects.exists(~comboBoxOptionsList)
[00:34:50]                   │ debg Find.existsByDisplayedByCssSelector('[data-test-subj~="comboBoxOptionsList"]') with timeout=2500
[00:34:50]                   │ debg comboBox.getComboBoxSelectedOptions, comboBoxSelector: mlJobWizardComboBoxJobGroups > comboBoxInput
[00:34:50]                   │ debg TestSubjects.find(mlJobWizardComboBoxJobGroups > comboBoxInput)
[00:34:50]                   │ debg Find.findByCssSelector('[data-test-subj="mlJobWizardComboBoxJobGroups"] [data-test-subj="comboBoxInput"]') with timeout=10000
[00:34:50]                   │ debg comboBox.getComboBoxSelectedOptions, comboBoxSelector: mlJobWizardComboBoxJobGroups > comboBoxInput
[00:34:50]                   │ debg TestSubjects.find(mlJobWizardComboBoxJobGroups > comboBoxInput)
[00:34:50]                   │ debg Find.findByCssSelector('[data-test-subj="mlJobWizardComboBoxJobGroups"] [data-test-subj="comboBoxInput"]') with timeout=10000
[00:34:50]                   └- ✓ pass  (7.2s) "machine learning anomaly detection advanced job with categorization detector and default datafeed settings job creation inputs job groups"
[00:34:50]                 └-> job creation opens the additional settings section
[00:34:50]                   └-> "before each" hook: global before each
[00:34:50]                   │ debg TestSubjects.exists(mlJobWizardAdditionalSettingsSection)
[00:34:50]                   │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="mlJobWizardAdditionalSettingsSection"]') with timeout=2500
[00:34:50]                   │ debg --- retry.tryForTime error: [data-test-subj="mlJobWizardAdditionalSettingsSection"] is not displayed
[00:34:51]                   │ debg --- retry.tryForTime failed again with the same message...
[00:34:51]                   │ debg --- retry.tryForTime failed again with the same message...
[00:34:52]                   │ debg --- retry.tryForTime failed again with the same message...
[00:34:52]                   │ debg --- retry.tryForTime failed again with the same message...
[00:34:53]                   │ debg TestSubjects.click(mlJobWizardToggleAdditionalSettingsSection)
[00:34:53]                   │ debg Find.clickByCssSelector('[data-test-subj="mlJobWizardToggleAdditionalSettingsSection"]') with timeout=10000
[00:34:53]                   │ debg Find.findByCssSelector('[data-test-subj="mlJobWizardToggleAdditionalSettingsSection"]') with timeout=10000
[00:34:53]                   │ debg TestSubjects.exists(mlJobWizardAdditionalSettingsSection)
[00:34:53]                   │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="mlJobWizardAdditionalSettingsSection"]') with timeout=1000
[00:34:53]                   │ debg --- retry.tryForTime error: [data-test-subj="mlJobWizardAdditionalSettingsSection"] is not displayed
[00:34:53]                   └- ✓ pass  (3.3s) "machine learning anomaly detection advanced job with categorization detector and default datafeed settings job creation opens the additional settings section"
[00:34:53]                 └-> job creation adds a new custom url
[00:34:53]                   └-> "before each" hook: global before each
[00:34:53]                   │ debg TestSubjects.exists(mlJobWizardAdditionalSettingsSection)
[00:34:53]                   │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="mlJobWizardAdditionalSettingsSection"]') with timeout=2500
[00:34:53]                   │ debg TestSubjects.findAll(mlJobEditCustomUrlsList > *)
[00:34:53]                   │ debg Find.allByCssSelector('[data-test-subj="mlJobEditCustomUrlsList"] [data-test-subj="*"]') with timeout=10000
[00:35:03]                   │ debg TestSubjects.exists(mlJobNewCustomUrlFormModal)
[00:35:03]                   │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="mlJobNewCustomUrlFormModal"]') with timeout=2500
[00:35:06]                   │ debg --- retry.tryForTime error: [data-test-subj="mlJobNewCustomUrlFormModal"] is not displayed
[00:35:06]                   │ debg TestSubjects.click(mlJobOpenCustomUrlFormButton)
[00:35:06]                   │ debg Find.clickByCssSelector('[data-test-subj="mlJobOpenCustomUrlFormButton"]') with timeout=10000
[00:35:06]                   │ debg Find.findByCssSelector('[data-test-subj="mlJobOpenCustomUrlFormButton"]') with timeout=10000
[00:35:06]                   │ debg TestSubjects.exists(mlJobNewCustomUrlFormModal)
[00:35:06]                   │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="mlJobNewCustomUrlFormModal"]') with timeout=1000
[00:35:06]                   │ debg --- retry.tryForTime error: [data-test-subj="mlJobNewCustomUrlFormModal"] is not displayed
[00:35:07]                   │ debg TestSubjects.setValue(mlJobCustomUrlLabelInput, check-kibana-dashboard)
[00:35:07]                   │ debg TestSubjects.click(mlJobCustomUrlLabelInput)
[00:35:07]                   │ debg Find.clickByCssSelector('[data-test-subj="mlJobCustomUrlLabelInput"]') with timeout=10000
[00:35:07]                   │ debg Find.findByCssSelector('[data-test-subj="mlJobCustomUrlLabelInput"]') with timeout=10000
[00:35:07]                   │ debg TestSubjects.getAttribute(mlJobCustomUrlLabelInput, value)
[00:35:07]                   │ debg TestSubjects.find(mlJobCustomUrlLabelInput)
[00:35:07]                   │ debg Find.findByCssSelector('[data-test-subj="mlJobCustomUrlLabelInput"]') with timeout=10000
[00:35:07]                   │ debg TestSubjects.click(mlJobAddCustomUrl)
[00:35:07]                   │ debg Find.clickByCssSelector('[data-test-subj="mlJobAddCustomUrl"]') with timeout=10000
[00:35:07]                   │ debg Find.findByCssSelector('[data-test-subj="mlJobAddCustomUrl"]') with timeout=10000
[00:35:08]                   │ debg TestSubjects.missingOrFail(mlJobNewCustomUrlFormModal)
[00:35:08]                   │ debg Find.waitForDeletedByCssSelector('[data-test-subj="mlJobNewCustomUrlFormModal"]') with timeout=10000
[00:35:08]                   │ debg TestSubjects.exists(mlJobEditCustomUrlItem_0)
[00:35:08]                   │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="mlJobEditCustomUrlItem_0"]') with timeout=120000
[00:35:08]                   │ debg TestSubjects.getAttribute(mlJobEditCustomUrlLabelInput_0, value)
[00:35:08]                   │ debg TestSubjects.find(mlJobEditCustomUrlLabelInput_0)
[00:35:08]                   │ debg Find.findByCssSelector('[data-test-subj="mlJobEditCustomUrlLabelInput_0"]') with timeout=10000
[00:35:08]                   └- ✓ pass  (14.9s) "machine learning anomaly detection advanced job with categorization detector and default datafeed settings job creation adds a new custom url"
[00:35:08]                 └-> job creation assigns calendars
[00:35:08]                   └-> "before each" hook: global before each
[00:35:08]                   │ debg TestSubjects.exists(mlJobWizardAdditionalSettingsSection)
[00:35:08]                   │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="mlJobWizardAdditionalSettingsSection"]') with timeout=2500
[00:35:08]                   │ debg comboBox.setCustom, comboBoxSelector: mlJobWizardComboBoxCalendars > comboBoxInput, value: wizard-test-calendar
[00:35:08]                   │ debg TestSubjects.find(mlJobWizardComboBoxCalendars > comboBoxInput)
[00:35:08]                   │ debg Find.findByCssSelector('[data-test-subj="mlJobWizardComboBoxCalendars"] [data-test-subj="comboBoxInput"]') with timeout=10000
[00:35:11]                   │ debg TestSubjects.exists(~comboBoxOptionsList)
[00:35:11]                   │ debg Find.existsByDisplayedByCssSelector('[data-test-subj~="comboBoxOptionsList"]') with timeout=2500
[00:35:11]                   │ debg TestSubjects.exists(mlJobWizardAdditionalSettingsSection)
[00:35:11]                   │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="mlJobWizardAdditionalSettingsSection"]') with timeout=2500
[00:35:11]                   │ debg comboBox.getComboBoxSelectedOptions, comboBoxSelector: mlJobWizardComboBoxCalendars > comboBoxInput
[00:35:11]                   │ debg TestSubjects.find(mlJobWizardComboBoxCalendars > comboBoxInput)
[00:35:11]                   │ debg Find.findByCssSelector('[data-test-subj="mlJobWizardComboBoxCalendars"] [data-test-subj="comboBoxInput"]') with timeout=10000
[00:35:11]                   └- ✓ pass  (2.5s) "machine learning anomaly detection advanced job with categorization detector and default datafeed settings job creation assigns calendars"
[00:35:11]                 └-> job creation displays the model plot switch
[00:35:11]                   └-> "before each" hook: global before each
[00:35:11]                   │ debg TestSubjects.exists(mlJobWizardSwitchModelPlot)
[00:35:11]                   │ debg Find.existsByCssSelector('[data-test-subj="mlJobWizardSwitchModelPlot"]') with timeout=120000
[00:35:11]                   └- ✓ pass  (16ms) "machine learning anomaly detection advanced job with categorization detector and default datafeed settings job creation displays the model plot switch"
[00:35:11]                 └-> job creation enables the dedicated index switch
[00:35:11]                   └-> "before each" hook: global before each
[00:35:11]                   │ debg TestSubjects.exists(mlJobWizardSwitchUseDedicatedIndex)
[00:35:11]                   │ debg Find.existsByCssSelector('[data-test-subj="mlJobWizardSwitchUseDedicatedIndex"]') with timeout=120000
[00:35:11]                   │ debg TestSubjects.getAttribute(mlJobWizardSwitchUseDedicatedIndex, aria-checked)
[00:35:11]                   │ debg TestSubjects.find(mlJobWizardSwitchUseDedicatedIndex)
[00:35:11]                   │ debg Find.findByCssSelector('[data-test-subj="mlJobWizardSwitchUseDedicatedIndex"]') with timeout=10000
[00:35:11]                   │ debg TestSubjects.clickWhenNotDisabled(mlJobWizardSwitchUseDedicatedIndex)
[00:35:11]                   │ debg Find.clickByCssSelectorWhenNotDisabled('[data-test-subj="mlJobWizardSwitchUseDedicatedIndex"]') with timeout=10000
[00:35:11]                   │ debg Find.findByCssSelector('[data-test-subj="mlJobWizardSwitchUseDedicatedIndex"]') with timeout=10000
[00:35:11]                   │ debg TestSubjects.getAttribute(mlJobWizardSwitchUseDedicatedIndex, aria-checked)
[00:35:11]                   │ debg TestSubjects.find(mlJobWizardSwitchUseDedicatedIndex)
[00:35:11]                   │ debg Find.findByCssSelector('[data-test-subj="mlJobWizardSwitchUseDedicatedIndex"]') with timeout=10000
[00:35:11]                   └- ✓ pass  (196ms) "machine learning anomaly detection advanced job with categorization detector and default datafeed settings job creation enables the dedicated index switch"
[00:35:11]                 └-> job creation displays the validation step
[00:35:11]                   └-> "before each" hook: global before each
[00:35:11]                   │ debg TestSubjects.exists(mlJobWizardNavButtonNext)
[00:35:11]                   │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="mlJobWizardNavButtonNext"]') with timeout=120000
[00:35:11]                   │ debg TestSubjects.clickWhenNotDisabled(mlJobWizardNavButtonNext)
[00:35:11]                   │ debg Find.clickByCssSelectorWhenNotDisabled('[data-test-subj="mlJobWizardNavButtonNext"]') with timeout=10000
[00:35:11]                   │ debg Find.findByCssSelector('[data-test-subj="mlJobWizardNavButtonNext"]') with timeout=10000
[00:35:11]                   │ debg TestSubjects.exists(mlJobWizardStepTitleValidation)
[00:35:11]                   │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="mlJobWizardStepTitleValidation"]') with timeout=120000
[00:35:12]                   └- ✓ pass  (680ms) "machine learning anomaly detection advanced job with categorization detector and default datafeed settings job creation displays the validation step"
[00:35:12]                 └-> job creation displays the summary step
[00:35:12]                   └-> "before each" hook: global before each
[00:35:12]                   │ debg TestSubjects.exists(mlJobWizardNavButtonNext)
[00:35:12]                   │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="mlJobWizardNavButtonNext"]') with timeout=120000
[00:35:12]                   │ debg TestSubjects.clickWhenNotDisabled(mlJobWizardNavButtonNext)
[00:35:12]                   │ debg Find.clickByCssSelectorWhenNotDisabled('[data-test-subj="mlJobWizardNavButtonNext"]') with timeout=10000
[00:35:12]                   │ debg Find.findByCssSelector('[data-test-subj="mlJobWizardNavButtonNext"]') with timeout=10000
[00:35:12]                   │ debg TestSubjects.exists(mlJobWizardStepTitleSummary)
[00:35:12]                   │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="mlJobWizardStepTitleSummary"]') with timeout=120000
[00:35:12]                   └- ✓ pass  (314ms) "machine learning anomaly detection advanced job with categorization detector and default datafeed settings job creation displays the summary step"
[00:35:12]                 └-> job creation creates the job and finishes processing
[00:35:12]                   └-> "before each" hook: global before each
[00:35:12]                   │ debg TestSubjects.exists(mlJobWizardButtonCreateJob)
[00:35:12]                   │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="mlJobWizardButtonCreateJob"]') with timeout=120000
[00:35:12]                   │ debg TestSubjects.clickWhenNotDisabled(mlJobWizardButtonCreateJob)
[00:35:12]                   │ debg Find.clickByCssSelectorWhenNotDisabled('[data-test-subj="mlJobWizardButtonCreateJob"]') with timeout=10000
[00:35:12]                   │ debg Find.findByCssSelector('[data-test-subj="mlJobWizardButtonCreateJob"]') with timeout=10000
[00:35:12]                   │ debg TestSubjects.exists(mlStartDatafeedModal)
[00:35:12]                   │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="mlStartDatafeedModal"]') with timeout=10000
[00:35:12]                   │ info [o.e.c.m.MetaDataCreateIndexService] [kibana-ci-immutable-oraclelinux-tests-xl-1580397070958261496] [.ml-anomalies-custom-ec_advanced_2_1580398673559] creating index, cause [api], templates [.ml-anomalies-], shards [1]/[1], mappings [_doc]
[00:35:12]                   │ info [o.e.c.r.a.AllocationService] [kibana-ci-immutable-oraclelinux-tests-xl-1580397070958261496] updating number_of_replicas to [0] for indices [.ml-anomalies-custom-ec_advanced_2_1580398673559]
[00:35:12]                   │ info [o.e.c.r.a.AllocationService] [kibana-ci-immutable-oraclelinux-tests-xl-1580397070958261496] Cluster health status changed from [YELLOW] to [GREEN] (reason: [shards started [[.ml-anomalies-custom-ec_advanced_2_1580398673559][0]]]).
[00:35:13]                   │ debg browser[INFO] http://localhost:6141/bundles/54.bundle.js 2:591513 "Response for job query:" Object
[00:35:13]                   │ debg browser[INFO] http://localhost:6141/bundles/54.bundle.js 2:601084 "checkSaveResponse(): save successful"
[00:35:13]                   │ debg TestSubjects.exists(mlStartDatafeedModal)
[00:35:13]                   │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="mlStartDatafeedModal"]') with timeout=5000
[00:35:13]                   │ debg TestSubjects.click(mlStartDatafeedModalStartButton)
[00:35:13]                   │ debg Find.clickByCssSelector('[data-test-subj="mlStartDatafeedModalStartButton"]') with timeout=10000
[00:35:13]                   │ debg Find.findByCssSelector('[data-test-subj="mlStartDatafeedModalStartButton"]') with timeout=10000
[00:35:13]                   │ debg TestSubjects.missingOrFail(mlStartDatafeedModal)
[00:35:13]                   │ debg Find.waitForDeletedByCssSelector('[data-test-subj="mlStartDatafeedModal"]') with timeout=2500
[00:35:13]                   │ info [o.e.x.m.j.p.a.AutodetectProcessManager] [kibana-ci-immutable-oraclelinux-tests-xl-1580397070958261496] Opening job [ec_advanced_2_1580398673559]
[00:35:13]                   │ info [o.e.x.m.j.p.a.AutodetectProcessManager] [kibana-ci-immutable-oraclelinux-tests-xl-1580397070958261496] [ec_advanced_2_1580398673559] Loading model snapshot [N/A], job latest_record_timestamp [N/A]
[00:35:13]                   │ info [o.e.x.m.p.l.CppLogMessageHandler] [kibana-ci-immutable-oraclelinux-tests-xl-1580397070958261496] [ec_advanced_2_1580398673559] [autodetect/70648] [CResourceMonitor.cc@71] Setting model memory limit to 100 MB
[00:35:13]                   │ info [o.e.x.m.j.p.a.AutodetectProcessManager] [kibana-ci-immutable-oraclelinux-tests-xl-1580397070958261496] Successfully set job state to [opened] for job [ec_advanced_2_1580398673559]
[00:35:13]                   │ info [o.e.x.m.d.DatafeedJob] [kibana-ci-immutable-oraclelinux-tests-xl-1580397070958261496] [ec_advanced_2_1580398673559] Datafeed started (from: 1970-01-01T00:00:00.000Z to: 2020-01-30T16:13:08.201Z) with frequency [600000ms]
[00:35:13]                   │ debg Waiting up to 120000ms for datafeed state to be stopped...
[00:35:13]                   │ debg Fetching datafeed state for datafeed datafeed-ec_advanced_2_1580398673559
[00:35:13]                   │ debg --- retry.waitForWithTimeout error: expected job state to be stopped but got started
[00:35:14]                   │ info [o.e.c.m.MetaDataMappingService] [kibana-ci-immutable-oraclelinux-tests-xl-1580397070958261496] [.ml-anomalies-custom-ec_advanced_2_1580398673559/y5-VMHykTIu_2ZV9qjinng] update_mapping [_doc]
[00:35:14]                   │ debg Fetching datafeed state for datafeed datafeed-ec_advanced_2_1580398673559
[00:35:14]                   │ debg --- retry.waitForWithTimeout failed again with the same message...
[00:35:14]                   │ debg Fetching datafeed state for datafeed datafeed-ec_advanced_2_1580398673559
[00:35:15]                   │ debg --- retry.waitForWithTimeout failed again with the same message...
[00:35:15]                   │ debg Fetching datafeed state for datafeed datafeed-ec_advanced_2_1580398673559
[00:35:15]                   │ debg --- retry.waitForWithTimeout failed again with the same message...
[00:35:16]                   │ debg Fetching datafeed state for datafeed datafeed-ec_advanced_2_1580398673559
[00:35:16]                   │ debg --- retry.waitForWithTimeout failed again with the same message...
[00:35:16]                   │ debg Fetching datafeed state for datafeed datafeed-ec_advanced_2_1580398673559
[00:35:16]                   │ debg --- retry.waitForWithTimeout failed again with the same message...
[00:35:17]                   │ debg Fetching datafeed state for datafeed datafeed-ec_advanced_2_1580398673559
[00:35:17]                   │ debg --- retry.waitForWithTimeout failed again with the same message...
[00:35:17]                   │ debg Fetching datafeed state for datafeed datafeed-ec_advanced_2_1580398673559
[00:35:17]                   │ debg --- retry.waitForWithTimeout failed again with the same message...
[00:35:18]                   │ debg Fetching datafeed state for datafeed datafeed-ec_advanced_2_1580398673559
[00:35:18]                   │ debg --- retry.waitForWithTimeout failed again with the same message...
[00:35:18]                   │ debg Fetching datafeed state for datafeed datafeed-ec_advanced_2_1580398673559
[00:35:18]                   │ debg --- retry.waitForWithTimeout failed again with the same message...
[00:35:19]                   │ debg Fetching datafeed state for datafeed datafeed-ec_advanced_2_1580398673559
[00:35:19]                   │ debg --- retry.waitForWithTimeout failed again with the same message...
[00:35:19]                   │ debg Fetching datafeed state for datafeed datafeed-ec_advanced_2_1580398673559
[00:35:19]                   │ debg --- retry.waitForWithTimeout failed again with the same message...
[00:35:20]                   │ debg Fetching datafeed state for datafeed datafeed-ec_advanced_2_1580398673559
[00:35:20]                   │ debg --- retry.waitForWithTimeout failed again with the same message...
[00:35:20]                   │ debg Fetching datafeed state for datafeed datafeed-ec_advanced_2_1580398673559
[00:35:20]                   │ debg --- retry.waitForWithTimeout failed again with the same message...
[00:35:21]                   │ debg Fetching datafeed state for datafeed datafeed-ec_advanced_2_1580398673559
[00:35:21]                   │ debg --- retry.waitForWithTimeout failed again with the same message...
[00:35:21]                   │ debg Fetching datafeed state for datafeed datafeed-ec_advanced_2_1580398673559
[00:35:21]                   │ debg --- retry.waitForWithTimeout failed again with the same message...
[00:35:22]                   │ debg Fetching datafeed state for datafeed datafeed-ec_advanced_2_1580398673559
[00:35:22]                   │ debg --- retry.waitForWithTimeout failed again with the same message...
[00:35:22]                   │ debg Fetching datafeed state for datafeed datafeed-ec_advanced_2_1580398673559
[00:35:22]                   │ debg --- retry.waitForWithTimeout failed again with the same message...
[00:35:23]                   │ debg Fetching datafeed state for datafeed datafeed-ec_advanced_2_1580398673559
[00:35:23]                   │ debg --- retry.waitForWithTimeout failed again with the same message...
[00:35:23]                   │ debg Fetching datafeed state for datafeed datafeed-ec_advanced_2_1580398673559
[00:35:23]                   │ debg --- retry.waitForWithTimeout failed again with the same message...
[00:35:24]                   │ debg Fetching datafeed state for datafeed datafeed-ec_advanced_2_1580398673559
[00:35:24]                   │ debg --- retry.waitForWithTimeout failed again with the same message...
[00:35:24]                   │ debg Fetching datafeed state for datafeed datafeed-ec_advanced_2_1580398673559
[00:35:24]                   │ debg --- retry.waitForWithTimeout failed again with the same message...
[00:35:25]                   │ debg Fetching datafeed state for datafeed datafeed-ec_advanced_2_1580398673559
[00:35:25]                   │ debg --- retry.waitForWithTimeout failed again with the same message...
[00:35:25]                   │ debg Fetching datafeed state for datafeed datafeed-ec_advanced_2_1580398673559
[00:35:25]                   │ debg --- retry.waitForWithTimeout failed again with the same message...
[00:35:26]                   │ debg Fetching datafeed state for datafeed datafeed-ec_advanced_2_1580398673559
[00:35:26]                   │ debg --- retry.waitForWithTimeout failed again with the same message...
[00:35:26]                   │ debg Fetching datafeed state for datafeed datafeed-ec_advanced_2_1580398673559
[00:35:26]                   │ debg --- retry.waitForWithTimeout failed again with the same message...
[00:35:27]                   │ debg Fetching datafeed state for datafeed datafeed-ec_advanced_2_1580398673559
[00:35:27]                   │ debg --- retry.waitForWithTimeout failed again with the same message...
[00:35:27]                   │ debg Fetching datafeed state for datafeed datafeed-ec_advanced_2_1580398673559
[00:35:27]                   │ debg --- retry.waitForWithTimeout failed again with the same message...
[00:35:28]                   │ debg Fetching datafeed state for datafeed datafeed-ec_advanced_2_1580398673559
[00:35:28]                   │ debg --- retry.waitForWithTimeout failed again with the same message...
[00:35:28]                   │ debg Fetching datafeed state for datafeed datafeed-ec_advanced_2_1580398673559
[00:35:28]                   │ debg --- retry.waitForWithTimeout failed again with the same message...
[00:35:29]                   │ debg Fetching datafeed state for datafeed datafeed-ec_advanced_2_1580398673559
[00:35:29]                   │ debg --- retry.waitForWithTimeout failed again with the same message...
[00:35:29]                   │ debg Fetching datafeed state for datafeed datafeed-ec_advanced_2_1580398673559
[00:35:29]                   │ debg --- retry.waitForWithTimeout failed again with the same message...
[00:35:30]                   │ debg Fetching datafeed state for datafeed datafeed-ec_advanced_2_1580398673559
[00:35:30]                   │ debg --- retry.waitForWithTimeout failed again with the same message...
[00:35:30]                   │ debg Fetching datafeed state for datafeed datafeed-ec_advanced_2_1580398673559
[00:35:30]                   │ debg --- retry.waitForWithTimeout failed again with the same message...
[00:35:31]                   │ debg Fetching datafeed state for datafeed datafeed-ec_advanced_2_1580398673559
[00:35:31]                   │ debg --- retry.waitForWithTimeout failed again with the same message...
[00:35:31]                   │ debg Fetching datafeed state for datafeed datafeed-ec_advanced_2_1580398673559
[00:35:31]                   │ debg --- retry.waitForWithTimeout failed again with the same message...
[00:35:32]                   │ debg Fetching datafeed state for datafeed datafeed-ec_advanced_2_1580398673559
[00:35:32]                   │ debg --- retry.waitForWithTimeout failed again with the same message...
[00:35:32]                   │ debg Fetching datafeed state for datafeed datafeed-ec_advanced_2_1580398673559
[00:35:32]                   │ debg --- retry.waitForWithTimeout failed again with the same message...
[00:35:33]                   │ debg Fetching datafeed state for datafeed datafeed-ec_advanced_2_1580398673559
[00:35:33]                   │ debg --- retry.waitForWithTimeout failed again with the same message...
[00:35:33]                   │ debg Fetching datafeed state for datafeed datafeed-ec_advanced_2_1580398673559
[00:35:33]                   │ debg --- retry.waitForWithTimeout failed again with the same message...
[00:35:34]                   │ debg Fetching datafeed state for datafeed datafeed-ec_advanced_2_1580398673559
[00:35:34]                   │ debg --- retry.waitForWithTimeout failed again with the same message...
[00:35:34]                   │ debg Fetching datafeed state for datafeed datafeed-ec_advanced_2_1580398673559
[00:35:34]                   │ debg --- retry.waitForWithTimeout failed again with the same message...
[00:35:35]                   │ debg Fetching datafeed state for datafeed datafeed-ec_advanced_2_1580398673559
[00:35:35]                   │ debg --- retry.waitForWithTimeout failed again with the same message...
[00:35:35]                   │ debg Fetching datafeed state for datafeed datafeed-ec_advanced_2_1580398673559
[00:35:35]                   │ debg --- retry.waitForWithTimeout failed again with the same message...
[00:35:36]                   │ debg Fetching datafeed state for datafeed datafeed-ec_advanced_2_1580398673559
[00:35:36]                   │ debg --- retry.waitForWithTimeout failed again with the same message...
[00:35:36]                   │ debg Fetching datafeed state for datafeed datafeed-ec_advanced_2_1580398673559
[00:35:36]                   │ debg --- retry.waitForWithTimeout failed again with the same message...
[00:35:37]                   │ debg Fetching datafeed state for datafeed datafeed-ec_advanced_2_1580398673559
[00:35:37]                   │ debg --- retry.waitForWithTimeout failed again with the same message...
[00:35:37]                   │ debg Fetching datafeed state for datafeed datafeed-ec_advanced_2_1580398673559
[00:35:37]                   │ debg --- retry.waitForWithTimeout failed again with the same message...
[00:35:38]                   │ debg Fetching datafeed state for datafeed datafeed-ec_advanced_2_1580398673559
[00:35:38]                   │ debg --- retry.waitForWithTimeout failed again with the same message...
[00:35:38]                   │ debg Fetching datafeed state for datafeed datafeed-ec_advanced_2_1580398673559
[00:35:38]                   │ debg --- retry.waitForWithTimeout failed again with the same message...
[00:35:39]                   │ debg Fetching datafeed state for datafeed datafeed-ec_advanced_2_1580398673559
[00:35:39]                   │ debg --- retry.waitForWithTimeout failed again with the same message...
[00:35:39]                   │ debg Fetching datafeed state for datafeed datafeed-ec_advanced_2_1580398673559
[00:35:39]                   │ debg --- retry.waitForWithTimeout failed again with the same message...
[00:35:40]                   │ debg Fetching datafeed state for datafeed datafeed-ec_advanced_2_1580398673559
[00:35:40]                   │ debg --- retry.waitForWithTimeout failed again with the same message...
[00:35:40]                   │ debg Fetching datafeed state for datafeed datafeed-ec_advanced_2_1580398673559
[00:35:40]                   │ debg --- retry.waitForWithTimeout failed again with the same message...
[00:35:41]                   │ debg Fetching datafeed state for datafeed datafeed-ec_advanced_2_1580398673559
[00:35:41]                   │ debg --- retry.waitForWithTimeout failed again with the same message...
[00:35:42]                   │ debg Fetching datafeed state for datafeed datafeed-ec_advanced_2_1580398673559
[00:35:42]                   │ debg --- retry.waitForWithTimeout failed again with the same message...
[00:35:42]                   │ debg Fetching datafeed state for datafeed datafeed-ec_advanced_2_1580398673559
[00:35:42]                   │ debg --- retry.waitForWithTimeout failed again with the same message...
[00:35:43]                   │ debg Fetching datafeed state for datafeed datafeed-ec_advanced_2_1580398673559
[00:35:43]                   │ debg --- retry.waitForWithTimeout failed again with the same message...
[00:35:43]                   │ debg Fetching datafeed state for datafeed datafeed-ec_advanced_2_1580398673559
[00:35:43]                   │ debg --- retry.waitForWithTimeout failed again with the same message...
[00:35:43]                   │ info [o.e.x.m.d.DatafeedJob] [kibana-ci-immutable-oraclelinux-tests-xl-1580397070958261496] [ec_advanced_2_1580398673559] Lookback has finished
[00:35:43]                   │ info [o.e.x.m.d.DatafeedManager] [kibana-ci-immutable-oraclelinux-tests-xl-1580397070958261496] [no_realtime] attempt to stop datafeed [datafeed-ec_advanced_2_1580398673559] for job [ec_advanced_2_1580398673559]
[00:35:43]                   │ info [o.e.x.m.d.DatafeedManager] [kibana-ci-immutable-oraclelinux-tests-xl-1580397070958261496] [no_realtime] try lock [20s] to stop datafeed [datafeed-ec_advanced_2_1580398673559] for job [ec_advanced_2_1580398673559]...
[00:35:43]                   │ info [o.e.x.m.d.DatafeedManager] [kibana-ci-immutable-oraclelinux-tests-xl-1580397070958261496] [no_realtime] stopping datafeed [datafeed-ec_advanced_2_1580398673559] for job [ec_advanced_2_1580398673559], acquired [true]...
[00:35:43]                   │ info [o.e.x.m.d.DatafeedManager] [kibana-ci-immutable-oraclelinux-tests-xl-1580397070958261496] [no_realtime] datafeed [datafeed-ec_advanced_2_1580398673559] for job [ec_advanced_2_1580398673559] has been stopped
[00:35:44]                   │ info [o.e.x.m.j.p.a.AutodetectProcessManager] [kibana-ci-immutable-oraclelinux-tests-xl-1580397070958261496] Closing job [ec_advanced_2_1580398673559], because [close job (api)]
[00:35:44]                   │ info [o.e.x.m.p.l.CppLogMessageHandler] [kibana-ci-immutable-oraclelinux-tests-xl-1580397070958261496] [ec_advanced_2_1580398673559] [autodetect/70648] [CCmdSkeleton.cc@45] Handled 4675 records
[00:35:44]                   │ info [o.e.x.m.p.l.CppLogMessageHandler] [kibana-ci-immutable-oraclelinux-tests-xl-1580397070958261496] [ec_advanced_2_1580398673559] [autodetect/70648] [CAnomalyJob.cc@1499] Pruning all models
[00:35:44]                   │ debg Fetching datafeed state for datafeed datafeed-ec_advanced_2_1580398673559
[00:35:44]                   │ debg Waiting up to 120000ms for job state to be closed...
[00:35:44]                   │ debg Fetching job state for job ec_advanced_2_1580398673559
[00:35:44]                   │ debg --- retry.waitForWithTimeout error: expected job state to be closed but got closing
[00:35:44]                   │ debg Fetching job state for job ec_advanced_2_1580398673559
[00:35:44]                   │ debg --- retry.waitForWithTimeout failed again with the same message...
[00:35:45]                   │ info [o.e.c.m.MetaDataMappingService] [kibana-ci-immutable-oraclelinux-tests-xl-1580397070958261496] [.ml-anomalies-custom-ec_advanced_2_1580398673559/y5-VMHykTIu_2ZV9qjinng] update_mapping [_doc]
[00:35:45]                   │ debg Fetching job state for job ec_advanced_2_1580398673559
[00:35:45]                   │ debg --- retry.waitForWithTimeout failed again with the same message...
[00:35:45]                   │ info [o.e.x.m.j.p.a.o.AutodetectResultProcessor] [kibana-ci-immutable-oraclelinux-tests-xl-1580397070958261496] [ec_advanced_2_1580398673559] 185 buckets parsed from autodetect output
[00:35:45]                   │ info [o.e.x.m.p.AbstractNativeProcess] [kibana-ci-immutable-oraclelinux-tests-xl-1580397070958261496] [ec_advanced_2_1580398673559] State output finished
[00:35:45]                   │ debg Fetching job state for job ec_advanced_2_1580398673559
[00:35:45]                   │ debg --- retry.waitForWithTimeout failed again with the same message...
[00:35:45]                   │ info [o.e.x.m.j.p.a.AutodetectCommunicator] [kibana-ci-immutable-oraclelinux-tests-xl-1580397070958261496] [ec_advanced_2_1580398673559] job closed
[00:35:46]                   │ debg Fetching job state for job ec_advanced_2_1580398673559
[00:35:46]                   └- ✓ pass  (33.7s) "machine learning anomaly detection advanced job with categorization detector and default datafeed settings job creation creates the job and finishes processing"
[00:35:46]                 └-> job creation displays the created job in the job list
[00:35:46]                   └-> "before each" hook: global before each
[00:35:46]                   │ debg TestSubjects.click(mlRefreshJobListButton)
[00:35:46]                   │ debg Find.clickByCssSelector('[data-test-subj="mlRefreshJobListButton"]') with timeout=10000
[00:35:46]                   │ debg Find.findByCssSelector('[data-test-subj="mlRefreshJobListButton"]') with timeout=10000
[00:35:46]                   │ debg TestSubjects.exists(~mlJobListTable)
[00:35:46]                   │ debg Find.existsByDisplayedByCssSelector('[data-test-subj~="mlJobListTable"]') with timeout=60000
[00:35:46]                   │ debg TestSubjects.exists(mlJobListTable loaded)
[00:35:46]                   │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="mlJobListTable loaded"]') with timeout=30000
[00:35:46]                   │ debg TestSubjects.exists(~mlJobListTable)
[00:35:46]                   │ debg Find.existsByDisplayedByCssSelector('[data-test-subj~="mlJobListTable"]') with timeout=60000
[00:35:46]                   │ debg TestSubjects.exists(mlJobListTable loaded)
[00:35:46]                   │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="mlJobListTable loaded"]') with timeout=30000
[00:35:46]                   │ debg TestSubjects.find(mlJobListSearchBar)
[00:35:46]                   │ debg Find.findByCssSelector('[data-test-subj="mlJobListSearchBar"]') with timeout=10000
[00:35:47]                   │ debg TestSubjects.find(~mlJobListTable)
[00:35:47]                   │ debg Find.findByCssSelector('[data-test-subj~="mlJobListTable"]') with timeout=10000
[00:35:47]                   └- ✓ pass  (1.0s) "machine learning anomaly detection advanced job with categorization detector and default datafeed settings job creation displays the created job in the job list"
[00:35:47]                 └-> job creation displays details for the created job in the job list
[00:35:47]                   └-> "before each" hook: global before each
[00:35:47]                   │ debg TestSubjects.find(~mlJobListTable)
[00:35:47]                   │ debg Find.findByCssSelector('[data-test-subj~="mlJobListTable"]') with timeout=10000
[00:35:47]                   │ info Taking screenshot "/dev/shm/workspace/kibana/x-pack/test/functional/screenshots/failure/machine learning anomaly detection advanced job with categorization detector and default datafeed settings job creation displays details for the created job in the job list.png"
[00:35:47]                   │ info Current URL is: http://localhost:6141/app/ml#/jobs?_g=(refreshInterval:(pause:!t,value:0))
[00:35:47]                   │ info Saving page source to: /dev/shm/workspace/kibana/x-pack/test/functional/failure_debug/html/machine learning anomaly detection advanced job with categorization detector and default datafeed settings job creation displays details for the created job in the job list.html
[00:35:47]                   └- ✖ fail: "machine learning anomaly detection advanced job with categorization detector and default datafeed settings job creation displays details for the created job in the job list"
[00:35:47]                   │

Stack Trace

{ Error: expected { id: 'ec_advanced_2_1580398673559',
  description: 'Create advanced job from ecommerce dataset with a categorization detector and default datafeed settings',
  jobGroups: [ 'advanced', 'automated', 'ecommerce' ],
  recordCount: '0',
  memoryStatus: 'ok',
  jobState: 'opened',
  datafeedState: 'started',
  latestTimestamp: '' } to sort of equal { id: 'ec_advanced_2_1580398673559',
  description: 'Create advanced job from ecommerce dataset with a categorization detector and default datafeed settings',
  jobGroups: [ 'advanced', 'automated', 'ecommerce' ],
  recordCount: '4,675',
  memoryStatus: 'ok',
  jobState: 'closed',
  datafeedState: 'stopped',
  latestTimestamp: '2019-07-12 23:45:36' }
    at Assertion.assert (/dev/shm/workspace/kibana/packages/kbn-expect/expect.js:100:11)
    at Assertion.eql (/dev/shm/workspace/kibana/packages/kbn-expect/expect.js:244:8)
    at MlJobTable.assertJobRowFields (test/functional/services/machine_learning/job_table.ts:181:25)
    at process._tickCallback (internal/process/next_tick.js:68:7)
  actual:
   '{\n  "datafeedState": "started"\n  "description": "Create advanced job from ecommerce dataset with a categorization detector and default datafeed settings"\n  "id": "ec_advanced_2_1580398673559"\n  "jobGroups": [\n    "advanced"\n    "automated"\n    "ecommerce"\n  ]\n  "jobState": "opened"\n  "latestTimestamp": ""\n  "memoryStatus": "ok"\n  "recordCount": "0"\n}',
  expected:
   '{\n  "datafeedState": "stopped"\n  "description": "Create advanced job from ecommerce dataset with a categorization detector and default datafeed settings"\n  "id": "ec_advanced_2_1580398673559"\n  "jobGroups": [\n    "advanced"\n    "automated"\n    "ecommerce"\n  ]\n  "jobState": "closed"\n  "latestTimestamp": "2019-07-12 23:45:36"\n  "memoryStatus": "ok"\n  "recordCount": "4,675"\n}',
  showDiff: true }

History

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Feature:Console Dev Tools Console Feature Feature:Dev Tools Feature:NP Migration Team:Kibana Management Dev Tools, Index Management, Upgrade Assistant, ILM, Ingest Node Pipelines, and more v7.7.0 v8.0.0
Projects
Elasticsearch UI
  
Done - NP migration
Development

Successfully merging this pull request may close these issues.

None yet

7 participants