Skip to content

[fix](pipeline) Unify fragment cancellation and close lifecycle - #67261

Open
HappenLee wants to merge 2 commits into
apache:masterfrom
HappenLee:fix-pipeline-fragment-lifecycle
Open

[fix](pipeline) Unify fragment cancellation and close lifecycle#67261
HappenLee wants to merge 2 commits into
apache:masterfrom
HappenLee:fix-pipeline-fragment-lifecycle

Conversation

@HappenLee

Copy link
Copy Markdown
Contributor

What problem does this PR solve?

Issue Number: None

Related PR: #67236

Problem Summary:

When a query times out, every pending pipeline task can close with the same error and call PipelineFragmentContext::cancel() before the fragment task count is drained. Each call previously repeated fragment cancellation logs, the full timeout task dump, stream-pipe cancellation, and dependency wakeups, causing severe log amplification.

This PR replaces the separate cancellation/closed flags with one atomic terminal lifecycle inside PipelineFragmentContext:

  • CREATED -> CANCELLING elects the only cancellation winner.
  • CREATED/CANCELLING -> CLOSING -> CLOSED makes final close one-shot and handles the cancel/last-task-close race.
  • notify_close() remains before cancellation arbitration so recursive CTE fragments retain their external close-notification semantics.
  • The winning cancellation publishes the QueryContext error before expensive diagnostics, so closing tasks observe the failed query status.

No per-fragment cancellation reason is stored because no runtime reader requires it; the query-wide first error remains owned by QueryContext::AtomicStatus.

Release note

None

Check List (For Author)

  • Test: Unit Test
    • GLIBC_COMPATIBILITY=OFF ./run-be-ut.sh -j 48 --run --filter=PipelineTaskTest.TEST_FRAGMENT_*LIFECYCLE
    • PATH=/mnt/disk6/common/ldb_toolchain_toucan/bin:$PATH build-support/check-format.sh
    • build-support/check-build-hygiene.sh
    • CLANG_TIDY_BINARY=/mnt/disk6/common/ldb_toolchain_028/bin/clang-tidy build-support/run-clang-tidy.sh --base apache/master --build-dir be/ut_build_ASAN
  • Behavior changed: Yes; repeated fragment cancellation diagnostics and side effects now run once, and cancellation after close is ignored.
  • Does this need documentation: No

### What problem does this PR solve?

Issue Number: None

Related PR: apache#67236

Problem Summary: A query timeout can make every pending pipeline task call PipelineFragmentContext::cancel() with the same error before the fragment task count is drained. The repeated calls duplicate fragment logs, task dumps, stream cancellation, and dependency wakeups. Use one atomic terminal lifecycle for cancellation and close so only the CREATED to CANCELLING winner performs cancellation side effects, while close safely accepts either CREATED or CANCELLING and publishes CLOSED. Keep notify_close() ahead of cancellation arbitration for recursive CTE fragments and publish the QueryContext failure before expensive diagnostics.

### Release note

None

### Check List (For Author)

- Test: Unit Test
    - GLIBC_COMPATIBILITY=OFF ./run-be-ut.sh -j 48 --run --filter=PipelineTaskTest.TEST_FRAGMENT_*LIFECYCLE
    - PATH=/mnt/disk6/common/ldb_toolchain_toucan/bin:$PATH build-support/check-format.sh
    - build-support/check-build-hygiene.sh
    - CLANG_TIDY_BINARY=/mnt/disk6/common/ldb_toolchain_028/bin/clang-tidy build-support/run-clang-tidy.sh --base apache/master --build-dir be/ut_build_ASAN
- Behavior changed: Yes; repeated fragment cancellation diagnostics and side effects now run once, and cancellation after close is ignored.
- Does this need documentation: No
@hello-stephen

Copy link
Copy Markdown
Contributor

Thank you for your contribution to Apache Doris.
Don't know what should be done next? See How to process your PR.

Please clearly describe your PR:

  1. What problem was fixed (it's best to include specific error reporting information). How it was fixed.
  2. Which behaviors were modified. What was the previous behavior, what is it now, why was it modified, and what possible impacts might there be.
  3. What features were added. Why was this function added?
  4. Which code was refactored and why was this part of the code refactored?
  5. Which functions were optimized and what is the difference before and after the optimization?

### What problem does this PR solve?

Issue Number: None

Related PR: apache#67261

Problem Summary:

Document the monotonic PipelineFragmentContext termination lifecycle next to LifecycleState, including the normal-close and cancellation paths and the ownership of one-shot side effects.

### Release note

None

### Check List

- Test
  - No need to test; comment-only change.
  - check-format
  - check-build-hygiene
- Behavior changed: No
- Does this need documentation: No
@HappenLee

Copy link
Copy Markdown
Contributor Author

/review

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Review status: complete after two convergence rounds; one blocking correctness issue remains.

  • Goal and correctness: the change is focused and the CREATED -> CANCELLING election does suppress repeated fragment diagnostics and side effects, but cancellation is not serialized with final close. The direct asynchronous report-callback path can lose the query failure or queue a successful final load report, so the stated cancel/last-task-close goal is not yet met.
  • Concurrency and lifecycle: scheduler workers, the FragmentMgr report pool, and query-level cancellation are the relevant concurrent entrants. _task_mutex still protects task counts and recursive-close state, map removal remains outside that mutex, and shared callback ownership is sound; no second deadlock, lifetime leak, or lock-order issue was found. The blocking issue is the missing publication edge between the lifecycle CAS and QueryContext::AtomicStatus.
  • Parallel and special paths: task-originated errors, submit failure, query-wide cancellation, recursive CTE notification, and LIMIT_REACH/FINISHED handling were traced without another defect. No configuration, static initialization, FE/BE variable, wire/storage-format, EditLog, or direct persistence change applies.
  • Tests: the added BE unit tests cover concurrent cancellation election and sequential close/post-close idempotence, but they join all cancellation threads before close and suppress final reporting, so they cannot prove the claimed cancel-vs-last-close ordering or final report status. A deterministic overlap test is needed. No builds or tests were run by this review because the review prompt prohibits them.
  • Data, performance, and observability: there is no direct storage write change, but the stale OK final load report makes the accepted race data-correctness sensitive. The intended reduction in repeated heavy diagnostics is beneficial, and no additional memory, performance, header-hygiene, or observability issue was substantiated.

No additional user review focus was supplied. All candidates were independently validated, deduplicated, accepted, or dismissed with evidence, and all Round 2 reviewers returned NO_NEW_VALUABLE_FINDINGS.

return;
}
auto expected = LifecycleState::CREATED;
if (!_lifecycle_state.compare_exchange_strong(expected, LifecycleState::CANCELLING,

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Serialize cancellation publication with close

The lifecycle election can still lose a cancellation that began before close. A load's periodic-report callback invokes this cancel() directly on the report-pool thread, while a scheduler worker can finalize the last task independently. After notify_close() sees that task open, the worker can win CREATED -> CLOSING before this CAS, so this path returns without ever publishing the error. If this CAS wins first, _try_start_close() can consume CANCELLING before _query_ctx->cancel() below runs; send_report(true) then snapshots QueryContext::exec_status() as OK and can enqueue a successful final load report. Acquire/release does not help because the error write is sequenced after this CAS. Please keep close from completing until the elected cancellation has published the query failure, ensure a last close that arrives during publication is retried, and add a deterministic test that overlaps cancellation with the last decrement; the current tests join all cancel threads before closing.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

I do not think this is a blocking correctness issue. The intended ordering point here is the lifecycle transition when the last task has drained, rather than entry into cancel() or the earlier notify_close() observation.

All task-originated failures are published before a task is counted as closed: TaskScheduler::close_task() calls ctx->cancel() for execute/close/finalize errors before decrement_running_task(). Therefore, final close cannot overtake an unpublished task execution failure.

The direct report-pool callback is a different case. If its cancellation overlaps the last task completion, allowing the last-task close to win is intentional: once _closed_tasks reaches _total_tasks, the PFC has no unfinished execution to cancel. CANCELLING elects the owner of per-fragment cancellation diagnostics and side effects; it is not a publication barrier that requires final close to wait. The final report snapshots QueryContext status at the close linearization point, and a late control-plane report failure does not retroactively invalidate the completed fragment.

For the same reason, the current test joins cancellation threads before close intentionally: it verifies single-winner cancellation side effects and one-shot close. An overlap test would have to allow either operation to win and would not establish that cancellation must take precedence.

@HappenLee

Copy link
Copy Markdown
Contributor Author

run buildall

@hello-stephen

Copy link
Copy Markdown
Contributor
TPC-H: Total hot run time: 17050 ms
machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
scripts: https://github.com/apache/doris/tree/master/tools/tpch-tools
Tpch sf100 test result on commit ae19d5f57a0b310c0be59436bf3657ff7fbe39a4, data reload: false

------ Round 1 ----------------------------------
============================================
q1	17583	3146	3129	3129
q2	2116	255	224	224
q3	10215	906	517	517
q4	4675	254	208	208
q5	7666	554	397	397
q6	137	115	94	94
q7	517	522	398	398
q8	9254	855	931	855
q9	3485	2381	2378	2378
q10	6522	883	694	694
q11	397	208	183	183
q12	625	253	206	206
q13	18132	1521	1168	1168
q14	156	153	138	138
q15	q16	437	403	375	375
q17	1389	874	783	783
q18	3118	2285	2303	2285
q19	1122	850	785	785
q20	372	287	199	199
q21	4913	1799	1870	1799
q22	338	268	235	235
Total cold run time: 93169 ms
Total hot run time: 17050 ms

----- Round 2, with runtime_filter_mode=off -----
============================================
q1	3500	3433	3442	3433
q2	515	395	385	385
q3	2230	2335	2243	2243
q4	1208	1187	915	915
q5	2203	2111	2114	2111
q6	166	117	92	92
q7	1007	931	850	850
q8	1613	1441	1432	1432
q9	3181	3130	3118	3118
q10	1887	1788	1678	1678
q11	359	277	256	256
q12	452	428	341	341
q13	1490	1534	1170	1170
q14	185	188	161	161
q15	q16	393	400	364	364
q17	3615	3304	3318	3304
q18	5044	4472	4806	4472
q19	972	921	866	866
q20	1012	974	839	839
q21	3910	3251	3248	3248
q22	407	354	330	330
Total cold run time: 35349 ms
Total hot run time: 31608 ms

@hello-stephen

Copy link
Copy Markdown
Contributor
TPC-DS: Total hot run time: 82431 ms
machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
scripts: https://github.com/apache/doris/tree/master/tools/tpcds-tools
TPC-DS sf100 test result on commit ae19d5f57a0b310c0be59436bf3657ff7fbe39a4, data reload: false

query5	4270	414	332	332
query6	395	140	124	124
query7	4964	396	237	237
query8	290	128	116	116
query9	8709	2922	2919	2919
query10	379	229	183	183
query11	5366	1039	911	911
query12	124	74	72	72
query13	1201	442	303	303
query14	6010	2215	2092	2092
query14_1	1991	1986	1981	1981
query15	185	125	112	112
query16	942	396	269	269
query17	806	431	350	350
query18	2350	321	223	223
query19	160	132	106	106
query20	69	67	69	67
query21	212	101	83	83
query22	5550	5517	5458	5458
query23	6674	6267	5961	5961
query23_1	6022	6195	6043	6043
query24	7302	1080	753	753
query24_1	769	779	769	769
query25	428	283	259	259
query26	1245	226	131	131
query27	2790	426	247	247
query28	4675	1509	1520	1509
query29	935	420	337	337
query30	255	155	130	130
query31	856	399	330	330
query32	129	75	70	70
query33	483	235	182	182
query34	1006	879	493	493
query35	421	411	353	353
query36	565	564	537	537
query37	122	83	71	71
query38	1044	854	814	814
query39	507	494	486	486
query39_1	486	468	464	464
query40	225	94	82	82
query41	61	57	56	56
query42	76	70	74	70
query43	247	251	218	218
query44	1059	550	555	550
query45	116	103	100	100
query46	789	822	491	491
query47	781	788	727	727
query48	310	293	234	234
query49	555	252	194	194
query50	790	263	194	194
query51	8373	8195	8276	8195
query52	70	65	59	59
query53	196	200	143	143
query54	242	162	200	162
query55	89	66	59	59
query56	188	156	167	156
query57	671	647	671	647
query58	208	201	176	176
query59	1226	1237	1114	1114
query60	251	176	173	173
query61	137	180	152	152
query62	374	199	177	177
query63	172	139	139	139
query64	2762	674	600	600
query65	1615	1609	1663	1609
query66	1911	260	253	253
query67	9893	9690	9896	9690
query68	3001	1129	700	700
query69	368	233	186	186
query70	670	631	631	631
query71	253	173	161	161
query72	2381	1738	1573	1573
query73	661	554	335	335
query74	2010	1214	1144	1144
query75	1210	1111	960	960
query76	2381	714	561	561
query77	256	254	221	221
query78	4034	3721	3294	3294
query79	1215	784	587	587
query80	1246	322	281	281
query81	505	154	133	133
query82	759	120	99	99
query83	334	214	189	189
query84	286	108	92	92
query85	886	374	293	293
query86	441	172	168	168
query87	1042	966	894	894
query88	2783	2092	2109	2092
query89	300	190	173	173
query90	1931	124	122	122
query91	133	116	98	98
query92	79	69	70	69
query93	1310	1042	716	716
query94	709	257	177	177
query95	549	261	294	261
query96	809	564	258	258
query97	1067	1052	1004	1004
query98	142	137	134	134
query99	440	340	308	308
Total cold run time: 177734 ms
Total hot run time: 82431 ms

@hello-stephen

Copy link
Copy Markdown
Contributor
ClickBench: Total hot run time: 14.71 s
machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
scripts: https://github.com/apache/doris/tree/master/tools/clickbench-tools
ClickBench test result on commit ae19d5f57a0b310c0be59436bf3657ff7fbe39a4, data reload: false

query1	0.01	0.00	0.01
query2	0.08	0.04	0.04
query3	0.24	0.11	0.11
query4	1.61	0.11	0.11
query5	0.18	0.15	0.16
query6	1.22	0.71	0.72
query7	0.03	0.01	0.00
query8	0.04	0.03	0.04
query9	0.30	0.21	0.21
query10	0.36	0.36	0.34
query11	0.17	0.12	0.12
query12	0.15	0.12	0.12
query13	0.31	0.31	0.30
query14	0.45	0.46	0.45
query15	0.36	0.35	0.37
query16	0.22	0.24	0.23
query17	0.70	0.65	0.67
query18	0.19	0.16	0.17
query19	1.21	1.11	1.18
query20	0.01	0.01	0.00
query21	15.44	0.15	0.11
query22	5.06	0.04	0.04
query23	16.13	0.25	0.11
query24	3.08	0.32	0.28
query25	0.11	0.04	0.03
query26	0.73	0.16	0.11
query27	0.04	0.04	0.04
query28	3.58	0.56	0.28
query29	12.41	3.18	2.56
query30	0.26	0.10	0.11
query31	2.76	0.38	0.18
query32	3.47	0.32	0.24
query33	1.38	1.53	1.42
query34	15.38	2.20	1.76
query35	1.76	1.74	1.75
query36	0.47	0.30	0.29
query37	0.07	0.03	0.03
query38	0.04	0.03	0.03
query39	0.03	0.03	0.02
query40	0.11	0.08	0.07
query41	0.08	0.02	0.03
query42	0.03	0.03	0.03
query43	0.03	0.03	0.03
Total cold run time: 90.29 s
Total hot run time: 14.71 s

@hello-stephen

Copy link
Copy Markdown
Contributor

BE Regression && UT Coverage Report

Increment line coverage 100% (0/0) 🎉

Increment coverage report
Complete coverage report

Category Coverage
Function Coverage 75.84% (34362/45309)
Line Coverage 60.81% (386784/636080)
Region Coverage 56.92% (324399/569923)
Branch Coverage 57.73% (147963/256307)

@hello-stephen

Copy link
Copy Markdown
Contributor

BE Regression && UT Coverage Report

Increment line coverage 100% (0/0) 🎉

Increment coverage report
Complete coverage report

Category Coverage
Function Coverage 76.02% (34443/45309)
Line Coverage 60.99% (387935/636080)
Region Coverage 57.11% (325489/569923)
Branch Coverage 57.90% (148405/256307)

@HappenLee
HappenLee dismissed github-actions[bot]’s stale review August 31, 2026 04:34

no need dispose the problem

@hello-stephen

Copy link
Copy Markdown
Contributor
TPC-H: Total hot run time: 16699 ms
machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
scripts: https://github.com/apache/doris/tree/master/tools/tpch-tools
Tpch sf100 test result on commit ae19d5f57a0b310c0be59436bf3657ff7fbe39a4, data reload: false

------ Round 1 ----------------------------------
============================================
q1	17647	3016	3011	3011
q2	2056	264	226	226
q3	10264	845	521	521
q4	4674	248	207	207
q5	7668	575	382	382
q6	138	111	92	92
q7	517	493	382	382
q8	9237	945	975	945
q9	3473	2385	2356	2356
q10	6506	832	703	703
q11	397	196	178	178
q12	602	256	208	208
q13	18120	1527	1166	1166
q14	157	152	137	137
q15	q16	429	401	365	365
q17	1386	855	743	743
q18	3085	2242	2218	2218
q19	1134	894	760	760
q20	356	279	205	205
q21	5279	1669	1840	1669
q22	331	265	225	225
Total cold run time: 93456 ms
Total hot run time: 16699 ms

----- Round 2, with runtime_filter_mode=off -----
============================================
q1	3379	3296	3275	3275
q2	494	385	376	376
q3	2206	2360	2172	2172
q4	1178	1161	890	890
q5	2149	2130	2099	2099
q6	172	119	87	87
q7	1033	903	875	875
q8	1591	1380	1395	1380
q9	3111	3101	3083	3083
q10	1858	1770	1626	1626
q11	356	270	247	247
q12	447	423	344	344
q13	1480	1563	1152	1152
q14	182	175	163	163
q15	q16	388	387	353	353
q17	3610	3283	3160	3160
q18	4807	4431	4725	4431
q19	844	830	788	788
q20	1161	972	820	820
q21	3800	3139	3290	3139
q22	391	334	338	334
Total cold run time: 34637 ms
Total hot run time: 30794 ms

@hello-stephen

Copy link
Copy Markdown
Contributor
TPC-DS: Total hot run time: 81857 ms
machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
scripts: https://github.com/apache/doris/tree/master/tools/tpcds-tools
TPC-DS sf100 test result on commit ae19d5f57a0b310c0be59436bf3657ff7fbe39a4, data reload: false

query5	4263	397	343	343
query6	371	142	128	128
query7	4964	402	234	234
query8	294	119	114	114
query9	8715	2882	2882	2882
query10	391	237	172	172
query11	5365	1037	913	913
query12	120	72	75	72
query13	1186	423	310	310
query14	6131	2179	2058	2058
query14_1	1951	1947	1944	1944
query15	176	119	108	108
query16	923	381	361	361
query17	805	458	372	372
query18	2332	338	239	239
query19	166	147	110	110
query20	74	69	72	69
query21	198	100	91	91
query22	5393	5344	5466	5344
query23	6688	6164	5854	5854
query23_1	6131	6172	6093	6093
query24	7270	1106	758	758
query24_1	790	792	802	792
query25	436	315	267	267
query26	1234	248	131	131
query27	2771	415	249	249
query28	4700	1522	1515	1515
query29	952	435	365	365
query30	249	155	129	129
query31	819	399	325	325
query32	129	72	73	72
query33	466	219	186	186
query34	980	844	473	473
query35	405	398	343	343
query36	591	573	572	572
query37	122	80	71	71
query38	990	844	811	811
query39	501	491	484	484
query39_1	479	499	458	458
query40	204	93	78	78
query41	58	56	60	56
query42	78	70	76	70
query43	245	240	206	206
query44	1012	550	569	550
query45	109	112	99	99
query46	745	851	531	531
query47	767	756	696	696
query48	328	325	237	237
query49	575	233	189	189
query50	736	262	193	193
query51	8003	7982	7917	7917
query52	71	69	63	63
query53	195	201	144	144
query54	230	167	146	146
query55	71	62	57	57
query56	199	167	204	167
query57	742	650	660	650
query58	200	157	156	156
query59	1214	1193	1081	1081
query60	233	203	171	171
query61	125	112	108	108
query62	351	210	186	186
query63	166	140	135	135
query64	2738	735	602	602
query65	1576	1613	1606	1606
query66	1820	263	200	200
query67	9736	9775	9811	9775
query68	2897	1193	743	743
query69	329	228	197	197
query70	670	635	632	632
query71	256	171	170	170
query72	2397	1698	1427	1427
query73	634	602	342	342
query74	1980	1209	1139	1139
query75	1186	1091	944	944
query76	2295	713	540	540
query77	252	267	219	219
query78	4015	3698	3248	3248
query79	2757	812	578	578
query80	1586	331	273	273
query81	504	151	129	129
query82	624	126	99	99
query83	273	204	195	195
query84	295	109	89	89
query85	809	362	296	296
query86	412	170	171	170
query87	1009	949	896	896
query88	2873	2086	2107	2086
query89	286	197	174	174
query90	1923	126	128	126
query91	132	120	100	100
query92	78	62	63	62
query93	1883	1147	766	766
query94	639	265	215	215
query95	521	332	220	220
query96	829	582	275	275
query97	1085	1060	996	996
query98	172	133	133	133
query99	424	341	304	304
Total cold run time: 178523 ms
Total hot run time: 81857 ms

@hello-stephen

Copy link
Copy Markdown
Contributor
ClickBench: Total hot run time: 14.6 s
machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
scripts: https://github.com/apache/doris/tree/master/tools/clickbench-tools
ClickBench test result on commit ae19d5f57a0b310c0be59436bf3657ff7fbe39a4, data reload: false

query1	0.01	0.00	0.01
query2	0.07	0.04	0.03
query3	0.24	0.10	0.10
query4	1.59	0.09	0.10
query5	0.17	0.16	0.15
query6	1.26	0.68	0.67
query7	0.04	0.01	0.01
query8	0.05	0.03	0.02
query9	0.31	0.22	0.23
query10	0.34	0.37	0.34
query11	0.16	0.12	0.11
query12	0.14	0.11	0.12
query13	0.29	0.31	0.31
query14	0.44	0.46	0.45
query15	0.35	0.34	0.34
query16	0.20	0.21	0.23
query17	0.67	0.67	0.67
query18	0.17	0.16	0.17
query19	1.15	1.16	1.12
query20	0.02	0.01	0.01
query21	15.44	0.16	0.11
query22	5.06	0.04	0.04
query23	16.18	0.26	0.10
query24	3.01	0.34	0.23
query25	0.10	0.04	0.03
query26	0.72	0.17	0.13
query27	0.02	0.03	0.03
query28	3.59	0.57	0.26
query29	12.46	3.18	2.55
query30	0.25	0.12	0.12
query31	2.76	0.38	0.17
query32	3.53	0.32	0.23
query33	1.34	1.48	1.49
query34	15.37	2.19	1.76
query35	1.80	1.75	1.75
query36	0.45	0.29	0.28
query37	0.05	0.04	0.03
query38	0.04	0.03	0.03
query39	0.03	0.03	0.02
query40	0.12	0.07	0.08
query41	0.08	0.03	0.02
query42	0.03	0.02	0.02
query43	0.04	0.03	0.02
Total cold run time: 90.14 s
Total hot run time: 14.6 s

@hello-stephen

Copy link
Copy Markdown
Contributor

BE UT Coverage Report

Increment line coverage 🎉

Increment coverage report
Complete coverage report

Category Coverage
Function Coverage 62.75% (29374/46808)
Line Coverage 47.74% (307304/643768)
Region Coverage 43.34% (248135/572490)
Branch Coverage 44.93% (115564/257207)

@hello-stephen

Copy link
Copy Markdown
Contributor

BE Regression && UT Coverage Report

Increment line coverage 100% (0/0) 🎉

Increment coverage report
Complete coverage report

Category Coverage
Function Coverage 76.02% (34464/45336)
Line Coverage 60.98% (388072/636411)
Region Coverage 57.04% (325302/570308)
Branch Coverage 57.87% (148410/256474)

@hello-stephen

Copy link
Copy Markdown
Contributor

BE Regression && UT Coverage Report

Increment line coverage 100% (0/0) 🎉

Increment coverage report
Complete coverage report

Category Coverage
Function Coverage 76.02% (34464/45336)
Line Coverage 60.99% (388125/636411)
Region Coverage 57.05% (325384/570308)
Branch Coverage 57.87% (148427/256474)

@hello-stephen

Copy link
Copy Markdown
Contributor

BE Regression && UT Coverage Report

Increment line coverage 100% (0/0) 🎉

Increment coverage report
Complete coverage report

Category Coverage
Function Coverage 76.02% (34465/45336)
Line Coverage 60.99% (388149/636411)
Region Coverage 57.05% (325368/570308)
Branch Coverage 57.88% (148438/256474)

@hello-stephen

Copy link
Copy Markdown
Contributor

BE Regression && UT Coverage Report

Increment line coverage 100% (0/0) 🎉

Increment coverage report
Complete coverage report

Category Coverage
Function Coverage 76.03% (34467/45336)
Line Coverage 61.01% (388280/636411)
Region Coverage 57.06% (325426/570308)
Branch Coverage 57.89% (148463/256474)

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants