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

[Discover] Experimental usage of ES fields API #75407

Closed

Conversation

kertal
Copy link
Member

@kertal kertal commented Aug 19, 2020

Summary

This PR experiments with the usage of the fields API, as a side effect it enables displaying alias fields in Discover in a better way (there were no values displayed in the table).

Info & PR:
https://www.elastic.co/guide/en/elasticsearch/reference/master/search-fields.html. And here's the ES meta issue elastic/elasticsearch#55363

Discover_-_Elastic

Testdata

PUT alias-test
{
  "mappings": {

      "properties": {
        "firstname": {
          "type": "text"
        },
        "fn": {
          "type": "alias",
          "path": "firstname" 
        }
      }
    }

}

PUT alias-test/_doc/1
{
  "firstname": "test"
}

Checklist

Delete any items that are not applicable to this PR.

For maintainers

@kertal kertal self-assigned this Aug 19, 2020
@kertal kertal added the Feature:Discover Discover Application label Aug 19, 2020
@@ -256,7 +256,7 @@ function discoverController($element, $route, $scope, $timeout, $window, Promise
$scope.state = { ...newState };

// detect changes that should trigger fetching of new data
const changes = ['interval', 'sort'].filter(
const changes = ['interval', 'sort', 'columns'].filter(
Copy link
Member Author

Choose a reason for hiding this comment

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

need to resubmit the query to display subfields like name.keyword

Copy link
Contributor

Choose a reason for hiding this comment

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

I am a bit concerned around performance of that part. Right now we're not doing additional queries (to fetch data) if we modify the columns. Especially given that the Discover query is atm very unoptimized (e.g. contains the aggregation for the chart in each fetch for the data), and thus can potentially also be rather slow-ish, doing this now for every column add/remove/reorder feels like a significant performance regression (e.g. on our issue instance, which is not having a significant large dataset, every discover request takes ~2s).

Especially when a user starts building a discover view, she'll need to first add a couple of columns, which will then all trigger another request and we could slow down the creation time and UX significantly with this change. We could optimize this code to e.g. exclude column reorders, but I have the feeling we're still in a problematic situation afterwards. I currently don't see how we could check if a change to column would require us to refetch, since we're not knowing which of the column fields could be runtime fields and thus require a refetch here.

I am happy for any suggestions here. cc @stacey-gammon

Copy link
Member Author

Choose a reason for hiding this comment

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

I am a bit concerned around performance of that part. Right now we're not doing additional queries (to fetch data) if we modify the columns.

Yes, this is the disadvantage of this solution, but we since we currently don't know which fields are runtime, we would currently need to fetch all fields + _source as an alternative.

I currently don't see how we could check if a change to column would require us to refetch, since we're not knowing which of the column fields could be runtime fields and thus require a refetch here.

Wouldn't each new fetch abort the old one?

Copy link
Contributor

Choose a reason for hiding this comment

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

Yes, this is the disadvantage of this solution, but we since we currently don't know which fields are runtime, we would currently need to fetch all fields + _source as an alternative.

I think we need to evaluate and try to quantify the fallout of this change a bit better. We should not make this kind of larger performance impacts in the most uses application in Kibana willy-nilly and hopef or the best.

Wouldn't each new fetch abort the old one?

That would miticate the problem a bit, but without the quantification I have the feeling we still run into problems, since if we assume a 2 second request, this could correlate very roughly to the interaction time the user needs to get to the next field they want to add, so they actually never run into the situation where the previous request would be cancelled, but into a situation where the UI every time they want to add the next column is frozen for some time, because we're parsing some large JSON response and redrawing the page.

Comment on lines 467 to 469
const remainingFields = difference(fields, keys(body.script_fields));
body.stored_fields = remainingFields;
body.fields = remainingFields;
setWith(body, '_source.includes', remainingFields, (nsValue) =>
Copy link
Member Author

Choose a reason for hiding this comment

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

dear @jtibshirani , with this change Discover via the underlying search service would use the fields API, and would therefore support runtime fields. Question is: could there be fields available in stored_fields that aren't in the fields API? thx!

Choose a reason for hiding this comment

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

@kertal stored_fields are not included in the 'fields' option. So yes, there could be fields available in stored_fields that do not come back in fields.

Copy link
Member Author

Choose a reason for hiding this comment

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

@jtibshirani thx, i've solved it differently now!

@kibanamachine
Copy link
Contributor

💔 Build Failed

Failed CI Steps


Test Failures

Chrome X-Pack UI Functional Tests.x-pack/test/functional/apps/ml/data_visualizer/file_data_visualizer·ts.machine learning data visualizer file based with an artificial server log displays and imports a file

Link to Jenkins

Standard Out

Failed Tests Reporter:
  - Test has not failed recently on tracked branches

[00:00:00]       │
[00:00:00]         └-: machine learning
[00:00:00]           └-> "before all" hook
[00:00:00]           └-> "before all" hook
[00:00:00]             │ debg creating role ft_ml_source
[00:00:00]             │ info [o.e.x.s.a.r.TransportPutRoleAction] [kibana-ci-immutable-debian-tests-xxl-1599719563554011181] added role [ft_ml_source]
[00:00:00]             │ debg creating role ft_ml_source_readonly
[00:00:00]             │ info [o.e.x.s.a.r.TransportPutRoleAction] [kibana-ci-immutable-debian-tests-xxl-1599719563554011181] added role [ft_ml_source_readonly]
[00:00:00]             │ debg creating role ft_ml_dest
[00:00:00]             │ info [o.e.x.s.a.r.TransportPutRoleAction] [kibana-ci-immutable-debian-tests-xxl-1599719563554011181] added role [ft_ml_dest]
[00:00:00]             │ debg creating role ft_ml_dest_readonly
[00:00:00]             │ info [o.e.x.s.a.r.TransportPutRoleAction] [kibana-ci-immutable-debian-tests-xxl-1599719563554011181] added role [ft_ml_dest_readonly]
[00:00:00]             │ debg creating role ft_ml_ui_extras
[00:00:00]             │ info [o.e.x.s.a.r.TransportPutRoleAction] [kibana-ci-immutable-debian-tests-xxl-1599719563554011181] added role [ft_ml_ui_extras]
[00:00:00]             │ debg creating role ft_default_space_ml_all
[00:00:00]             │ info [o.e.x.s.a.r.TransportPutRoleAction] [kibana-ci-immutable-debian-tests-xxl-1599719563554011181] added role [ft_default_space_ml_all]
[00:00:00]             │ debg creating role ft_default_space_ml_read
[00:00:00]             │ info [o.e.x.s.a.r.TransportPutRoleAction] [kibana-ci-immutable-debian-tests-xxl-1599719563554011181] added role [ft_default_space_ml_read]
[00:00:00]             │ debg creating role ft_default_space_ml_none
[00:00:00]             │ info [o.e.x.s.a.r.TransportPutRoleAction] [kibana-ci-immutable-debian-tests-xxl-1599719563554011181] added role [ft_default_space_ml_none]
[00:00:00]             │ debg creating user ft_ml_poweruser
[00:00:00]             │ info [o.e.x.s.a.u.TransportPutUserAction] [kibana-ci-immutable-debian-tests-xxl-1599719563554011181] added user [ft_ml_poweruser]
[00:00:00]             │ debg created user ft_ml_poweruser
[00:00:00]             │ debg creating user ft_ml_poweruser_spaces
[00:00:00]             │ info [o.e.x.s.a.u.TransportPutUserAction] [kibana-ci-immutable-debian-tests-xxl-1599719563554011181] added user [ft_ml_poweruser_spaces]
[00:00:00]             │ debg created user ft_ml_poweruser_spaces
[00:00:00]             │ debg creating user ft_ml_viewer
[00:00:00]             │ info [o.e.x.s.a.u.TransportPutUserAction] [kibana-ci-immutable-debian-tests-xxl-1599719563554011181] added user [ft_ml_viewer]
[00:00:00]             │ debg created user ft_ml_viewer
[00:00:00]             │ debg creating user ft_ml_viewer_spaces
[00:00:00]             │ info [o.e.x.s.a.u.TransportPutUserAction] [kibana-ci-immutable-debian-tests-xxl-1599719563554011181] added user [ft_ml_viewer_spaces]
[00:00:00]             │ debg created user ft_ml_viewer_spaces
[00:00:00]             │ debg creating user ft_ml_unauthorized
[00:00:00]             │ info [o.e.x.s.a.u.TransportPutUserAction] [kibana-ci-immutable-debian-tests-xxl-1599719563554011181] added user [ft_ml_unauthorized]
[00:00:00]             │ debg created user ft_ml_unauthorized
[00:00:00]             │ debg creating user ft_ml_unauthorized_spaces
[00:00:01]             │ info [o.e.x.s.a.u.TransportPutUserAction] [kibana-ci-immutable-debian-tests-xxl-1599719563554011181] added user [ft_ml_unauthorized_spaces]
[00:00:01]             │ debg created user ft_ml_unauthorized_spaces
[00:38:40]           └-: data visualizer
[00:38:40]             └-> "before all" hook
[00:39:20]             └-: file based
[00:39:20]               └-> "before all" hook
[00:39:20]               └-> "before all" hook
[00:39:20]                 │ debg applying update to kibana config: {"dateFormat:tz":"UTC"}
[00:39:20]                 │ debg SecurityPage.forceLogout
[00:39:20]                 │ debg Find.existsByDisplayedByCssSelector('.login-form') with timeout=100
[00:39:20]                 │ debg --- retry.tryForTime error: .login-form is not displayed
[00:39:21]                 │ debg Redirecting to /logout to force the logout
[00:39:21]                 │ debg Waiting on the login form to appear
[00:39:21]                 │ debg Waiting for Login Page to appear.
[00:39:21]                 │ debg Waiting up to 100000ms for login page...
[00:39:21]                 │ debg browser[INFO] http://localhost:61241/logout?_t=1599726635692 341 Refused to execute inline script because it violates the following Content Security Policy directive: "script-src 'unsafe-eval' 'self'". Either the 'unsafe-inline' keyword, a hash ('sha256-P5polb1UreUSOe5V/Pv7tc+yeZuJXiOi/3fqhGsU7BE='), or a nonce ('nonce-...') is required to enable inline execution.
[00:39:21]                 │
[00:39:21]                 │ debg browser[INFO] http://localhost:61241/bootstrap.js 42:19 "^ A single error about an inline script not firing due to content security policy is expected!"
[00:39:21]                 │ debg Find.existsByDisplayedByCssSelector('.login-form') with timeout=2500
[00:39:24]                 │ debg browser[INFO] http://localhost:61241/login?_t=1599726635692 341 Refused to execute inline script because it violates the following Content Security Policy directive: "script-src 'unsafe-eval' 'self'". Either the 'unsafe-inline' keyword, a hash ('sha256-P5polb1UreUSOe5V/Pv7tc+yeZuJXiOi/3fqhGsU7BE='), or a nonce ('nonce-...') is required to enable inline execution.
[00:39:24]                 │
[00:39:24]                 │ debg browser[INFO] http://localhost:61241/bootstrap.js 42:19 "^ A single error about an inline script not firing due to content security policy is expected!"
[00:39:24]                 │ debg --- retry.tryForTime error: .login-form is not displayed
[00:39:25]                 │ debg Find.existsByDisplayedByCssSelector('.login-form') with timeout=2500
[00:39:25]                 │ERROR browser[SEVERE] http://localhost:61241/internal/licensing/feature_usage/register - Failed to load resource: the server responded with a status of 401 (Unauthorized)
[00:39:25]                 │ debg browser[WARNING] http://localhost:61241/36122/bundles/plugin/uiActionsEnhanced/uiActionsEnhanced.plugin.js 1:314414 "ActionFactory [actionFactory.id = URL_DRILLDOWN] fail to register feature for featureUsage."
[00:39:25]                 │ debg navigating to login url: http://localhost:61241/login
[00:39:25]                 │ debg navigate to: http://localhost:61241/login
[00:39:25]                 │ debg browser[INFO] http://localhost:61241/login?_t=1599726639781 341 Refused to execute inline script because it violates the following Content Security Policy directive: "script-src 'unsafe-eval' 'self'". Either the 'unsafe-inline' keyword, a hash ('sha256-P5polb1UreUSOe5V/Pv7tc+yeZuJXiOi/3fqhGsU7BE='), or a nonce ('nonce-...') is required to enable inline execution.
[00:39:25]                 │
[00:39:25]                 │ debg browser[INFO] http://localhost:61241/bootstrap.js 42:19 "^ A single error about an inline script not firing due to content security policy is expected!"
[00:39:25]                 │ debg ... sleep(700) start
[00:39:26]                 │ debg ... sleep(700) end
[00:39:26]                 │ debg returned from get, calling refresh
[00:39:27]                 │ERROR browser[SEVERE] http://localhost:61241/internal/licensing/feature_usage/register - Failed to load resource: the server responded with a status of 401 (Unauthorized)
[00:39:27]                 │ debg browser[WARNING] http://localhost:61241/36122/bundles/plugin/uiActionsEnhanced/uiActionsEnhanced.plugin.js 1:314414 "ActionFactory [actionFactory.id = URL_DRILLDOWN] fail to register feature for featureUsage."
[00:39:27]                 │ debg browser[INFO] http://localhost:61241/login?_t=1599726639781 341 Refused to execute inline script because it violates the following Content Security Policy directive: "script-src 'unsafe-eval' 'self'". Either the 'unsafe-inline' keyword, a hash ('sha256-P5polb1UreUSOe5V/Pv7tc+yeZuJXiOi/3fqhGsU7BE='), or a nonce ('nonce-...') is required to enable inline execution.
[00:39:27]                 │
[00:39:27]                 │ debg browser[INFO] http://localhost:61241/bootstrap.js 42:19 "^ A single error about an inline script not firing due to content security policy is expected!"
[00:39:27]                 │ERROR browser[SEVERE] http://localhost:61241/internal/licensing/feature_usage/register - Failed to load resource: the server responded with a status of 401 (Unauthorized)
[00:39:28]                 │ debg currentUrl = http://localhost:61241/login
[00:39:28]                 │          appUrl = http://localhost:61241/login
[00:39:28]                 │ debg TestSubjects.find(kibanaChrome)
[00:39:28]                 │ debg Find.findByCssSelector('[data-test-subj="kibanaChrome"]') with timeout=60000
[00:39:28]                 │ debg ... sleep(501) start
[00:39:28]                 │ debg browser[WARNING] http://localhost:61241/36122/bundles/plugin/uiActionsEnhanced/uiActionsEnhanced.plugin.js 1:314414 "ActionFactory [actionFactory.id = URL_DRILLDOWN] fail to register feature for featureUsage."
[00:39:28]                 │ debg ... sleep(501) end
[00:39:28]                 │ debg in navigateTo url = http://localhost:61241/login
[00:39:28]                 │ debg TestSubjects.exists(statusPageContainer)
[00:39:28]                 │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="statusPageContainer"]') with timeout=2500
[00:39:31]                 │ debg --- retry.tryForTime error: [data-test-subj="statusPageContainer"] is not displayed
[00:39:31]                 │ debg Waiting for Login Form to appear.
[00:39:31]                 │ debg Waiting up to 100000ms for login form...
[00:39:31]                 │ debg TestSubjects.exists(loginForm)
[00:39:31]                 │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="loginForm"]') with timeout=2500
[00:39:31]                 │ debg TestSubjects.setValue(loginUsername, ft_ml_poweruser)
[00:39:31]                 │ debg TestSubjects.click(loginUsername)
[00:39:31]                 │ debg Find.clickByCssSelector('[data-test-subj="loginUsername"]') with timeout=10000
[00:39:31]                 │ debg Find.findByCssSelector('[data-test-subj="loginUsername"]') with timeout=10000
[00:39:31]                 │ debg TestSubjects.setValue(loginPassword, mlp001)
[00:39:31]                 │ debg TestSubjects.click(loginPassword)
[00:39:31]                 │ debg Find.clickByCssSelector('[data-test-subj="loginPassword"]') with timeout=10000
[00:39:31]                 │ debg Find.findByCssSelector('[data-test-subj="loginPassword"]') with timeout=10000
[00:39:31]                 │ debg TestSubjects.click(loginSubmit)
[00:39:31]                 │ debg Find.clickByCssSelector('[data-test-subj="loginSubmit"]') with timeout=10000
[00:39:31]                 │ debg Find.findByCssSelector('[data-test-subj="loginSubmit"]') with timeout=10000
[00:39:31]                 │ debg Waiting for login result, expected: chrome.
[00:39:31]                 │ debg Find.findByCssSelector('[data-test-subj="kibanaChrome"] .app-wrapper:not(.hidden-chrome)') with timeout=20000
[00:39:31]                 │ proc [kibana]   log   [08:30:46.232] [info][plugins][routes][security] Logging in with provider "basic" (basic)
[00:39:34]                 │ debg browser[INFO] http://localhost:61241/app/home 341 Refused to execute inline script because it violates the following Content Security Policy directive: "script-src 'unsafe-eval' 'self'". Either the 'unsafe-inline' keyword, a hash ('sha256-P5polb1UreUSOe5V/Pv7tc+yeZuJXiOi/3fqhGsU7BE='), or a nonce ('nonce-...') is required to enable inline execution.
[00:39:34]                 │
[00:39:34]                 │ debg browser[INFO] http://localhost:61241/bootstrap.js 42:19 "^ A single error about an inline script not firing due to content security policy is expected!"
[00:39:34]                 │ debg Finished login process currentUrl = http://localhost:61241/app/home#/
[00:39:34]                 │ debg Waiting up to 20000ms for logout button visible...
[00:39:34]                 │ debg TestSubjects.exists(userMenuButton)
[00:39:34]                 │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="userMenuButton"]') with timeout=2500
[00:39:34]                 │ debg TestSubjects.exists(userMenu)
[00:39:34]                 │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="userMenu"]') with timeout=2500
[00:39:37]                 │ debg --- retry.tryForTime error: [data-test-subj="userMenu"] is not displayed
[00:39:37]                 │ debg TestSubjects.click(userMenuButton)
[00:39:37]                 │ debg Find.clickByCssSelector('[data-test-subj="userMenuButton"]') with timeout=10000
[00:39:37]                 │ debg Find.findByCssSelector('[data-test-subj="userMenuButton"]') with timeout=10000
[00:39:37]                 │ debg TestSubjects.exists(userMenu)
[00:39:37]                 │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="userMenu"]') with timeout=120000
[00:39:38]                 │ debg TestSubjects.exists(userMenu > logoutLink)
[00:39:38]                 │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="userMenu"] [data-test-subj="logoutLink"]') with timeout=2500
[00:39:38]                 │ debg navigating to ml url: http://localhost:61241/app/ml
[00:39:38]                 │ debg navigate to: http://localhost:61241/app/ml
[00:39:38]                 │ debg browser[INFO] http://localhost:61241/app/ml?_t=1599726652332 341 Refused to execute inline script because it violates the following Content Security Policy directive: "script-src 'unsafe-eval' 'self'". Either the 'unsafe-inline' keyword, a hash ('sha256-P5polb1UreUSOe5V/Pv7tc+yeZuJXiOi/3fqhGsU7BE='), or a nonce ('nonce-...') is required to enable inline execution.
[00:39:38]                 │
[00:39:38]                 │ debg browser[INFO] http://localhost:61241/bootstrap.js 42:19 "^ A single error about an inline script not firing due to content security policy is expected!"
[00:39:38]                 │ debg ... sleep(700) start
[00:39:38]                 │ debg ... sleep(700) end
[00:39:38]                 │ debg returned from get, calling refresh
[00:39:39]                 │ debg browser[WARNING] http://localhost:61241/36122/bundles/plugin/uiActionsEnhanced/uiActionsEnhanced.plugin.js 1:314414 "ActionFactory [actionFactory.id = URL_DRILLDOWN] fail to register feature for featureUsage."
[00:39:39]                 │ERROR browser[SEVERE] http://localhost:61241/36122/bundles/core/core.entry.js 83:272044 TypeError: Failed to fetch
[00:39:39]                 │          at Fetch._callee3$ (http://localhost:61241/36122/bundles/core/core.entry.js:34:105572)
[00:39:39]                 │          at l (http://localhost:61241/36122/bundles/kbn-ui-shared-deps/kbn-ui-shared-deps.js:368:186861)
[00:39:39]                 │          at Generator._invoke (http://localhost:61241/36122/bundles/kbn-ui-shared-deps/kbn-ui-shared-deps.js:368:186614)
[00:39:39]                 │          at Generator.forEach.e.<computed> [as throw] (http://localhost:61241/36122/bundles/kbn-ui-shared-deps/kbn-ui-shared-deps.js:368:187218)
[00:39:39]                 │          at fetch_asyncGeneratorStep (http://localhost:61241/36122/bundles/core/core.entry.js:34:99665)
[00:39:39]                 │          at _throw (http://localhost:61241/36122/bundles/core/core.entry.js:34:100073)
[00:39:39]                 │ debg browser[INFO] http://localhost:61241/app/ml?_t=1599726652332 341 Refused to execute inline script because it violates the following Content Security Policy directive: "script-src 'unsafe-eval' 'self'". Either the 'unsafe-inline' keyword, a hash ('sha256-P5polb1UreUSOe5V/Pv7tc+yeZuJXiOi/3fqhGsU7BE='), or a nonce ('nonce-...') is required to enable inline execution.
[00:39:39]                 │
[00:39:39]                 │ debg browser[INFO] http://localhost:61241/bootstrap.js 42:19 "^ A single error about an inline script not firing due to content security policy is expected!"
[00:39:39]                 │ debg currentUrl = http://localhost:61241/app/ml
[00:39:39]                 │          appUrl = http://localhost:61241/app/ml
[00:39:39]                 │ debg TestSubjects.find(kibanaChrome)
[00:39:39]                 │ debg Find.findByCssSelector('[data-test-subj="kibanaChrome"]') with timeout=60000
[00:39:41]                 │ debg ... sleep(501) start
[00:39:41]                 │ debg ... sleep(501) end
[00:39:41]                 │ debg in navigateTo url = http://localhost:61241/app/ml/overview
[00:39:41]                 │ debg --- retry.try error: URL changed, waiting for it to settle
[00:39:42]                 │ debg ... sleep(501) start
[00:39:42]                 │ debg ... sleep(501) end
[00:39:42]                 │ debg in navigateTo url = http://localhost:61241/app/ml/overview
[00:39:42]                 │ debg TestSubjects.exists(statusPageContainer)
[00:39:42]                 │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="statusPageContainer"]') with timeout=2500
[00:39:45]                 │ debg --- retry.tryForTime error: [data-test-subj="statusPageContainer"] is not displayed
[00:39:45]                 │ debg TestSubjects.exists(mlPageOverview)
[00:39:45]                 │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="mlPageOverview"]') with timeout=2000
[00:39:45]               └-: with an artificial server log
[00:39:45]                 └-> "before all" hook
[00:39:45]                 └-> displays and imports a file
[00:39:45]                   └-> "before each" hook: global before each
[00:39:45]                   │ debg === TEST STEP === loads the data visualizer selector page
[00:39:45]                   │ debg TestSubjects.click(~mlMainTab & ~dataVisualizer)
[00:39:45]                   │ debg Find.clickByCssSelector('[data-test-subj~="mlMainTab"][data-test-subj~="dataVisualizer"]') with timeout=10000
[00:39:45]                   │ debg Find.findByCssSelector('[data-test-subj~="mlMainTab"][data-test-subj~="dataVisualizer"]') with timeout=10000
[00:39:45]                   │ debg TestSubjects.exists(~mlMainTab & ~dataVisualizer & ~selected)
[00:39:45]                   │ debg Find.existsByDisplayedByCssSelector('[data-test-subj~="mlMainTab"][data-test-subj~="dataVisualizer"][data-test-subj~="selected"]') with timeout=120000
[00:39:46]                   │ debg TestSubjects.exists(mlPageDataVisualizerSelector)
[00:39:46]                   │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="mlPageDataVisualizerSelector"]') with timeout=120000
[00:39:46]                   │ debg === TEST STEP === loads the file upload page
[00:39:46]                   │ debg TestSubjects.click(mlDataVisualizerUploadFileButton)
[00:39:46]                   │ debg Find.clickByCssSelector('[data-test-subj="mlDataVisualizerUploadFileButton"]') with timeout=10000
[00:39:46]                   │ debg Find.findByCssSelector('[data-test-subj="mlDataVisualizerUploadFileButton"]') with timeout=10000
[00:39:46]                   │ debg TestSubjects.exists(mlPageFileDataVisualizerUpload)
[00:39:46]                   │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="mlPageFileDataVisualizerUpload"]') with timeout=120000
[00:39:46]                   │ debg === TEST STEP === selects a file and loads visualizer results
[00:39:46]                   │ debg Importing file '/dev/shm/workspace/parallel/24/kibana/x-pack/test/functional/apps/ml/data_visualizer/files_to_import/artificial_server_log' ...
[00:39:46]                   │ debg Setting the path '/dev/shm/workspace/parallel/24/kibana/x-pack/test/functional/apps/ml/data_visualizer/files_to_import/artificial_server_log' on the file input
[00:39:46]                   │ debg Find.findByCssSelector('.euiFilePicker__input') with timeout=10000
[00:39:46]                   │ debg Find.waitForDeletedByCssSelector('[data-test-subj="mlPageFileDataVisLoading"]') with timeout=10000
[00:39:47]                   │ debg TestSubjects.missingOrFail(~mlFileUploadErrorCallout)
[00:39:47]                   │ debg Find.waitForDeletedByCssSelector('[data-test-subj~="mlFileUploadErrorCallout"]') with timeout=2500
[00:39:47]                   │ debg TestSubjects.exists(mlPageFileDataVisResults)
[00:39:47]                   │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="mlPageFileDataVisResults"]') with timeout=120000
[00:39:47]                   │ debg === TEST STEP === displays the components of the file details page
[00:39:47]                   │ debg TestSubjects.getVisibleText(mlFileDataVisResultsTitle)
[00:39:47]                   │ debg TestSubjects.find(mlFileDataVisResultsTitle)
[00:39:47]                   │ debg Find.findByCssSelector('[data-test-subj="mlFileDataVisResultsTitle"]') with timeout=10000
[00:39:47]                   │ debg TestSubjects.exists(mlFileDataVisFileContentPanel)
[00:39:47]                   │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="mlFileDataVisFileContentPanel"]') with timeout=120000
[00:39:47]                   │ debg TestSubjects.exists(mlFileDataVisSummaryPanel)
[00:39:47]                   │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="mlFileDataVisSummaryPanel"]') with timeout=120000
[00:39:47]                   │ debg TestSubjects.exists(mlFileDataVisFileStatsPanel)
[00:39:47]                   │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="mlFileDataVisFileStatsPanel"]') with timeout=120000
[00:39:47]                   │ debg === TEST STEP === loads the import settings page
[00:39:47]                   │ debg TestSubjects.click(mlFileDataVisOpenImportPageButton)
[00:39:47]                   │ debg Find.clickByCssSelector('[data-test-subj="mlFileDataVisOpenImportPageButton"]') with timeout=10000
[00:39:47]                   │ debg Find.findByCssSelector('[data-test-subj="mlFileDataVisOpenImportPageButton"]') with timeout=10000
[00:39:47]                   │ debg TestSubjects.exists(mlPageFileDataVisImport)
[00:39:47]                   │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="mlPageFileDataVisImport"]') with timeout=120000
[00:39:47]                   │ debg === TEST STEP === sets the index name
[00:39:47]                   │ debg TestSubjects.setValueWithChecks(mlFileDataVisIndexNameInput, user-import_1)
[00:39:47]                   │ debg TestSubjects.click(mlFileDataVisIndexNameInput)
[00:39:47]                   │ debg Find.clickByCssSelector('[data-test-subj="mlFileDataVisIndexNameInput"]') with timeout=10000
[00:39:47]                   │ debg Find.findByCssSelector('[data-test-subj="mlFileDataVisIndexNameInput"]') with timeout=10000
[00:39:48]                   │ debg TestSubjects.getAttribute(mlFileDataVisIndexNameInput, value)
[00:39:48]                   │ debg TestSubjects.find(mlFileDataVisIndexNameInput)
[00:39:48]                   │ debg Find.findByCssSelector('[data-test-subj="mlFileDataVisIndexNameInput"]') with timeout=10000
[00:39:48]                   │ debg === TEST STEP === sets the create index pattern checkbox
[00:39:48]                   │ debg TestSubjects.find(mlFileDataVisCreateIndexPatternCheckbox)
[00:39:48]                   │ debg Find.findByCssSelector('[data-test-subj="mlFileDataVisCreateIndexPatternCheckbox"]') with timeout=10000
[00:39:48]                   │ debg TestSubjects.find(mlFileDataVisImportSettingsPanel)
[00:39:48]                   │ debg Find.findByCssSelector('[data-test-subj="mlFileDataVisImportSettingsPanel"]') with timeout=10000
[00:39:48]                   │ debg TestSubjects.find(mlFileDataVisCreateIndexPatternCheckbox)
[00:39:48]                   │ debg Find.findByCssSelector('[data-test-subj="mlFileDataVisCreateIndexPatternCheckbox"]') with timeout=10000
[00:39:48]                   │ debg === TEST STEP === imports the file
[00:39:48]                   │ debg TestSubjects.clickWhenNotDisabled(mlFileDataVisImportButton)
[00:39:48]                   │ debg Find.clickByCssSelectorWhenNotDisabled('[data-test-subj="mlFileDataVisImportButton"]') with timeout=10000
[00:39:48]                   │ debg Find.findByCssSelector('[data-test-subj="mlFileDataVisImportButton"]') with timeout=10000
[00:39:49]                   │ debg TestSubjects.exists(mlFileImportSuccessCallout)
[00:39:49]                   │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="mlFileImportSuccessCallout"]') with timeout=120000
[00:39:51]                   │ info [o.e.c.m.MetadataCreateIndexService] [kibana-ci-immutable-debian-tests-xxl-1599719563554011181] failed on parsing mappings on index creation [user-import_1]
[00:39:51]                   │      org.elasticsearch.index.mapper.MapperParsingException: Failed to parse mapping: No type specified for field [properties]
[00:39:51]                   │      	at org.elasticsearch.index.mapper.MapperService.internalMerge(MapperService.java:296) ~[elasticsearch-8.0.0-SNAPSHOT.jar:8.0.0-SNAPSHOT]
[00:39:51]                   │      	at org.elasticsearch.index.mapper.MapperService.merge(MapperService.java:269) ~[elasticsearch-8.0.0-SNAPSHOT.jar:8.0.0-SNAPSHOT]
[00:39:51]                   │      	at org.elasticsearch.cluster.metadata.MetadataCreateIndexService.updateIndexMappingsAndBuildSortOrder(MetadataCreateIndexService.java:909) ~[elasticsearch-8.0.0-SNAPSHOT.jar:8.0.0-SNAPSHOT]
[00:39:51]                   │      	at org.elasticsearch.cluster.metadata.MetadataCreateIndexService.lambda$applyCreateIndexWithTemporaryService$2(MetadataCreateIndexService.java:412) [elasticsearch-8.0.0-SNAPSHOT.jar:8.0.0-SNAPSHOT]
[00:39:51]                   │      	at org.elasticsearch.indices.IndicesService.withTempIndexService(IndicesService.java:622) [elasticsearch-8.0.0-SNAPSHOT.jar:8.0.0-SNAPSHOT]
[00:39:51]                   │      	at org.elasticsearch.cluster.metadata.MetadataCreateIndexService.applyCreateIndexWithTemporaryService(MetadataCreateIndexService.java:410) [elasticsearch-8.0.0-SNAPSHOT.jar:8.0.0-SNAPSHOT]
[00:39:51]                   │      	at org.elasticsearch.cluster.metadata.MetadataCreateIndexService.applyCreateIndexRequestWithV1Templates(MetadataCreateIndexService.java:488) [elasticsearch-8.0.0-SNAPSHOT.jar:8.0.0-SNAPSHOT]
[00:39:51]                   │      	at org.elasticsearch.cluster.metadata.MetadataCreateIndexService.applyCreateIndexRequest(MetadataCreateIndexService.java:373) [elasticsearch-8.0.0-SNAPSHOT.jar:8.0.0-SNAPSHOT]
[00:39:51]                   │      	at org.elasticsearch.cluster.metadata.MetadataCreateIndexService.applyCreateIndexRequest(MetadataCreateIndexService.java:380) [elasticsearch-8.0.0-SNAPSHOT.jar:8.0.0-SNAPSHOT]
[00:39:51]                   │      	at org.elasticsearch.cluster.metadata.MetadataCreateIndexService$1.execute(MetadataCreateIndexService.java:303) [elasticsearch-8.0.0-SNAPSHOT.jar:8.0.0-SNAPSHOT]
[00:39:51]                   │      	at org.elasticsearch.cluster.ClusterStateUpdateTask.execute(ClusterStateUpdateTask.java:47) [elasticsearch-8.0.0-SNAPSHOT.jar:8.0.0-SNAPSHOT]
[00:39:51]                   │      	at org.elasticsearch.cluster.service.MasterService.executeTasks(MasterService.java:697) [elasticsearch-8.0.0-SNAPSHOT.jar:8.0.0-SNAPSHOT]
[00:39:51]                   │      	at org.elasticsearch.cluster.service.MasterService.calculateTaskOutputs(MasterService.java:319) [elasticsearch-8.0.0-SNAPSHOT.jar:8.0.0-SNAPSHOT]
[00:39:51]                   │      	at org.elasticsearch.cluster.service.MasterService.runTasks(MasterService.java:214) [elasticsearch-8.0.0-SNAPSHOT.jar:8.0.0-SNAPSHOT]
[00:39:51]                   │      	at org.elasticsearch.cluster.service.MasterService$Batcher.run(MasterService.java:151) [elasticsearch-8.0.0-SNAPSHOT.jar:8.0.0-SNAPSHOT]
[00:39:51]                   │      	at org.elasticsearch.cluster.service.TaskBatcher.runIfNotProcessed(TaskBatcher.java:150) [elasticsearch-8.0.0-SNAPSHOT.jar:8.0.0-SNAPSHOT]
[00:39:51]                   │      	at org.elasticsearch.cluster.service.TaskBatcher$BatchedTask.run(TaskBatcher.java:188) [elasticsearch-8.0.0-SNAPSHOT.jar:8.0.0-SNAPSHOT]
[00:39:51]                   │      	at org.elasticsearch.common.util.concurrent.ThreadContext$ContextPreservingRunnable.run(ThreadContext.java:647) [elasticsearch-8.0.0-SNAPSHOT.jar:8.0.0-SNAPSHOT]
[00:39:51]                   │      	at org.elasticsearch.common.util.concurrent.PrioritizedEsThreadPoolExecutor$TieBreakingPrioritizedRunnable.runAndClean(PrioritizedEsThreadPoolExecutor.java:252) [elasticsearch-8.0.0-SNAPSHOT.jar:8.0.0-SNAPSHOT]
[00:39:51]                   │      	at org.elasticsearch.common.util.concurrent.PrioritizedEsThreadPoolExecutor$TieBreakingPrioritizedRunnable.run(PrioritizedEsThreadPoolExecutor.java:215) [elasticsearch-8.0.0-SNAPSHOT.jar:8.0.0-SNAPSHOT]
[00:39:51]                   │      	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130) [?:?]
[00:39:51]                   │      	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630) [?:?]
[00:39:51]                   │      	at java.lang.Thread.run(Thread.java:832) [?:?]
[00:39:51]                   │      Caused by: org.elasticsearch.index.mapper.MapperParsingException: No type specified for field [properties]
[00:39:51]                   │      	at org.elasticsearch.index.mapper.ObjectMapper$TypeParser.parseProperties(ObjectMapper.java:310) ~[elasticsearch-8.0.0-SNAPSHOT.jar:8.0.0-SNAPSHOT]
[00:39:51]                   │      	at org.elasticsearch.index.mapper.ObjectMapper$TypeParser.parseObjectOrDocumentTypeProperties(ObjectMapper.java:237) ~[elasticsearch-8.0.0-SNAPSHOT.jar:8.0.0-SNAPSHOT]
[00:39:51]                   │      	at org.elasticsearch.index.mapper.RootObjectMapper$TypeParser.parse(RootObjectMapper.java:138) ~[elasticsearch-8.0.0-SNAPSHOT.jar:8.0.0-SNAPSHOT]
[00:39:51]                   │      	at org.elasticsearch.index.mapper.DocumentMapperParser.parse(DocumentMapperParser.java:105) ~[elasticsearch-8.0.0-SNAPSHOT.jar:8.0.0-SNAPSHOT]
[00:39:51]                   │      	at org.elasticsearch.index.mapper.DocumentMapperParser.parse(DocumentMapperParser.java:93) ~[elasticsearch-8.0.0-SNAPSHOT.jar:8.0.0-SNAPSHOT]
[00:39:51]                   │      	at org.elasticsearch.index.mapper.MapperService.internalMerge(MapperService.java:294) ~[elasticsearch-8.0.0-SNAPSHOT.jar:8.0.0-SNAPSHOT]
[00:39:51]                   │      	... 22 more
[00:39:51]                   │ proc [kibana]   log   [08:31:06.106] [error][data][elasticsearch] [mapper_parsing_exception]: Failed to parse mapping: No type specified for field [properties]
[00:39:51]                   │ debg --- retry.tryForTime error: [data-test-subj="mlFileImportSuccessCallout"] is not displayed
[00:39:54]                   │ debg --- retry.tryForTime failed again with the same message...
[00:39:57]                   │ debg --- retry.tryForTime failed again with the same message...
[00:40:00]                   │ debg --- retry.tryForTime failed again with the same message...
[00:40:03]                   │ debg --- retry.tryForTime failed again with the same message...
[00:40:07]                   │ debg --- retry.tryForTime failed again with the same message...
[00:40:10]                   │ debg --- retry.tryForTime failed again with the same message...
[00:40:13]                   │ debg --- retry.tryForTime failed again with the same message...
[00:40:16]                   │ debg --- retry.tryForTime failed again with the same message...
[00:40:19]                   │ debg --- retry.tryForTime failed again with the same message...
[00:40:22]                   │ debg --- retry.tryForTime failed again with the same message...
[00:40:25]                   │ debg --- retry.tryForTime failed again with the same message...
[00:40:28]                   │ debg --- retry.tryForTime failed again with the same message...
[00:40:31]                   │ debg --- retry.tryForTime failed again with the same message...
[00:40:34]                   │ debg --- retry.tryForTime failed again with the same message...
[00:40:37]                   │ debg --- retry.tryForTime failed again with the same message...
[00:40:40]                   │ debg --- retry.tryForTime failed again with the same message...
[00:40:43]                   │ debg --- retry.tryForTime failed again with the same message...
[00:40:46]                   │ debg --- retry.tryForTime failed again with the same message...
[00:40:49]                   │ debg --- retry.tryForTime failed again with the same message...
[00:40:52]                   │ debg --- retry.tryForTime failed again with the same message...
[00:40:55]                   │ debg --- retry.tryForTime failed again with the same message...
[00:40:58]                   │ debg --- retry.tryForTime failed again with the same message...
[00:41:01]                   │ debg --- retry.tryForTime failed again with the same message...
[00:41:04]                   │ debg --- retry.tryForTime failed again with the same message...
[00:41:07]                   │ debg --- retry.tryForTime failed again with the same message...
[00:41:10]                   │ debg --- retry.tryForTime failed again with the same message...
[00:41:13]                   │ debg --- retry.tryForTime failed again with the same message...
[00:41:16]                   │ debg --- retry.tryForTime failed again with the same message...
[00:41:19]                   │ debg --- retry.tryForTime failed again with the same message...
[00:41:22]                   │ debg --- retry.tryForTime failed again with the same message...
[00:41:25]                   │ debg --- retry.tryForTime failed again with the same message...
[00:41:28]                   │ debg --- retry.tryForTime failed again with the same message...
[00:41:31]                   │ debg --- retry.tryForTime failed again with the same message...
[00:41:34]                   │ debg --- retry.tryForTime failed again with the same message...
[00:41:37]                   │ debg --- retry.tryForTime failed again with the same message...
[00:41:40]                   │ debg --- retry.tryForTime failed again with the same message...
[00:41:43]                   │ debg --- retry.tryForTime failed again with the same message...
[00:41:46]                   │ debg --- retry.tryForTime failed again with the same message...
[00:41:49]                   │ debg --- retry.tryForTime failed again with the same message...
[00:41:50]                   │ debg --- retry.tryForTime error: expected testSubject(mlFileImportSuccessCallout) to exist
[00:41:50]                   │ info Taking screenshot "/dev/shm/workspace/parallel/24/kibana/x-pack/test/functional/screenshots/failure/machine learning data visualizer file based with an artificial server log displays and imports a file.png"
[00:41:51]                   │ info Current URL is: http://localhost:61241/app/ml/filedatavisualizer
[00:41:51]                   │ info Saving page source to: /dev/shm/workspace/parallel/24/kibana/x-pack/test/functional/failure_debug/html/machine learning data visualizer file based with an artificial server log displays and imports a file.html
[00:41:51]                   └- ✖ fail: machine learning data visualizer file based with an artificial server log displays and imports a file
[00:41:51]                   │      Error: retry.tryForTime timeout: Error: expected testSubject(mlFileImportSuccessCallout) to exist
[00:41:51]                   │     at TestSubjects.existOrFail (/dev/shm/workspace/parallel/24/kibana/test/functional/services/common/test_subjects.ts:62:15)
[00:41:51]                   │       at onFailure (/dev/shm/workspace/parallel/24/kibana/test/common/services/retry/retry_for_success.ts:28:9)
[00:41:51]                   │       at retryForSuccess (/dev/shm/workspace/parallel/24/kibana/test/common/services/retry/retry_for_success.ts:68:13)
[00:41:51]                   │ 
[00:41:51]                   │ 

Stack Trace

Error: retry.tryForTime timeout: Error: expected testSubject(mlFileImportSuccessCallout) to exist
    at TestSubjects.existOrFail (/dev/shm/workspace/parallel/24/kibana/test/functional/services/common/test_subjects.ts:62:15)
    at onFailure (/dev/shm/workspace/parallel/24/kibana/test/common/services/retry/retry_for_success.ts:28:9)
    at retryForSuccess (/dev/shm/workspace/parallel/24/kibana/test/common/services/retry/retry_for_success.ts:68:13)

Chrome X-Pack UI Functional Tests.x-pack/test/functional/apps/ml/data_visualizer/file_data_visualizer·ts.machine learning data visualizer file based with an artificial server log displays and imports a file

Link to Jenkins

Standard Out

Failed Tests Reporter:
  - Test has failed 1 times on tracked branches: https://dryrun

[00:00:00]       │
[00:00:00]         └-: machine learning
[00:00:00]           └-> "before all" hook
[00:00:00]           └-> "before all" hook
[00:00:00]             │ debg creating role ft_ml_source
[00:00:00]             │ info [o.e.x.s.a.r.TransportPutRoleAction] [kibana-ci-immutable-debian-tests-xxl-1599719563554011181] added role [ft_ml_source]
[00:00:00]             │ debg creating role ft_ml_source_readonly
[00:00:00]             │ info [o.e.x.s.a.r.TransportPutRoleAction] [kibana-ci-immutable-debian-tests-xxl-1599719563554011181] added role [ft_ml_source_readonly]
[00:00:00]             │ debg creating role ft_ml_dest
[00:00:00]             │ info [o.e.x.s.a.r.TransportPutRoleAction] [kibana-ci-immutable-debian-tests-xxl-1599719563554011181] added role [ft_ml_dest]
[00:00:00]             │ debg creating role ft_ml_dest_readonly
[00:00:00]             │ info [o.e.x.s.a.r.TransportPutRoleAction] [kibana-ci-immutable-debian-tests-xxl-1599719563554011181] added role [ft_ml_dest_readonly]
[00:00:00]             │ debg creating role ft_ml_ui_extras
[00:00:00]             │ info [o.e.x.s.a.r.TransportPutRoleAction] [kibana-ci-immutable-debian-tests-xxl-1599719563554011181] added role [ft_ml_ui_extras]
[00:00:00]             │ debg creating role ft_default_space_ml_all
[00:00:00]             │ info [o.e.x.s.a.r.TransportPutRoleAction] [kibana-ci-immutable-debian-tests-xxl-1599719563554011181] added role [ft_default_space_ml_all]
[00:00:00]             │ debg creating role ft_default_space_ml_read
[00:00:00]             │ info [o.e.x.s.a.r.TransportPutRoleAction] [kibana-ci-immutable-debian-tests-xxl-1599719563554011181] added role [ft_default_space_ml_read]
[00:00:00]             │ debg creating role ft_default_space_ml_none
[00:00:00]             │ info [o.e.x.s.a.r.TransportPutRoleAction] [kibana-ci-immutable-debian-tests-xxl-1599719563554011181] added role [ft_default_space_ml_none]
[00:00:00]             │ debg creating user ft_ml_poweruser
[00:00:00]             │ info [o.e.x.s.a.u.TransportPutUserAction] [kibana-ci-immutable-debian-tests-xxl-1599719563554011181] added user [ft_ml_poweruser]
[00:00:00]             │ debg created user ft_ml_poweruser
[00:00:00]             │ debg creating user ft_ml_poweruser_spaces
[00:00:00]             │ info [o.e.x.s.a.u.TransportPutUserAction] [kibana-ci-immutable-debian-tests-xxl-1599719563554011181] added user [ft_ml_poweruser_spaces]
[00:00:00]             │ debg created user ft_ml_poweruser_spaces
[00:00:00]             │ debg creating user ft_ml_viewer
[00:00:01]             │ info [o.e.x.s.a.u.TransportPutUserAction] [kibana-ci-immutable-debian-tests-xxl-1599719563554011181] added user [ft_ml_viewer]
[00:00:01]             │ debg created user ft_ml_viewer
[00:00:01]             │ debg creating user ft_ml_viewer_spaces
[00:00:01]             │ info [o.e.x.s.a.u.TransportPutUserAction] [kibana-ci-immutable-debian-tests-xxl-1599719563554011181] added user [ft_ml_viewer_spaces]
[00:00:01]             │ debg created user ft_ml_viewer_spaces
[00:00:01]             │ debg creating user ft_ml_unauthorized
[00:00:01]             │ info [o.e.x.s.a.u.TransportPutUserAction] [kibana-ci-immutable-debian-tests-xxl-1599719563554011181] added user [ft_ml_unauthorized]
[00:00:01]             │ debg created user ft_ml_unauthorized
[00:00:01]             │ debg creating user ft_ml_unauthorized_spaces
[00:00:01]             │ info [o.e.x.s.a.u.TransportPutUserAction] [kibana-ci-immutable-debian-tests-xxl-1599719563554011181] added user [ft_ml_unauthorized_spaces]
[00:00:01]             │ debg created user ft_ml_unauthorized_spaces
[00:39:22]           └-: data visualizer
[00:39:22]             └-> "before all" hook
[00:40:01]             └-: file based
[00:40:01]               └-> "before all" hook
[00:40:01]               └-> "before all" hook
[00:40:01]                 │ debg applying update to kibana config: {"dateFormat:tz":"UTC"}
[00:40:02]                 │ debg SecurityPage.forceLogout
[00:40:02]                 │ debg Find.existsByDisplayedByCssSelector('.login-form') with timeout=100
[00:40:02]                 │ debg --- retry.tryForTime error: .login-form is not displayed
[00:40:03]                 │ debg Redirecting to /logout to force the logout
[00:40:03]                 │ debg Waiting on the login form to appear
[00:40:03]                 │ debg Waiting for Login Page to appear.
[00:40:03]                 │ debg Waiting up to 100000ms for login page...
[00:40:03]                 │ debg browser[INFO] http://localhost:61241/logout?_t=1599723965834 341 Refused to execute inline script because it violates the following Content Security Policy directive: "script-src 'unsafe-eval' 'self'". Either the 'unsafe-inline' keyword, a hash ('sha256-P5polb1UreUSOe5V/Pv7tc+yeZuJXiOi/3fqhGsU7BE='), or a nonce ('nonce-...') is required to enable inline execution.
[00:40:03]                 │
[00:40:03]                 │ debg browser[INFO] http://localhost:61241/bootstrap.js 42:19 "^ A single error about an inline script not firing due to content security policy is expected!"
[00:40:03]                 │ debg Find.existsByDisplayedByCssSelector('.login-form') with timeout=2500
[00:40:06]                 │ debg browser[INFO] http://localhost:61241/login?_t=1599723965834 341 Refused to execute inline script because it violates the following Content Security Policy directive: "script-src 'unsafe-eval' 'self'". Either the 'unsafe-inline' keyword, a hash ('sha256-P5polb1UreUSOe5V/Pv7tc+yeZuJXiOi/3fqhGsU7BE='), or a nonce ('nonce-...') is required to enable inline execution.
[00:40:06]                 │
[00:40:06]                 │ debg browser[INFO] http://localhost:61241/bootstrap.js 42:19 "^ A single error about an inline script not firing due to content security policy is expected!"
[00:40:06]                 │ERROR browser[SEVERE] http://localhost:61241/internal/licensing/feature_usage/register - Failed to load resource: the server responded with a status of 401 (Unauthorized)
[00:40:06]                 │ debg browser[WARNING] http://localhost:61241/36122/bundles/plugin/uiActionsEnhanced/uiActionsEnhanced.plugin.js 1:314414 "ActionFactory [actionFactory.id = URL_DRILLDOWN] fail to register feature for featureUsage."
[00:40:06]                 │ debg navigating to login url: http://localhost:61241/login
[00:40:06]                 │ debg navigate to: http://localhost:61241/login
[00:40:06]                 │ debg browser[INFO] http://localhost:61241/login?_t=1599723968892 341 Refused to execute inline script because it violates the following Content Security Policy directive: "script-src 'unsafe-eval' 'self'". Either the 'unsafe-inline' keyword, a hash ('sha256-P5polb1UreUSOe5V/Pv7tc+yeZuJXiOi/3fqhGsU7BE='), or a nonce ('nonce-...') is required to enable inline execution.
[00:40:06]                 │
[00:40:06]                 │ debg browser[INFO] http://localhost:61241/bootstrap.js 42:19 "^ A single error about an inline script not firing due to content security policy is expected!"
[00:40:06]                 │ debg ... sleep(700) start
[00:40:07]                 │ debg ... sleep(700) end
[00:40:07]                 │ debg returned from get, calling refresh
[00:40:07]                 │ERROR browser[SEVERE] http://localhost:61241/36122/bundles/core/core.entry.js 83:272044 TypeError: Failed to fetch
[00:40:07]                 │ debg browser[INFO] http://localhost:61241/login?_t=1599723968892 341 Refused to execute inline script because it violates the following Content Security Policy directive: "script-src 'unsafe-eval' 'self'". Either the 'unsafe-inline' keyword, a hash ('sha256-P5polb1UreUSOe5V/Pv7tc+yeZuJXiOi/3fqhGsU7BE='), or a nonce ('nonce-...') is required to enable inline execution.
[00:40:07]                 │
[00:40:07]                 │ debg browser[INFO] http://localhost:61241/bootstrap.js 42:19 "^ A single error about an inline script not firing due to content security policy is expected!"
[00:40:07]                 │ debg currentUrl = http://localhost:61241/login
[00:40:07]                 │          appUrl = http://localhost:61241/login
[00:40:07]                 │ debg TestSubjects.find(kibanaChrome)
[00:40:07]                 │ debg Find.findByCssSelector('[data-test-subj="kibanaChrome"]') with timeout=60000
[00:40:09]                 │ERROR browser[SEVERE] http://localhost:61241/internal/licensing/feature_usage/register - Failed to load resource: the server responded with a status of 401 (Unauthorized)
[00:40:09]                 │ debg browser[WARNING] http://localhost:61241/36122/bundles/plugin/uiActionsEnhanced/uiActionsEnhanced.plugin.js 1:314414 "ActionFactory [actionFactory.id = URL_DRILLDOWN] fail to register feature for featureUsage."
[00:40:09]                 │ debg ... sleep(501) start
[00:40:09]                 │ debg ... sleep(501) end
[00:40:09]                 │ debg in navigateTo url = http://localhost:61241/login
[00:40:09]                 │ debg TestSubjects.exists(statusPageContainer)
[00:40:09]                 │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="statusPageContainer"]') with timeout=2500
[00:40:12]                 │ debg --- retry.tryForTime error: [data-test-subj="statusPageContainer"] is not displayed
[00:40:12]                 │ debg Waiting for Login Form to appear.
[00:40:12]                 │ debg Waiting up to 100000ms for login form...
[00:40:12]                 │ debg TestSubjects.exists(loginForm)
[00:40:12]                 │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="loginForm"]') with timeout=2500
[00:40:12]                 │ debg TestSubjects.setValue(loginUsername, ft_ml_poweruser)
[00:40:12]                 │ debg TestSubjects.click(loginUsername)
[00:40:12]                 │ debg Find.clickByCssSelector('[data-test-subj="loginUsername"]') with timeout=10000
[00:40:12]                 │ debg Find.findByCssSelector('[data-test-subj="loginUsername"]') with timeout=10000
[00:40:13]                 │ debg TestSubjects.setValue(loginPassword, mlp001)
[00:40:13]                 │ debg TestSubjects.click(loginPassword)
[00:40:13]                 │ debg Find.clickByCssSelector('[data-test-subj="loginPassword"]') with timeout=10000
[00:40:13]                 │ debg Find.findByCssSelector('[data-test-subj="loginPassword"]') with timeout=10000
[00:40:13]                 │ debg TestSubjects.click(loginSubmit)
[00:40:13]                 │ debg Find.clickByCssSelector('[data-test-subj="loginSubmit"]') with timeout=10000
[00:40:13]                 │ debg Find.findByCssSelector('[data-test-subj="loginSubmit"]') with timeout=10000
[00:40:13]                 │ debg Waiting for login result, expected: chrome.
[00:40:13]                 │ debg Find.findByCssSelector('[data-test-subj="kibanaChrome"] .app-wrapper:not(.hidden-chrome)') with timeout=20000
[00:40:13]                 │ proc [kibana]   log   [07:46:15.899] [info][plugins][routes][security] Logging in with provider "basic" (basic)
[00:40:15]                 │ debg browser[INFO] http://localhost:61241/app/home 341 Refused to execute inline script because it violates the following Content Security Policy directive: "script-src 'unsafe-eval' 'self'". Either the 'unsafe-inline' keyword, a hash ('sha256-P5polb1UreUSOe5V/Pv7tc+yeZuJXiOi/3fqhGsU7BE='), or a nonce ('nonce-...') is required to enable inline execution.
[00:40:15]                 │
[00:40:15]                 │ debg browser[INFO] http://localhost:61241/bootstrap.js 42:19 "^ A single error about an inline script not firing due to content security policy is expected!"
[00:40:15]                 │ debg Finished login process currentUrl = http://localhost:61241/app/home#/
[00:40:15]                 │ debg Waiting up to 20000ms for logout button visible...
[00:40:15]                 │ debg TestSubjects.exists(userMenuButton)
[00:40:15]                 │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="userMenuButton"]') with timeout=2500
[00:40:15]                 │ debg TestSubjects.exists(userMenu)
[00:40:15]                 │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="userMenu"]') with timeout=2500
[00:40:18]                 │ debg --- retry.tryForTime error: [data-test-subj="userMenu"] is not displayed
[00:40:18]                 │ debg TestSubjects.click(userMenuButton)
[00:40:18]                 │ debg Find.clickByCssSelector('[data-test-subj="userMenuButton"]') with timeout=10000
[00:40:18]                 │ debg Find.findByCssSelector('[data-test-subj="userMenuButton"]') with timeout=10000
[00:40:19]                 │ debg TestSubjects.exists(userMenu)
[00:40:19]                 │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="userMenu"]') with timeout=120000
[00:40:19]                 │ debg TestSubjects.exists(userMenu > logoutLink)
[00:40:19]                 │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="userMenu"] [data-test-subj="logoutLink"]') with timeout=2500
[00:40:19]                 │ debg navigating to ml url: http://localhost:61241/app/ml
[00:40:19]                 │ debg navigate to: http://localhost:61241/app/ml
[00:40:19]                 │ debg browser[INFO] http://localhost:61241/app/ml?_t=1599723981736 341 Refused to execute inline script because it violates the following Content Security Policy directive: "script-src 'unsafe-eval' 'self'". Either the 'unsafe-inline' keyword, a hash ('sha256-P5polb1UreUSOe5V/Pv7tc+yeZuJXiOi/3fqhGsU7BE='), or a nonce ('nonce-...') is required to enable inline execution.
[00:40:19]                 │
[00:40:19]                 │ debg browser[INFO] http://localhost:61241/bootstrap.js 42:19 "^ A single error about an inline script not firing due to content security policy is expected!"
[00:40:19]                 │ debg ... sleep(700) start
[00:40:19]                 │ debg ... sleep(700) end
[00:40:19]                 │ debg returned from get, calling refresh
[00:40:20]                 │ debg browser[WARNING] http://localhost:61241/36122/bundles/plugin/uiActionsEnhanced/uiActionsEnhanced.plugin.js 1:314414 "ActionFactory [actionFactory.id = URL_DRILLDOWN] fail to register feature for featureUsage."
[00:40:20]                 │ERROR browser[SEVERE] http://localhost:61241/36122/bundles/core/core.entry.js 83:272044 TypeError: Failed to fetch
[00:40:20]                 │          at Fetch._callee3$ (http://localhost:61241/36122/bundles/core/core.entry.js:34:105572)
[00:40:20]                 │          at l (http://localhost:61241/36122/bundles/kbn-ui-shared-deps/kbn-ui-shared-deps.js:368:186861)
[00:40:20]                 │          at Generator._invoke (http://localhost:61241/36122/bundles/kbn-ui-shared-deps/kbn-ui-shared-deps.js:368:186614)
[00:40:20]                 │          at Generator.forEach.e.<computed> [as throw] (http://localhost:61241/36122/bundles/kbn-ui-shared-deps/kbn-ui-shared-deps.js:368:187218)
[00:40:20]                 │          at fetch_asyncGeneratorStep (http://localhost:61241/36122/bundles/core/core.entry.js:34:99665)
[00:40:20]                 │          at _throw (http://localhost:61241/36122/bundles/core/core.entry.js:34:100073)
[00:40:20]                 │ debg browser[INFO] http://localhost:61241/app/ml?_t=1599723981736 341 Refused to execute inline script because it violates the following Content Security Policy directive: "script-src 'unsafe-eval' 'self'". Either the 'unsafe-inline' keyword, a hash ('sha256-P5polb1UreUSOe5V/Pv7tc+yeZuJXiOi/3fqhGsU7BE='), or a nonce ('nonce-...') is required to enable inline execution.
[00:40:20]                 │
[00:40:20]                 │ debg browser[INFO] http://localhost:61241/bootstrap.js 42:19 "^ A single error about an inline script not firing due to content security policy is expected!"
[00:40:20]                 │ debg currentUrl = http://localhost:61241/app/ml
[00:40:20]                 │          appUrl = http://localhost:61241/app/ml
[00:40:20]                 │ debg TestSubjects.find(kibanaChrome)
[00:40:20]                 │ debg Find.findByCssSelector('[data-test-subj="kibanaChrome"]') with timeout=60000
[00:40:22]                 │ debg ... sleep(501) start
[00:40:23]                 │ debg ... sleep(501) end
[00:40:23]                 │ debg in navigateTo url = http://localhost:61241/app/ml/overview
[00:40:23]                 │ debg --- retry.try error: URL changed, waiting for it to settle
[00:40:23]                 │ debg ... sleep(501) start
[00:40:24]                 │ debg ... sleep(501) end
[00:40:24]                 │ debg in navigateTo url = http://localhost:61241/app/ml/overview
[00:40:24]                 │ debg TestSubjects.exists(statusPageContainer)
[00:40:24]                 │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="statusPageContainer"]') with timeout=2500
[00:40:26]                 │ debg --- retry.tryForTime error: [data-test-subj="statusPageContainer"] is not displayed
[00:40:27]                 │ debg TestSubjects.exists(mlPageOverview)
[00:40:27]                 │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="mlPageOverview"]') with timeout=2000
[00:40:27]               └-: with an artificial server log
[00:40:27]                 └-> "before all" hook
[00:40:27]                 └-> displays and imports a file
[00:40:27]                   └-> "before each" hook: global before each
[00:40:27]                   │ debg === TEST STEP === loads the data visualizer selector page
[00:40:27]                   │ debg TestSubjects.click(~mlMainTab & ~dataVisualizer)
[00:40:27]                   │ debg Find.clickByCssSelector('[data-test-subj~="mlMainTab"][data-test-subj~="dataVisualizer"]') with timeout=10000
[00:40:27]                   │ debg Find.findByCssSelector('[data-test-subj~="mlMainTab"][data-test-subj~="dataVisualizer"]') with timeout=10000
[00:40:27]                   │ debg TestSubjects.exists(~mlMainTab & ~dataVisualizer & ~selected)
[00:40:27]                   │ debg Find.existsByDisplayedByCssSelector('[data-test-subj~="mlMainTab"][data-test-subj~="dataVisualizer"][data-test-subj~="selected"]') with timeout=120000
[00:40:27]                   │ debg TestSubjects.exists(mlPageDataVisualizerSelector)
[00:40:27]                   │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="mlPageDataVisualizerSelector"]') with timeout=120000
[00:40:27]                   │ debg === TEST STEP === loads the file upload page
[00:40:27]                   │ debg TestSubjects.click(mlDataVisualizerUploadFileButton)
[00:40:27]                   │ debg Find.clickByCssSelector('[data-test-subj="mlDataVisualizerUploadFileButton"]') with timeout=10000
[00:40:27]                   │ debg Find.findByCssSelector('[data-test-subj="mlDataVisualizerUploadFileButton"]') with timeout=10000
[00:40:27]                   │ debg TestSubjects.exists(mlPageFileDataVisualizerUpload)
[00:40:27]                   │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="mlPageFileDataVisualizerUpload"]') with timeout=120000
[00:40:27]                   │ debg === TEST STEP === selects a file and loads visualizer results
[00:40:27]                   │ debg Importing file '/dev/shm/workspace/parallel/24/kibana/x-pack/test/functional/apps/ml/data_visualizer/files_to_import/artificial_server_log' ...
[00:40:27]                   │ debg Setting the path '/dev/shm/workspace/parallel/24/kibana/x-pack/test/functional/apps/ml/data_visualizer/files_to_import/artificial_server_log' on the file input
[00:40:27]                   │ debg Find.findByCssSelector('.euiFilePicker__input') with timeout=10000
[00:40:27]                   │ debg Find.waitForDeletedByCssSelector('[data-test-subj="mlPageFileDataVisLoading"]') with timeout=10000
[00:40:28]                   │ debg TestSubjects.missingOrFail(~mlFileUploadErrorCallout)
[00:40:28]                   │ debg Find.waitForDeletedByCssSelector('[data-test-subj~="mlFileUploadErrorCallout"]') with timeout=2500
[00:40:28]                   │ debg TestSubjects.exists(mlPageFileDataVisResults)
[00:40:28]                   │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="mlPageFileDataVisResults"]') with timeout=120000
[00:40:28]                   │ debg === TEST STEP === displays the components of the file details page
[00:40:28]                   │ debg TestSubjects.getVisibleText(mlFileDataVisResultsTitle)
[00:40:28]                   │ debg TestSubjects.find(mlFileDataVisResultsTitle)
[00:40:28]                   │ debg Find.findByCssSelector('[data-test-subj="mlFileDataVisResultsTitle"]') with timeout=10000
[00:40:28]                   │ debg TestSubjects.exists(mlFileDataVisFileContentPanel)
[00:40:28]                   │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="mlFileDataVisFileContentPanel"]') with timeout=120000
[00:40:29]                   │ debg TestSubjects.exists(mlFileDataVisSummaryPanel)
[00:40:29]                   │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="mlFileDataVisSummaryPanel"]') with timeout=120000
[00:40:29]                   │ debg TestSubjects.exists(mlFileDataVisFileStatsPanel)
[00:40:29]                   │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="mlFileDataVisFileStatsPanel"]') with timeout=120000
[00:40:29]                   │ debg === TEST STEP === loads the import settings page
[00:40:29]                   │ debg TestSubjects.click(mlFileDataVisOpenImportPageButton)
[00:40:29]                   │ debg Find.clickByCssSelector('[data-test-subj="mlFileDataVisOpenImportPageButton"]') with timeout=10000
[00:40:29]                   │ debg Find.findByCssSelector('[data-test-subj="mlFileDataVisOpenImportPageButton"]') with timeout=10000
[00:40:29]                   │ debg TestSubjects.exists(mlPageFileDataVisImport)
[00:40:29]                   │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="mlPageFileDataVisImport"]') with timeout=120000
[00:40:29]                   │ debg === TEST STEP === sets the index name
[00:40:29]                   │ debg TestSubjects.setValueWithChecks(mlFileDataVisIndexNameInput, user-import_1)
[00:40:29]                   │ debg TestSubjects.click(mlFileDataVisIndexNameInput)
[00:40:29]                   │ debg Find.clickByCssSelector('[data-test-subj="mlFileDataVisIndexNameInput"]') with timeout=10000
[00:40:29]                   │ debg Find.findByCssSelector('[data-test-subj="mlFileDataVisIndexNameInput"]') with timeout=10000
[00:40:29]                   │ debg TestSubjects.getAttribute(mlFileDataVisIndexNameInput, value)
[00:40:29]                   │ debg TestSubjects.find(mlFileDataVisIndexNameInput)
[00:40:29]                   │ debg Find.findByCssSelector('[data-test-subj="mlFileDataVisIndexNameInput"]') with timeout=10000
[00:40:29]                   │ debg === TEST STEP === sets the create index pattern checkbox
[00:40:29]                   │ debg TestSubjects.find(mlFileDataVisCreateIndexPatternCheckbox)
[00:40:29]                   │ debg Find.findByCssSelector('[data-test-subj="mlFileDataVisCreateIndexPatternCheckbox"]') with timeout=10000
[00:40:29]                   │ debg TestSubjects.find(mlFileDataVisImportSettingsPanel)
[00:40:29]                   │ debg Find.findByCssSelector('[data-test-subj="mlFileDataVisImportSettingsPanel"]') with timeout=10000
[00:40:29]                   │ debg TestSubjects.find(mlFileDataVisCreateIndexPatternCheckbox)
[00:40:29]                   │ debg Find.findByCssSelector('[data-test-subj="mlFileDataVisCreateIndexPatternCheckbox"]') with timeout=10000
[00:40:29]                   │ debg === TEST STEP === imports the file
[00:40:29]                   │ debg TestSubjects.clickWhenNotDisabled(mlFileDataVisImportButton)
[00:40:29]                   │ debg Find.clickByCssSelectorWhenNotDisabled('[data-test-subj="mlFileDataVisImportButton"]') with timeout=10000
[00:40:29]                   │ debg Find.findByCssSelector('[data-test-subj="mlFileDataVisImportButton"]') with timeout=10000
[00:40:30]                   │ debg TestSubjects.exists(mlFileImportSuccessCallout)
[00:40:30]                   │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="mlFileImportSuccessCallout"]') with timeout=120000
[00:40:32]                   │ info [o.e.c.m.MetadataCreateIndexService] [kibana-ci-immutable-debian-tests-xxl-1599719563554011181] failed on parsing mappings on index creation [user-import_1]
[00:40:32]                   │      org.elasticsearch.index.mapper.MapperParsingException: Failed to parse mapping: No type specified for field [properties]
[00:40:32]                   │      	at org.elasticsearch.index.mapper.MapperService.internalMerge(MapperService.java:296) ~[elasticsearch-8.0.0-SNAPSHOT.jar:8.0.0-SNAPSHOT]
[00:40:32]                   │      	at org.elasticsearch.index.mapper.MapperService.merge(MapperService.java:269) ~[elasticsearch-8.0.0-SNAPSHOT.jar:8.0.0-SNAPSHOT]
[00:40:32]                   │      	at org.elasticsearch.cluster.metadata.MetadataCreateIndexService.updateIndexMappingsAndBuildSortOrder(MetadataCreateIndexService.java:909) ~[elasticsearch-8.0.0-SNAPSHOT.jar:8.0.0-SNAPSHOT]
[00:40:32]                   │      	at org.elasticsearch.cluster.metadata.MetadataCreateIndexService.lambda$applyCreateIndexWithTemporaryService$2(MetadataCreateIndexService.java:412) [elasticsearch-8.0.0-SNAPSHOT.jar:8.0.0-SNAPSHOT]
[00:40:32]                   │      	at org.elasticsearch.indices.IndicesService.withTempIndexService(IndicesService.java:622) [elasticsearch-8.0.0-SNAPSHOT.jar:8.0.0-SNAPSHOT]
[00:40:32]                   │      	at org.elasticsearch.cluster.metadata.MetadataCreateIndexService.applyCreateIndexWithTemporaryService(MetadataCreateIndexService.java:410) [elasticsearch-8.0.0-SNAPSHOT.jar:8.0.0-SNAPSHOT]
[00:40:32]                   │      	at org.elasticsearch.cluster.metadata.MetadataCreateIndexService.applyCreateIndexRequestWithV1Templates(MetadataCreateIndexService.java:488) [elasticsearch-8.0.0-SNAPSHOT.jar:8.0.0-SNAPSHOT]
[00:40:32]                   │      	at org.elasticsearch.cluster.metadata.MetadataCreateIndexService.applyCreateIndexRequest(MetadataCreateIndexService.java:373) [elasticsearch-8.0.0-SNAPSHOT.jar:8.0.0-SNAPSHOT]
[00:40:32]                   │      	at org.elasticsearch.cluster.metadata.MetadataCreateIndexService.applyCreateIndexRequest(MetadataCreateIndexService.java:380) [elasticsearch-8.0.0-SNAPSHOT.jar:8.0.0-SNAPSHOT]
[00:40:32]                   │      	at org.elasticsearch.cluster.metadata.MetadataCreateIndexService$1.execute(MetadataCreateIndexService.java:303) [elasticsearch-8.0.0-SNAPSHOT.jar:8.0.0-SNAPSHOT]
[00:40:32]                   │      	at org.elasticsearch.cluster.ClusterStateUpdateTask.execute(ClusterStateUpdateTask.java:47) [elasticsearch-8.0.0-SNAPSHOT.jar:8.0.0-SNAPSHOT]
[00:40:32]                   │      	at org.elasticsearch.cluster.service.MasterService.executeTasks(MasterService.java:697) [elasticsearch-8.0.0-SNAPSHOT.jar:8.0.0-SNAPSHOT]
[00:40:32]                   │      	at org.elasticsearch.cluster.service.MasterService.calculateTaskOutputs(MasterService.java:319) [elasticsearch-8.0.0-SNAPSHOT.jar:8.0.0-SNAPSHOT]
[00:40:32]                   │      	at org.elasticsearch.cluster.service.MasterService.runTasks(MasterService.java:214) [elasticsearch-8.0.0-SNAPSHOT.jar:8.0.0-SNAPSHOT]
[00:40:32]                   │      	at org.elasticsearch.cluster.service.MasterService$Batcher.run(MasterService.java:151) [elasticsearch-8.0.0-SNAPSHOT.jar:8.0.0-SNAPSHOT]
[00:40:32]                   │      	at org.elasticsearch.cluster.service.TaskBatcher.runIfNotProcessed(TaskBatcher.java:150) [elasticsearch-8.0.0-SNAPSHOT.jar:8.0.0-SNAPSHOT]
[00:40:32]                   │      	at org.elasticsearch.cluster.service.TaskBatcher$BatchedTask.run(TaskBatcher.java:188) [elasticsearch-8.0.0-SNAPSHOT.jar:8.0.0-SNAPSHOT]
[00:40:32]                   │      	at org.elasticsearch.common.util.concurrent.ThreadContext$ContextPreservingRunnable.run(ThreadContext.java:647) [elasticsearch-8.0.0-SNAPSHOT.jar:8.0.0-SNAPSHOT]
[00:40:32]                   │      	at org.elasticsearch.common.util.concurrent.PrioritizedEsThreadPoolExecutor$TieBreakingPrioritizedRunnable.runAndClean(PrioritizedEsThreadPoolExecutor.java:252) [elasticsearch-8.0.0-SNAPSHOT.jar:8.0.0-SNAPSHOT]
[00:40:32]                   │      	at org.elasticsearch.common.util.concurrent.PrioritizedEsThreadPoolExecutor$TieBreakingPrioritizedRunnable.run(PrioritizedEsThreadPoolExecutor.java:215) [elasticsearch-8.0.0-SNAPSHOT.jar:8.0.0-SNAPSHOT]
[00:40:32]                   │      	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130) [?:?]
[00:40:32]                   │      	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630) [?:?]
[00:40:32]                   │      	at java.lang.Thread.run(Thread.java:832) [?:?]
[00:40:32]                   │      Caused by: org.elasticsearch.index.mapper.MapperParsingException: No type specified for field [properties]
[00:40:32]                   │      	at org.elasticsearch.index.mapper.ObjectMapper$TypeParser.parseProperties(ObjectMapper.java:310) ~[elasticsearch-8.0.0-SNAPSHOT.jar:8.0.0-SNAPSHOT]
[00:40:32]                   │      	at org.elasticsearch.index.mapper.ObjectMapper$TypeParser.parseObjectOrDocumentTypeProperties(ObjectMapper.java:237) ~[elasticsearch-8.0.0-SNAPSHOT.jar:8.0.0-SNAPSHOT]
[00:40:32]                   │      	at org.elasticsearch.index.mapper.RootObjectMapper$TypeParser.parse(RootObjectMapper.java:138) ~[elasticsearch-8.0.0-SNAPSHOT.jar:8.0.0-SNAPSHOT]
[00:40:32]                   │      	at org.elasticsearch.index.mapper.DocumentMapperParser.parse(DocumentMapperParser.java:105) ~[elasticsearch-8.0.0-SNAPSHOT.jar:8.0.0-SNAPSHOT]
[00:40:32]                   │      	at org.elasticsearch.index.mapper.DocumentMapperParser.parse(DocumentMapperParser.java:93) ~[elasticsearch-8.0.0-SNAPSHOT.jar:8.0.0-SNAPSHOT]
[00:40:32]                   │      	at org.elasticsearch.index.mapper.MapperService.internalMerge(MapperService.java:294) ~[elasticsearch-8.0.0-SNAPSHOT.jar:8.0.0-SNAPSHOT]
[00:40:32]                   │      	... 22 more
[00:40:32]                   │ proc [kibana]   log   [07:46:35.230] [error][data][elasticsearch] [mapper_parsing_exception]: Failed to parse mapping: No type specified for field [properties]
[00:40:33]                   │ debg --- retry.tryForTime error: [data-test-subj="mlFileImportSuccessCallout"] is not displayed
[00:40:36]                   │ debg --- retry.tryForTime failed again with the same message...
[00:40:39]                   │ debg --- retry.tryForTime failed again with the same message...
[00:40:42]                   │ debg --- retry.tryForTime failed again with the same message...
[00:40:45]                   │ debg --- retry.tryForTime failed again with the same message...
[00:40:48]                   │ debg --- retry.tryForTime failed again with the same message...
[00:40:51]                   │ debg --- retry.tryForTime failed again with the same message...
[00:40:54]                   │ debg --- retry.tryForTime failed again with the same message...
[00:40:57]                   │ debg --- retry.tryForTime failed again with the same message...
[00:41:00]                   │ debg --- retry.tryForTime failed again with the same message...
[00:41:03]                   │ debg --- retry.tryForTime failed again with the same message...
[00:41:06]                   │ debg --- retry.tryForTime failed again with the same message...
[00:41:09]                   │ debg --- retry.tryForTime failed again with the same message...
[00:41:12]                   │ debg --- retry.tryForTime failed again with the same message...
[00:41:15]                   │ debg --- retry.tryForTime failed again with the same message...
[00:41:18]                   │ debg --- retry.tryForTime failed again with the same message...
[00:41:21]                   │ debg --- retry.tryForTime failed again with the same message...
[00:41:24]                   │ debg --- retry.tryForTime failed again with the same message...
[00:41:27]                   │ debg --- retry.tryForTime failed again with the same message...
[00:41:30]                   │ debg --- retry.tryForTime failed again with the same message...
[00:41:33]                   │ debg --- retry.tryForTime failed again with the same message...
[00:41:36]                   │ debg --- retry.tryForTime failed again with the same message...
[00:41:39]                   │ debg --- retry.tryForTime failed again with the same message...
[00:41:42]                   │ debg --- retry.tryForTime failed again with the same message...
[00:41:45]                   │ debg --- retry.tryForTime failed again with the same message...
[00:41:49]                   │ debg --- retry.tryForTime failed again with the same message...
[00:41:52]                   │ debg --- retry.tryForTime failed again with the same message...
[00:41:55]                   │ debg --- retry.tryForTime failed again with the same message...
[00:41:58]                   │ debg --- retry.tryForTime failed again with the same message...
[00:42:01]                   │ debg --- retry.tryForTime failed again with the same message...
[00:42:04]                   │ debg --- retry.tryForTime failed again with the same message...
[00:42:07]                   │ debg --- retry.tryForTime failed again with the same message...
[00:42:10]                   │ debg --- retry.tryForTime failed again with the same message...
[00:42:13]                   │ debg --- retry.tryForTime failed again with the same message...
[00:42:16]                   │ debg --- retry.tryForTime failed again with the same message...
[00:42:19]                   │ debg --- retry.tryForTime failed again with the same message...
[00:42:22]                   │ debg --- retry.tryForTime failed again with the same message...
[00:42:25]                   │ debg --- retry.tryForTime failed again with the same message...
[00:42:28]                   │ debg --- retry.tryForTime failed again with the same message...
[00:42:31]                   │ debg --- retry.tryForTime failed again with the same message...
[00:42:32]                   │ debg --- retry.tryForTime error: expected testSubject(mlFileImportSuccessCallout) to exist
[00:42:32]                   │ info Taking screenshot "/dev/shm/workspace/parallel/24/kibana/x-pack/test/functional/screenshots/failure/machine learning data visualizer file based with an artificial server log displays and imports a file.png"
[00:42:32]                   │ info Current URL is: http://localhost:61241/app/ml/filedatavisualizer
[00:42:32]                   │ info Saving page source to: /dev/shm/workspace/parallel/24/kibana/x-pack/test/functional/failure_debug/html/machine learning data visualizer file based with an artificial server log displays and imports a file.html
[00:42:32]                   └- ✖ fail: machine learning data visualizer file based with an artificial server log displays and imports a file
[00:42:32]                   │      Error: retry.tryForTime timeout: Error: expected testSubject(mlFileImportSuccessCallout) to exist
[00:42:32]                   │     at TestSubjects.existOrFail (/dev/shm/workspace/parallel/24/kibana/test/functional/services/common/test_subjects.ts:62:15)
[00:42:32]                   │       at onFailure (/dev/shm/workspace/parallel/24/kibana/test/common/services/retry/retry_for_success.ts:28:9)
[00:42:32]                   │       at retryForSuccess (/dev/shm/workspace/parallel/24/kibana/test/common/services/retry/retry_for_success.ts:68:13)
[00:42:32]                   │ 
[00:42:32]                   │ 

Stack Trace

Error: retry.tryForTime timeout: Error: expected testSubject(mlFileImportSuccessCallout) to exist
    at TestSubjects.existOrFail (/dev/shm/workspace/parallel/24/kibana/test/functional/services/common/test_subjects.ts:62:15)
    at onFailure (/dev/shm/workspace/parallel/24/kibana/test/common/services/retry/retry_for_success.ts:28:9)
    at retryForSuccess (/dev/shm/workspace/parallel/24/kibana/test/common/services/retry/retry_for_success.ts:68:13)

Build metrics

async chunks size

id value diff baseline
discover 431.1KB +315.0B 430.8KB

page load bundle size

id value diff baseline
data 1.4MB +69.0B 1.4MB

History

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

@@ -381,6 +381,8 @@ export class SearchSource {
case 'fields':
const fields = uniq((data[key] || []).concat(val));
return addToRoot(key, fields);
case 'fieldsApi':
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 we need to start this as a larger discussion with App Arch and Stacey (feel free to ping them here once you want to open this PR for review). I am a bit torn on already having a fields API in the search source and now add a fieldsApi parameter to it, that will set this to the fields part of the query. I think the following code as a consumer is just not really understandable:

searchSource
  .setField('fields', ['bar', 'baz'])
  .setField('fieldsApi', ['some_field']);

Since SearchSource is a rather present API, we're needing in a lot of places, I'd not want to dilute it for a work-around that we need in Discover.

The fields field in search source, already does multiple things, like stored_fields and docvalue_fields. I think we should rather make sure that key will also handle fields (in the ES query) correctly. Maybe we can even replace stored_fields and docvalue_fields in that API completely by using the fields API for them too.

tl;dr: I think we need to have some discussion with App Arch to find a proper longer term solution for this part, the other part looks as the initial workaround fine for me.

Copy link
Member Author

Choose a reason for hiding this comment

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

dear @elastic/kibana-app-arch & @stacey-gammon

so the requirements are, that SearchSource would would provide access to the search-fields API

https://www.elastic.co/guide/en/elasticsearch/reference/master/search-fields.html

Like Tim mentioned the fields field was already taken, modifying it's functionality broke several functional tests, so I've added a fieldsApi field, which would provide the functionality Discover would need. Maybe it would make sense to create a separate issue for this, unless everybody thinks the solution provided in this PR is fine. I also would prefer a single fields field in SearchSource, but the approach I've tried to implement here broke the following functional tests:
https://kibana-ci.elastic.co/job/elastic+kibana+pipeline-pull-request/73366/

Copy link
Contributor

Choose a reason for hiding this comment

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

++ to creating a separate issue to solve this. I think we should make sure the changes made to search source are developer friendly, documented, tested, etc, and not exposed as a hack to solve this particular problem in the short term.

Copy link
Member Author

Choose a reason for hiding this comment

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

Here's the issue: #77241

Copy link
Member

Choose a reason for hiding this comment

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

thanks @kertal, we'll discuss this and get back to you. is this a blocker for discover at the moment ?

Copy link
Member

Choose a reason for hiding this comment

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

hmm, that issue seems very general, should we open one for discover specifically ? what exactly is the issue for discover, the request searchsource sends out or the response provided ? searchsource will return full response so its up to you how you parse it.

Copy link
Member Author

Choose a reason for hiding this comment

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

@ppisljar I've created an issue #77300 but closed in favor of #77241. It's basically the question: how to extend SearchSource in a non-hacky way to have access to the fields API of search. Without the extension runtime fields don't work in Discover.

Copy link
Contributor

Choose a reason for hiding this comment

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

#77107 is the Discover specific issue that this PR attempts to fix.

@kertal
Copy link
Member Author

kertal commented Nov 17, 2020

Closing this since it's a POC, and there will be no iteration

@kertal kertal closed this Nov 17, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Feature:Discover Discover Application
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants