Fix: Jest Vue3 MR and jest vue3 predictive jobs taking 80 minutes
Summary
Jest Vue3 mr and jest vue3 predictive Jobs are the largest contributor to job timeout failures in our CI pipeline, accounting for 46% of all detected hang time over the last 28 days.
Jobs consistently hang after completing test execution, specifically after the ai_genie_spec.js test passes.
This has resulted in 453+ hours of wasted CI compute time over the analyzed period, affecting 315 jobs with an average hang duration of ~86-88 minutes per job.
Problem Description
Impact
| Metric | Value |
|---|---|
| Total hang duration (jest vue3 mr) | 438 hours 42 minutes |
| Total hang duration (jest vue3 predictive) | 14 hours 44 minutes |
| Affected jobs (analyzed period) | 315 jobs |
| Average hang duration per job | ~86-88 minutes |
| Percentage of total CI hang time | 81% |
This represents significant wasted compute resources, delayed pipeline feedback, and increased infrastructure costs.
Hang Pattern
All affected jobs exhibit a consistent pattern:
- Tests execute and pass successfully
- Last logged message is typically:
PASS ee/spec/frontend/ai/components/ai_genie_spec.js (XXX MB heap size) - Job hangs for ~86-88 minutes until timeout is reached
- No further output or activity during hang period
Error Details
Job Statistics
| Job Name | Total Hang Duration | Count |
|---|---|---|
| jest vue3 mr | 26322.45 minutes (438 hrs 42 min) | 305 |
| jest vue3 predictive | 884.35 minutes (14 hrs 44 min) | 10 |
Sample Affected Jobs
| Job Type | Job ID | Hang Duration | Heap Size | Last Message |
|---|---|---|---|---|
| jest vue3 predictive | 12149287148 | 88.74 min | N/A | (Use node --trace-deprecation ...) |
| jest vue3 mr | 12166097385 | 85.81 min | 672 MB | PASS ai_genie_spec.js |
| jest vue3 mr | 12175618881 | 86.55 min | 588 MB | PASS ai_genie_spec.js |
| jest vue3 mr | 12160013639 | 86.47 min | 708 MB | PASS ai_genie_spec.js |
| jest vue3 mr | 12158381842 | 86.22 min | 776 MB | PASS ai_genie_spec.js |
| jest vue3 mr | 12155310480 | 86.85 min | 653 MB | PASS ai_genie_spec.js |
| jest vue3 mr | 12154918461 | 86.77 min | 585 MB | PASS ai_genie_spec.js |
| jest vue3 mr | 12152604402 | 86.50 min | 674 MB | PASS ai_genie_spec.js |
| jest vue3 mr | 12152244904 | 86.74 min | 759 MB | PASS ai_genie_spec.js |
| jest vue3 mr | 12150033377 | 86.90 min | 608 MB | PASS ai_genie_spec.js |
Additional affected jobs (click to expand)
Jest Vue3 Predictive Jobs:
- https://gitlab.com/gitlab-org/gitlab/-/jobs/12195239828 (88.13 min)
- https://gitlab.com/gitlab-org/gitlab/-/jobs/12207883337 (88.52 min)
- https://gitlab.com/gitlab-org/gitlab/-/jobs/12160172918 (88.30 min)
- https://gitlab.com/gitlab-org/gitlab/-/jobs/12150383139 (88.54 min)
- https://gitlab.com/gitlab-org/gitlab/-/jobs/12150432891 (88.68 min)
- https://gitlab.com/gitlab-org/gitlab/-/jobs/12144814077 (88.48 min)
- https://gitlab.com/gitlab-org/gitlab/-/jobs/12144922222 (88.33 min)
- https://gitlab.com/gitlab-org/gitlab/-/jobs/12136476513 (88.40 min)
- https://gitlab.com/gitlab-org/gitlab/-/jobs/12137790600 (88.23 min)
Jest Vue3 MR Jobs (sample - 305 total):
- https://gitlab.com/gitlab-org/gitlab/-/jobs/12161890822 (85.93 min, 671 MB)
- https://gitlab.com/gitlab-org/gitlab/-/jobs/12153293331 (86.22 min, 648 MB)
- https://gitlab.com/gitlab-org/gitlab/-/jobs/12152948135 (86.26 min, 649 MB)
- https://gitlab.com/gitlab-org/gitlab/-/jobs/12151442425 (86.12 min, 650 MB)
- https://gitlab.com/gitlab-org/gitlab/-/jobs/12150654901 (86.09 min, 654 MB)
- https://gitlab.com/gitlab-org/gitlab/-/jobs/12150160243 (86.15 min, 767 MB)
- https://gitlab.com/gitlab-org/gitlab/-/jobs/12149788694 (86.05 min, 588 MB)
- https://gitlab.com/gitlab-org/gitlab/-/jobs/12149428617 (86.12 min, 743 MB)
- https://gitlab.com/gitlab-org/gitlab/-/jobs/12148302677 (85.97 min, 671 MB)
- https://gitlab.com/gitlab-org/gitlab/-/jobs/12148036287 (86.61 min, 634 MB)
- https://gitlab.com/gitlab-org/gitlab/-/jobs/12146876057 (86.72 min, 550 MB)
- https://gitlab.com/gitlab-org/gitlab/-/jobs/12145544513 (86.17 min, 1099 MB)
- https://gitlab.com/gitlab-org/gitlab/-/jobs/12143451654 (86.79 min, 1027 MB)
- https://gitlab.com/gitlab-org/gitlab/-/jobs/12148205811 (83.31 min, 985 MB)
Key Observations
- Consistent timing: Hangs are almost always between 85-89 minutes, indicating jobs are hitting the timeout limit rather than hanging at varying points
- Post-completion hang: The hang occurs after test completion, not during test execution
- ai_genie_spec.js correlation: This spec consistently appears as the last passing test before the hang
-
Node deprecation warnings: Some jobs show
(Use node --trace-deprecation ...)as the last message.
Related Issue
gitlab-org/quality/analytics/team#145
Edited by 🤖 GitLab Bot 🤖