Skip to content

Conversation

@aniketkatkar97
Copy link
Member

This pull request improves the setup process for advanced search tests involving custom properties by making the retrieval and filtering of custom properties more precise and maintainable. The changes ensure that only custom properties created during the test setup are used in subsequent steps, reducing the risk of interference from pre-existing data.

Enhancements to custom property test setup:

  • Added comments and structured API calls to clearly fetch metadata types and dashboard metadata types needed for custom property creation.
  • Introduced logic to filter and store only the custom properties created during the current test setup, ensuring test isolation and accuracy.
  • Created a mapping of custom property names to their details and values, and updated the dashboard entity with these specific custom property values.

@aniketkatkar97 aniketkatkar97 self-assigned this Jan 26, 2026
@aniketkatkar97 aniketkatkar97 requested a review from a team as a code owner January 26, 2026 10:06
@aniketkatkar97 aniketkatkar97 added the To release Will cherry-pick this PR into the release branch label Jan 26, 2026
@github-actions github-actions bot added safe to test Add this label to run secure Github workflows on PRs UI UI specific issues labels Jan 26, 2026
@gitar-bot
Copy link

gitar-bot bot commented Jan 26, 2026

🔍 CI failure analysis for aeedacc: Five CI failures detected: Jobs 4,5,6 recovered on retry (infrastructure issues resolved). Job 3 had 2 test failures. Job 2 experienced catastrophic failure with 205 failed tests (42% failure rate) due to application server unresponsiveness causing widespread page load timeouts. All are infrastructure/stability issues unrelated to PR changes.

Summary of All CI Failures

Jobs 4, 5, 6: Infrastructure issues that resolved on retry ✅

  • Job (6, 6): Roles test timeout - RECOVERED
  • Job (4, 6): IBM server connectivity - RECOVERED
  • Job (5, 6): Microsoft package repository 403 - RECOVERED

Job (3, 6): 2 test failures, 7 flaky, 586 passed

  • Pipeline redeploy success message not visible
  • Alert page navigation timeout

Job (2, 6): CATASTROPHIC FAILURE - 205 failed, 38 flaky, 242 passed

Issue 5: playwright-ci-postgresql (2, 6) - Application Server Failure

Massive test failure affecting 205 tests (42% failure rate) over 3 hour runtime.

Root Cause: Application server became unresponsive or extremely slow, causing widespread page navigation timeouts:

TimeoutError: page.goto: Timeout 60000ms exceeded.
Error: page.click: Test timeout of 540000ms exceeded.
Error: locator.fill: Test timeout of 540000ms exceeded.
TimeoutError: page.waitForURL: Timeout 60000ms exceeded.

Impact:

  • 205 tests failed (42% of total)
  • 38 tests were flaky
  • 242 tests passed
  • Runtime: 3 hours (significantly longer than normal)

Affected Test Areas:

  • Glossary operations (multiple tests failed on navigation timeouts)
  • Bulk Edit Entity (Database, Table operations)
  • Column Bulk Operations
  • Bulk Import
  • Entity Rename
  • Entity data teardown

Example Errors:

  • TimeoutError: page.goto: Timeout 60000ms exceeded - Application failed to load pages
  • Error: page.click: Test timeout of 540000ms exceeded - Clicks failed to complete (9-minute timeout!)
  • Error: locator.fill: Test timeout of 540000ms exceeded - Form fills timed out
  • Error: Failed to delete glossary "...": 404 Not Found - Backend operations failed

Root Cause Analysis:
The pervasive nature of timeouts across completely unrelated test suites (Glossary, Bulk Edit, Column Operations, etc.) indicates:

  1. Application server was unresponsive or severely degraded
  2. Possible memory exhaustion or resource contention
  3. Database connection issues or deadlocks
  4. Infrastructure instability during the 3-hour test run

This is NOT a flaky test issue but a complete application infrastructure failure during the test run.

Details

All five failures are completely unrelated to the PR changes:

  • PR scope: Only modifies customPropertyAdvancedSearchUtils.ts to improve test isolation by filtering custom properties
  • Failure 1-3: Infrastructure (IBM connectivity, Microsoft 403, Roles timeout) - ALL RECOVERED
  • Failure 4: Test suite pipeline redeployment and observability alerts (job 3/6)
  • Failure 5: Application server failure affecting 205 tests across all test suites (job 2/6)
  • No code path intersection: Custom property search utilities have zero connection to application server health, resource management, database connectivity, or any of the 205 failing test scenarios

Conclusion

Five infrastructure/stability issues detected:

  1. Jobs (4, 5, 6): Infrastructure issues - RESOLVED on retry ✅
  2. Job (3, 6): Application timing issues with 2 failures, 7 flaky
  3. Job (2, 6): Critical application server failure - 205 tests failed due to widespread unresponsiveness

The job (2, 6) failure is a severe infrastructure issue where the application server became unresponsive during the test run, causing 42% of tests to fail with timeout errors. This is a transient infrastructure problem that should be resolved by retrying the CI job, as it is not caused by the PR changes.

Code Review ⚠️ Changes requested 0 resolved / 1 findings

Good fix for test flakiness with one null-safety issue. The filtering logic is correct but needs optional chaining before .filter() to prevent runtime errors when customProperties is undefined.

⚠️ Bug: Missing null check before .filter() can cause runtime error

📄 openmetadata-ui/src/main/resources/ui/playwright/utils/customPropertyAdvancedSearchUtils.ts:39

The code calls .filter() directly on metadataTypesJson?.customProperties without first checking if it's defined. If metadataTypesJson is undefined/null, or if customProperties is undefined, calling .filter() will throw a TypeError: "Cannot read property 'filter' of undefined".

The original code handled this correctly with: metadataTypesJson?.customProperties || []

Impact: If the API response is malformed or the request fails in a way that returns empty data, the test will crash with an unhandled exception instead of gracefully using an empty array.

Suggested fix:

testData.createdCPData =
  metadataTypesJson?.customProperties?.filter((cp: CustomPropertyDetails) =>
    createdCustomPropertyNamesList.has(cp.name)
  ) || [];

Adding optional chaining (?.) before .filter() ensures the filter is only called if customProperties exists, allowing the || [] fallback to work as intended.

Tip

Comment Gitar fix CI or enable auto-apply: gitar auto-apply:on

Options

Auto-apply is off → Gitar will not commit updates to this branch.
Display: compact → Showing less information.

Comment with these commands to change:

Auto-apply Compact
gitar auto-apply:on         
gitar display:verbose         

Was this helpful? React with 👍 / 👎 | Gitar

@github-actions
Copy link
Contributor

Jest test Coverage

UI tests summary

Lines Statements Branches Functions
Coverage: 65%
65.82% (55592/84464) 44.82% (28665/63953) 47.72% (8734/18301)

@sonarqubecloud
Copy link

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

safe to test Add this label to run secure Github workflows on PRs To release Will cherry-pick this PR into the release branch UI UI specific issues

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants