[ 
https://issues.apache.org/jira/browse/FLINK-39493?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18079440#comment-18079440
 ] 

Taranpreet Kaur edited comment on FLINK-39493 at 5/8/26 11:39 AM:
------------------------------------------------------------------

Hi [~panyuepeng],

Thanks for assigning this Jira to me. I have completed the verification of all 
four test cases for FLIP-549 (Application Management) on Flink 2.3.0. All tests 
passed successfully.

  *Test 1: Application Mode — Run and Monitor Application* ✅

  - Started standalone-job cluster with WordCount.jar
  - Verified Web UI overview page displays Running/Completed Application Lists 
correctly
  - Verified Application Detail page shows expected application and job 
information
  - Confirmed REST APIs (GET /applications/overview, GET /applications/<id>) 
return correct responses
  - Successfully cancelled application via POST /applications/<id>/cancel (HTTP 
202 Accepted)

  *Test 2: Session Mode — Submit via CLI and Monitor Application* ✅

  - Started session cluster and submitted job via ./bin/flink run
  - Verified each CLI-submitted job creates a separate SingleJobApplication
  - Web UI correctly displays the application entries

  *Test 3: Session Mode — Submit via JarRunApplication REST API* ✅

  - Uploaded JAR via POST /jars/upload
  - Submitted via POST /jars/<jar-id>/run-application — confirmed it creates an 
Application
  - Compared with POST /jars/<jar-id>/run — confirmed it creates a 
SingleJobApplication
  - Both endpoints behave as expected per FLIP-549 design

  *Test 4: Application Archiving and History Server* ✅

  - Configured jobmanager.archive.fs.dir and historyserver.archive.fs.dir
  - Ran job to completion, started History Server
  - Verified archived applications appear in History Server Web UI
  - Confirmed REST APIs (GET /applications/overview, GET /applications/<id>, 
GET /jobs/overview, GET /jobs/<id>) return
  archived data correctly

  Environment:

  - Flink version: 2.3.0
  - Mode: Standalone cluster
  - OS: Linux

  Test report PDF attached for detailed evidence.

[^FLINK-39493-test-report.pdf]


was (Author: JIRAUSER312402):
Hi [~panyuepeng],

Thanks for assigning this Jira to me. I have completed the verification of all 
four test cases for FLIP-549 (Application Management) on Flink 2.3.0. All tests 
passed successfully.

  Test 1: Application Mode — Run and Monitor Application ✅

  - Started standalone-job cluster with WordCount.jar
  - Verified Web UI overview page displays Running/Completed Application Lists 
correctly
  - Verified Application Detail page shows expected application and job 
information
  - Confirmed REST APIs (GET /applications/overview, GET /applications/<id>) 
return correct responses
  - Successfully cancelled application via POST /applications/<id>/cancel (HTTP 
202 Accepted)

  Test 2: Session Mode — Submit via CLI and Monitor Application ✅

  - Started session cluster and submitted job via ./bin/flink run
  - Verified each CLI-submitted job creates a separate SingleJobApplication
  - Web UI correctly displays the application entries

  Test 3: Session Mode — Submit via JarRunApplication REST API ✅

  - Uploaded JAR via POST /jars/upload
  - Submitted via POST /jars/<jar-id>/run-application — confirmed it creates an 
Application
  - Compared with POST /jars/<jar-id>/run — confirmed it creates a 
SingleJobApplication
  - Both endpoints behave as expected per FLIP-549 design

  Test 4: Application Archiving and History Server ✅

  - Configured jobmanager.archive.fs.dir and historyserver.archive.fs.dir
  - Ran job to completion, started History Server
  - Verified archived applications appear in History Server Web UI
  - Confirmed REST APIs (GET /applications/overview, GET /applications/<id>, 
GET /jobs/overview, GET /jobs/<id>) return
  archived data correctly

  Environment:

  - Flink version: 2.3.0
  - Mode: Standalone cluster
  - OS: Linux

  Test report PDF attached for detailed evidence.

[^FLINK-39493-test-report.pdf]

> Release Testing: Verify FLIP-549: Support Application Management
> ----------------------------------------------------------------
>
>                 Key: FLINK-39493
>                 URL: https://issues.apache.org/jira/browse/FLINK-39493
>             Project: Flink
>          Issue Type: Sub-task
>            Reporter: Yi Zhang
>            Assignee: Taranpreet Kaur
>            Priority: Blocker
>              Labels: release-testing
>             Fix For: 2.3.0
>
>         Attachments: FLINK-39493-test-report.pdf
>
>
> h1. FLIP-549: Support Application Management - Cross-Team Test Instructions
> h2. Background
> [FLIP-549]([https://cwiki.apache.org/confluence/display/FLINK/FLIP-549%3A+Support+Application+Management])
>  introduces Application as a first-class entity in Flink, establishing a 
> Cluster-Application-Job architecture. It adds REST APIs for application 
> query, cancellation, and submission, a new Web UI for application management, 
> and support for archiving completed applications to the History Server.
> h2. Prerequisites
>  - A latest built Flink distribution.
>  - Test job JARs (e.g., the built-in examples such as 
> `flink-examples-streaming`).
>  - Access to the Flink cluster (including UI), `curl` or similar client for 
> REST API verification.
> h2. Test Cases
> —
> h3. Test 1: Application Mode - Run and Monitor Application
> {*}Objective{*}: Verify that running an application in Application Mode works 
> and that the Web UI correctly displays application and job information.
> {*}Steps{*}:
> 1. Start a Flink cluster in Application Mode with a test job:
> {code:java}
> ./bin/standalone-job.sh start -D user.artifacts.base-dir=/tmp/flink-artifacts 
> --jars ./examples/streaming/WordCount.jar {code}
> {*}Note{*}: To keep the cluster alive after the application finishes (useful 
> for verification), add the following to `conf/config.yaml` before starting:
> {code:java}
> execution:
>   shutdown-on-application-finish: false{code}
> You also need to start a TaskManager manually to provide resources:
> {code:java}
> ./bin/taskmanager.sh start {code}
> 2. Wait for the cluster to start, then open the Flink Web UI (default: 
> `[http://localhost:8081|http://localhost:8081/]`).
> 3. Verify the Overview page:
>  - While the application is running, it should appear in the "Running 
> Application List".
>  - After its job completes, the application should move to the "Completed 
> Application List" with status `FINISHED`.
> 4. Verify the Application Detail page: Click on the application entry to 
> navigate to its detail page. Check that it shows information including 
> Application ID, status, start timestamps, and its associated jobs.
> 5. Verify via REST API:
> {code:java}
> # List all applications 
> curl http://localhost:8081/applications/overview
> # Get application details (replace <applicationid> with actual ID)
> curl http://localhost:8081/applications/<applicationid>
> {code}
> 6. Verify application cancellation:
>  - While the application is `RUNNING`, click the "Cancel Application" button 
> on the application detail page, or
> {code:java}
> curl -X POST http://localhost:8081/applications/<applicationid>/cancel {code}
>  - Verify the application eventually transitions through to `CANCELED`.
>  - Verify the associated jobs are also canceled.
> {*}Expected Results{*}:
>  - Application appears in the correct list (running vs. completed) on the 
> overview page.
>  - Application detail page shows correct lifecycle states, timestamps, and 
> job list.
>  - Cancellation works and propagates to all jobs.
> {*}Cleanup{*}:
> {code:java}
> ./bin/taskmanager.sh stop
> ./bin/standalone-job.sh stop
> rm -rf /tmp/flink-artifacts{code}
>  
> —
> h3. Test 2: Session Mode - Submit via CLI and Monitor Application
> {*}Objective{*}: Verify that submitting a job via CLI in Session Mode creates 
> a `SingleJobApplication` and that the Web UI correctly displays application 
> and job information.
> {*}Steps{*}:
> 1. Start a Flink Session cluster:
> {code:java}
> ./bin/start-cluster.sh {code}
> 2. Submit a test job via CLI:
> {code:java}
> ./bin/flink run ./examples/streaming/WordCount.jar {code}
> 3. Open the Web UI. Verify the application appears in the overview and detail 
> pages (same checks as Test 1).
> 4. Submit multiple jobs and verify each appears as a separate application in 
> the overview.
> {*}Expected Results{*}:
>  - Each CLI-submitted job creates a `SingleJobApplication`.
>  - Application status mirrors the job status.
>  - Multiple submissions result in multiple separate applications.
> {*}Cleanup{*}:
> {code:java}
> ./bin/stop-cluster.sh {code}
>  
> —
> h3. Test 3: Session Mode - Submit via JarRunApplication REST API
> {*}Objective{*}: Verify that the `/jars/:jarid/run-application` REST API 
> creates an application.
> {*}Steps{*}:
> 1. Start a Flink Session cluster (or reuse from Test 2).
> 2. Upload a test JAR:
> {code:java}
> curl -X POST -H "Expect:" -F "jarfile=@./examples/streaming/WordCount.jar" 
> http://localhost:8081/jars/upload {code}
> Note the returned `filename` (the last part is JAR ID).
> 3. Submit via `run-application`:
> {code:java}
> curl -X POST http://localhost:8081/jars/<jarid>/run-application -H 
> "Content-Type: application/json" {code}
> Note the returned `applicationid`. Verify the application appears in the Web 
> UI (same checks as Test 1).
> 4. Compare with `/jars/:jarid/run`:
> {code:java}
> curl -X POST http://localhost:8081/jars/<jarid>/run -H "Content-Type: 
> application/json" {code}
>  - This creates a `SingleJobApplication` (same as Test 2).
> {*}Expected Results{*}:
>  - `run-application` creates an application with the name of the main class.
>  - `run` creates a `SingleJobApplication`.
>  - Both appear correctly in the Web UI.
> {*}Cleanup{*}:
> {code:java}
> ./bin/stop-cluster.sh {code}
>  
> —
> h3. Test 4: Application Archiving and History Server
> {*}Objective{*}: Verify that completed applications are archived and can be 
> viewed via the History Server.
> {*}Steps{*}:
> 1. Configure archiving in `conf/config.yaml`:
> {code:java}
> jobmanager:
>   archive:
>     fs:
>       dir: /tmp/flink-archives
> historyserver:
>   archive:
>     fs:
>       dir: /tmp/flink-archives{code}
> 2. Start the Flink cluster (Application Mode or Session Mode) and submit a 
> test job. Wait for the job to complete and the application to reach a 
> terminal state (e.g. `FINISHED`).
> 3. Start the History Server:
> {code:java}
> ./bin/historyserver.sh start {code}
> 5. Open the History Server Web UI (default 
> `[http://localhost:8082|http://localhost:8082/]`).
> 6. Verify application archives:
>  - The completed application should appear in the overview page.
>  - Click on the application to verify the detail page shows:
>  - Application ID, name, and status (`FINISHED`, `CANCELED`, or `FAILED`).
>  - Associated jobs with their statuses.
>  - Start time, end time, and duration.
> 7. Verify via REST API on History Server:
> {code:java}
> # List all archived applications
> curl http://localhost:8082/applications/overview
> # Get archived application details
> curl http://localhost:8082/applications/<applicationid>
> {code}
> 8. Verify archived jobs within applications:
> {code:java}
> # List all archived jobs
> curl http://localhost:8082/jobs/overview 
> # Get archived job details
> curl http://localhost:8082/jobs/<jobid> {code}
> {*}Expected Results{*}:
>  - Completed applications are archived to the configured directory.
>  - History Server discovers and displays archived applications.
>  - Application detail pages are available on the History Server.
>  - Jobs within archived applications are also available.
> {*}Cleanup{*}:
> {code:java}
> ./bin/stop-cluster.sh
> ./bin/historyserver.sh stop
> rm -rf /tmp/flink-archives{code}
>  



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to