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]

Reply via email to