elastic / kibana

Your window into the Elastic Stack
https://www.elastic.co/products/kibana
Other
19.76k stars 8.17k forks source link

Failing test: Jest Integration Tests.src/core/server/integration_tests/saved_objects/migrations/group3 - when splitting .kibana into multiple indices and one clone fails after resolving the problem and retrying the migration completes successfully #163253

Closed kibanamachine closed 3 months ago

kibanamachine commented 1 year ago

A test failed on a tracked branch

Jest encountered an unexpected token

Jest failed to parse a file. This happens e.g. when your code or its dependencies use non-standard JavaScript syntax, or when Jest is not configured to support such syntax.

Out of the box Jest supports Babel, which will be used to transform your files into valid JS based on your Babel configuration.

By default "node_modules" folder is ignored by transformers.

Here's what you can do:
 • If you are trying to use ECMAScript Modules, see https://jestjs.io/docs/ecmascript-modules for how to enable it.
 • If you are trying to use TypeScript, see https://jestjs.io/docs/getting-started#using-typescript
 • To have some of your "node_modules" files transformed, you can specify a custom "transformIgnorePatterns" in your config.
 • If you need a custom transformation specify a "transform" option in your config.
 • If you simply want to mock your non-JS modules (e.g. binary assets) you can stub them out with the "moduleNameMapper" config option.

You'll find more details and examples of these config options in the docs:
https://jestjs.io/docs/configuration
For information about custom transformations, see:
https://jestjs.io/docs/code-transformation

Details:

SyntaxError: /var/lib/buildkite-agent/builds/kb-n2-4-spot-f484cd9f26dcc6f4/elastic/kibana-on-merge/kibana/x-pack/plugins/cases/common/ui/types.ts: Identifier 'CaseMetricsFeature' has already been declared. (39:2)

  37 |   UserActionFindRequestTypes,
  38 |   UserActionFindResponse,
> 39 |   CaseMetricsFeature,
     |   ^
  40 |   CasesMetricsResponse,
  41 |   SingleCaseMetricsResponse,
  42 | } from '../types/api';
    at instantiate (/var/lib/buildkite-agent/builds/kb-n2-4-spot-f484cd9f26dcc6f4/elastic/kibana-on-merge/kibana/node_modules/@babel/parser/src/parse-error/credentials.ts:62:21)
    at instantiate (/var/lib/buildkite-agent/builds/kb-n2-4-spot-f484cd9f26dcc6f4/elastic/kibana-on-merge/kibana/node_modules/@babel/parser/src/parse-error.ts:60:12)
    at TypeScriptParserMixin.toParseError [as raise] (/var/lib/buildkite-agent/builds/kb-n2-4-spot-f484cd9f26dcc6f4/elastic/kibana-on-merge/kibana/node_modules/@babel/parser/src/tokenizer/index.ts:1464:19)
    at TypeScriptScopeHandler.raise [as declareName] (/var/lib/buildkite-agent/builds/kb-n2-4-spot-f484cd9f26dcc6f4/elastic/kibana-on-merge/kibana/node_modules/@babel/parser/src/plugins/typescript/scope.ts:83:21)
    at TypeScriptParserMixin.declareName [as declareNameFromIdentifier] (/var/lib/buildkite-agent/builds/kb-n2-4-spot-f484cd9f26dcc6f4/elastic/kibana-on-merge/kibana/node_modules/@babel/parser/src/parser/lval.ts:705:16)
    at TypeScriptParserMixin.declareNameFromIdentifier [as checkIdentifier] (/var/lib/buildkite-agent/builds/kb-n2-4-spot-f484cd9f26dcc6f4/elastic/kibana-on-merge/kibana/node_modules/@babel/parser/src/parser/lval.ts:700:12)
    at TypeScriptParserMixin.checkIdentifier [as checkLVal] (/var/lib/buildkite-agent/builds/kb-n2-4-spot-f484cd9f26dcc6f4/elastic/kibana-on-merge/kibana/node_modules/@babel/parser/src/parser/lval.ts:615:12)
    at TypeScriptParserMixin.checkLVal [as finishImportSpecifier] (/var/lib/buildkite-agent/builds/kb-n2-4-spot-f484cd9f26dcc6f4/elastic/kibana-on-merge/kibana/node_modules/@babel/parser/src/parser/statement.ts:3000:10)
    at TypeScriptParserMixin.finishImportSpecifier (/var/lib/buildkite-agent/builds/kb-n2-4-spot-f484cd9f26dcc6f4/elastic/kibana-on-merge/kibana/node_modules/@babel/parser/src/parser/statement.ts:3208:17)
    at TypeScriptParserMixin.parseImportSpecifier (/var/lib/buildkite-agent/builds/kb-n2-4-spot-f484cd9f26dcc6f4/elastic/kibana-on-merge/kibana/node_modules/@babel/parser/src/plugins/typescript/index.ts:4024:20)
    at TypeScriptParserMixin.parseImportSpecifier [as parseNamedImportSpecifiers] (/var/lib/buildkite-agent/builds/kb-n2-4-spot-f484cd9f26dcc6f4/elastic/kibana-on-merge/kibana/node_modules/@babel/parser/src/parser/statement.ts:3167:36)
    at TypeScriptParserMixin.parseNamedImportSpecifiers (/var/lib/buildkite-agent/builds/kb-n2-4-spot-f484cd9f26dcc6f4/elastic/kibana-on-merge/kibana/node_modules/@babel/parser/src/parser/statement.ts:2946:39)
    at TypeScriptParserMixin.parseImport (/var/lib/buildkite-agent/builds/kb-n2-4-spot-f484cd9f26dcc6f4/elastic/kibana-on-merge/kibana/node_modules/@babel/parser/src/plugins/typescript/index.ts:2702:32)
    at TypeScriptParserMixin.parseImport (/var/lib/buildkite-agent/builds/kb-n2-4-spot-f484cd9f26dcc6f4/elastic/kibana-on-merge/kibana/node_modules/@babel/parser/src/parser/statement.ts:571:25)
    at TypeScriptParserMixin.parseStatementContent (/var/lib/buildkite-agent/builds/kb-n2-4-spot-f484cd9f26dcc6f4/elastic/kibana-on-merge/kibana/node_modules/@babel/parser/src/plugins/typescript/index.ts:2857:20)
    at TypeScriptParserMixin.parseStatementContent [as parseStatementLike] (/var/lib/buildkite-agent/builds/kb-n2-4-spot-f484cd9f26dcc6f4/elastic/kibana-on-merge/kibana/node_modules/@babel/parser/src/parser/statement.ts:416:17)
    at TypeScriptParserMixin.parseStatementLike [as parseModuleItem] (/var/lib/buildkite-agent/builds/kb-n2-4-spot-f484cd9f26dcc6f4/elastic/kibana-on-merge/kibana/node_modules/@babel/parser/src/parser/statement.ts:353:17)
    at TypeScriptParserMixin.parseModuleItem [as parseBlockOrModuleBlockBody] (/var/lib/buildkite-agent/builds/kb-n2-4-spot-f484cd9f26dcc6f4/elastic/kibana-on-merge/kibana/node_modules/@babel/parser/src/parser/statement.ts:1362:16)
    at TypeScriptParserMixin.parseBlockOrModuleBlockBody [as parseBlockBody] (/var/lib/buildkite-agent/builds/kb-n2-4-spot-f484cd9f26dcc6f4/elastic/kibana-on-merge/kibana/node_modules/@babel/parser/src/parser/statement.ts:1336:10)
    at TypeScriptParserMixin.parseBlockBody [as parseProgram] (/var/lib/buildkite-agent/builds/kb-n2-4-spot-f484cd9f26dcc6f4/elastic/kibana-on-merge/kibana/node_modules/@babel/parser/src/parser/statement.ts:226:10)
    at TypeScriptParserMixin.parseProgram [as parseTopLevel] (/var/lib/buildkite-agent/builds/kb-n2-4-spot-f484cd9f26dcc6f4/elastic/kibana-on-merge/kibana/node_modules/@babel/parser/src/parser/statement.ts:208:25)
    at TypeScriptParserMixin.parseTopLevel (/var/lib/buildkite-agent/builds/kb-n2-4-spot-f484cd9f26dcc6f4/elastic/kibana-on-merge/kibana/node_modules/@babel/parser/src/parser/index.ts:45:10)
    at TypeScriptParserMixin.parse (/var/lib/buildkite-agent/builds/kb-n2-4-spot-f484cd9f26dcc6f4/elastic/kibana-on-merge/kibana/node_modules/@babel/parser/src/plugins/typescript/index.ts:3974:20)
    at parse (/var/lib/buildkite-agent/builds/kb-n2-4-spot-f484cd9f26dcc6f4/elastic/kibana-on-merge/kibana/node_modules/@babel/parser/src/index.ts:67:38)
    at parser (/var/lib/buildkite-agent/builds/kb-n2-4-spot-f484cd9f26dcc6f4/elastic/kibana-on-merge/kibana/node_modules/@babel/core/src/parser/index.ts:28:19)
    at parser.next (<anonymous>)
    at normalizeFile (/var/lib/buildkite-agent/builds/kb-n2-4-spot-f484cd9f26dcc6f4/elastic/kibana-on-merge/kibana/node_modules/@babel/core/src/transformation/normalize-file.ts:51:24)
    at normalizeFile.next (<anonymous>)
    at run (/var/lib/buildkite-agent/builds/kb-n2-4-spot-f484cd9f26dcc6f4/elastic/kibana-on-merge/kibana/node_modules/@babel/core/src/transformation/index.ts:38:36)
    at run.next (<anonymous>)
    at transform (/var/lib/buildkite-agent/builds/kb-n2-4-spot-f484cd9f26dcc6f4/elastic/kibana-on-merge/kibana/node_modules/@babel/core/src/transform.ts:29:20)
    at transform.next (<anonymous>)
    at evaluateSync (/var/lib/buildkite-agent/builds/kb-n2-4-spot-f484cd9f26dcc6f4/elastic/kibana-on-merge/kibana/node_modules/gensync/index.js:251:28)
    at sync (/var/lib/buildkite-agent/builds/kb-n2-4-spot-f484cd9f26dcc6f4/elastic/kibana-on-merge/kibana/node_modules/gensync/index.js:89:14)
    at fn (/var/lib/buildkite-agent/builds/kb-n2-4-spot-f484cd9f26dcc6f4/elastic/kibana-on-merge/kibana/node_modules/@babel/core/src/errors/rewrite-stack-trace.ts:97:14)
    at transformSync (/var/lib/buildkite-agent/builds/kb-n2-4-spot-f484cd9f26dcc6f4/elastic/kibana-on-merge/kibana/node_modules/@babel/core/src/transform.ts:66:52)
    at Object.process (/var/lib/buildkite-agent/builds/kb-n2-4-spot-f484cd9f26dcc6f4/elastic/kibana-on-merge/kibana/node_modules/babel-j
[report_failure] output truncated to 8192 characters

First failure: CI Build - main

elasticmachine commented 1 year ago

Pinging @elastic/kibana-core (Team:Core)

afharo commented 1 year ago

Caused by the same reason as https://github.com/elastic/kibana/issues/163273. Closing.

kibanamachine commented 1 year ago

New failure: CI Build - main

kibanamachine commented 1 year ago

New failure: CI Build - main

kibanamachine commented 1 year ago

New failure: CI Build - main

kibanamachine commented 1 year ago

New failure: CI Build - main

kibanamachine commented 10 months ago

New failure: CI Build - main

kibanamachine commented 10 months ago

New failure: CI Build - main

kibanamachine commented 9 months ago

New failure: CI Build - main

pgayvallet commented 9 months ago

Actual error from the last CI build:

FAIL  src/core/server/integration_tests/saved_objects/migrations/group3/split_failed_to_clone.test.ts (63.424 s)
--
  | ● when splitting .kibana into multiple indices and one clone fails › after resolving the problem and retrying the migration completes successfully
  |  
  | expect(received).rejects.toThrowError(expected)
  |  
  | Expected pattern: /cluster_shard_limit_exceeded/
  | Received message: "Unable to complete saved object migrations for the [.kibana_task_manager] index. Please check the health of your Elasticsearch cluster and try again. Unexpected Elasticsearch ResponseError: statusCode: 404, method: GET, url: /_tasks/VpXIdVnGRjishpLCm0CrzA%3A431?wait_for_completion=true&timeout=120s error: [resource_not_found_exception]: task [VpXIdVnGRjishpLCm0CrzA:431] isn't running and hasn't stored its results,"
kibanamachine commented 9 months ago

New failure: CI Build - main

kibanamachine commented 9 months ago

New failure: CI Build - main

delanni commented 9 months ago

/skip

delanni commented 9 months ago

Started to break on PRs and main: https://github.com/elastic/kibana/commit/960b1a1fbe774215bcc457e83cb5f5ba78c99a83

kibanamachine commented 4 months ago

New failure: kibana-on-merge - main

kibanamachine commented 4 months ago

New failure: kibana-on-merge - main

mistic commented 4 months ago

Skipped.

main: b122b46

afharo commented 4 months ago

This is a new error:

Error: expect(received).rejects.toThrowError(expected)

Expected pattern: /cluster_shard_limit_exceeded/
Received message: "Unable to complete saved object migrations for the [.kibana_task_manager] index. Please check the health of your Elasticsearch cluster and try again. Unexpected Elasticsearch ResponseError: statusCode: 404, method: GET, url: /_tasks/VpXIdVnGRjishpLCm0CrzA%3A458?wait_for_completion=true&timeout=120s error: [resource_not_found_exception]: task [VpXIdVnGRjishpLCm0CrzA:458] isn't running and hasn't stored its results,"

I'll take a look at what could cause them.

UPDATE: It looks like the same error as reported in https://github.com/elastic/kibana/issues/163253#issuecomment-1853378582

gsoldevila commented 3 months ago

I have identified the place where the error happens, it's the CLEANUP_UNKNOWN_AND_EXCLUDED_WAIT_FOR_TASK. When performing a compatible migration, we update documents in place, but we also cleanup those that are unknown or excluded.

Even though we have a retry mechanism to keep trying until task completes, this time we're getting a 404 Not Found. I've searched for the error message, and ES is throwing this error in 2 places in this file:

If we take a step back and look at the test, Rudolf is trying to make migrations fail on purpose, by doing:

  // cause a failure when cloning .kibana_slow_clone_* indices 
  await client.cluster.putSettings({ persistent: { 'cluster.max_shards_per_node': 15 } });

after which, we expect

  await expect(runMigrationsWhichFailsWhenCloning()).rejects.toThrowError(
    /cluster_shard_limit_exceeded/
  );

However, it seems that we might be failing before we attempt to create enough SO indices to cause the expected failure. My theory is that this max_shards_per_node can be messing up with ES, not allowing it to create its internal _tasks index.

gsoldevila commented 3 months ago

Fixed by https://github.com/elastic/kibana/pull/185005