Skip to content

Bug 2038391: Handle expired TC tasks in the details panel#9532

Open
camd wants to merge 1 commit into
masterfrom
camd/expired-jobs-details-panel
Open

Bug 2038391: Handle expired TC tasks in the details panel#9532
camd wants to merge 1 commit into
masterfrom
camd/expired-jobs-details-panel

Conversation

@camd

@camd camd commented May 19, 2026

Copy link
Copy Markdown
Collaborator

Bug 2038391

Previously, selecting a job whose Taskcluster task had expired caused queue.task() to reject inside fetchTaskData, which rejected the whole Promise.all in useJobDetails and left selectedJobFull as null. Both SummaryPanel and TabsPanel gate their content on selectedJobFull, so the details panel rendered completely blank with no explanation.

Catch the queue.task() failure, fall back to defaults so the rest of the panel renders, and surface a "Taskcluster task expired" badge next to the State line. Disable actions that need a live task definition (Retrigger, Cancel, Backfill, Create Interactive Task, Create Gecko Profile, Generate side-by-side, Confirm Test Failures, Custom Action) with tooltips explaining why.

I also cleaned up a few ancillary things like old class components and messaging in the logviewer when a task is expired (no log will be available).

@camd camd self-assigned this May 19, 2026
@camd camd force-pushed the camd/expired-jobs-details-panel branch 2 times, most recently from 47e98cb to 0a571fd Compare May 19, 2026 19:19
@codecov-commenter

codecov-commenter commented May 19, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 73.23944% with 19 lines in your changes missing coverage. Please review.
✅ Project coverage is 82.99%. Comparing base (f877ee0) to head (20ea61f).

Files with missing lines Patch % Lines
ui/job-view/details/summary/ActionBar.jsx 57.14% 14 Missing and 1 partial ⚠️
ui/job-view/details/summary/LogUrls.jsx 20.00% 4 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##           master    #9532      +/-   ##
==========================================
+ Coverage   82.98%   82.99%   +0.01%     
==========================================
  Files         618      618              
  Lines       35800    35858      +58     
  Branches     3288     3330      +42     
==========================================
+ Hits        29707    29762      +55     
- Misses       5723     5726       +3     
  Partials      370      370              

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@camd camd force-pushed the camd/expired-jobs-details-panel branch from 0a571fd to 0b9b8a4 Compare May 20, 2026 21:30
@camd camd requested a review from Archaeopteryx May 20, 2026 21:37
@gmierz gmierz requested a review from benoitgoupilleau June 16, 2026 15:07
@camd camd added the front-end label Jun 16, 2026
@camd camd force-pushed the camd/expired-jobs-details-panel branch from 0b9b8a4 to 2236075 Compare June 16, 2026 16:11
firstRawLogUrl,
taskExpired,
selectedJobFull,
jobDetails,

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

I don't think jobDetails, decisionTaskMap and currentRepo are necessary.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

A good observation. However, though these aren't used directly, they are used during retrigger and some other actions when the object is passed to them.

Added a comment to be explicit about it.

@camd camd force-pushed the camd/expired-jobs-details-panel branch 2 times, most recently from 72e3595 to 9782ee6 Compare June 20, 2026 14:37
@camd camd changed the title Handle expired Taskcluster tasks in the details panel Bug 2038391: Handle expired TC tasks in the details panel Jun 20, 2026
Previously, selecting a job whose Taskcluster task had expired caused
queue.task() to reject inside fetchTaskData, which rejected the whole
Promise.all in useJobDetails and left selectedJobFull as null. Both
SummaryPanel and TabsPanel gate their content on selectedJobFull, so
the details panel rendered completely blank with no explanation.

Catch the queue.task() failure, fall back to defaults so the rest of
the panel renders, and surface an "Expired" badge next to the State
line. Disable actions that need a live task definition (Retrigger,
Cancel, Backfill, Create Interactive Task, Create Gecko Profile,
Generate side-by-side, Confirm Test Failures, Custom Action) with
tooltips explaining why. Log buttons render disabled, and an expired
log returns a clear "no longer available" message in the log viewer.
@camd

camd commented Jun 20, 2026

Copy link
Copy Markdown
Collaborator Author

[!NOTE]
I streamlined this PR so that it does not refactor the components from class to function components. Moved those changes to a new PR: #9635

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants