spuru9 opened a new pull request, #29716:
URL: https://github.com/apache/flink/pull/29716
## What is the purpose of the change
When a job or application disappears from the JobManager while its page is
open (it expired from the job store, or the JobManager restarted), the
dashboard keeps polling it, and every 404 opens a "Server Response Message"
popup with the server stack trace that comes back after being closed. This
stops the polling and shows a notice instead, as FLINK-31931 did for
TaskManagers.
## Brief change log
- `JobService.loadJob` and `ApplicationService.loadApplication` mark the
request with `EXPECTED_NOT_FOUND` and propagate only a 404 to the caller; other
errors are still swallowed, as since FLINK-39490.
- `JobDetailComponent` and `ApplicationDetailComponent` stop polling on a
404 and show a "no longer exists" notice.
- Add `isNotFound` and `rethrowOnlyNotFound` next to `EXPECTED_NOT_FOUND`.
## Verifying this change
This change added tests and can be verified as follows:
- New specs for both services (request context, 404 propagation) and both
detail components (one request, then polling stops and the notice state is
set); they fail without the change. `npm run lint`, `ng test` and `npm run
build` pass.
- Manually verified on a Flink 2.3.0 session cluster on minikube
(`jobstore.expiration-time: 60`) with this dashboard build: once the job
expired, no popup was shown, the notice appeared and the page stopped
requesting the job. The Application page only receives a 404 instead of a 500
with #29715 (FLINK-41284), which the "after" screenshot includes.
| | Before | After |
|---|---|---|
| Job page | _(drop: before-job-page.png)_ | _(drop: after-job-page.png)_ |
| Application page | _(drop: before-application-page.png)_ | _(drop:
after-application-page.png)_ |
## Does this pull request potentially affect one of the following parts:
- Dependencies (does it add or upgrade a dependency): no
- The public API, i.e., is any changed class annotated with
`@Public(Evolving)`: no
- The serializers: no
- The runtime per-record code paths (performance sensitive): no
- Anything that affects deployment or recovery: JobManager (and its
components), Checkpointing, Kubernetes/Yarn, ZooKeeper: no
- The S3 file system connector: no
## Documentation
- Does this pull request introduce a new feature? no
- If yes, how is the feature documented? not applicable
---
##### Was generative AI tooling used to co-author this PR?
- [X] Yes (please specify the tool below)
Generated-by: Claude Opus 5.5
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]