github-actions[bot] commented on code in PR #65373:
URL: https://github.com/apache/doris/pull/65373#discussion_r3568057954
##########
be/src/cloud/cloud_storage_engine.cpp:
##########
@@ -1072,7 +1075,21 @@ Status
CloudStorageEngine::_submit_cumulative_compaction_task(const CloudTabletS
long now =
duration_cast<milliseconds>(system_clock::now().time_since_epoch())
.count();
// sleep 5s for this tablet
+ tablet->set_last_cumu_compaction_status(
+ "cumulative compaction delayed: large task thread
pool intensive");
tablet->set_last_cumu_compaction_failure_time(now);
+ auto gc_st = compaction->garbage_collection();
Review Comment:
This fixes the stale meta-service job, but the cleanup now runs while
`_cumu_compaction_delay_mtx` is still held. `garbage_collection()` reaches
`abort_tablet_job()` through `retry_rpc`, and the MoW fallback below can send
another meta-service RPC. While that RPC is slow or retrying, every cumulative
worker's `Defer` that needs the same mutex cannot decrement
`_cumu_compaction_thread_pool_used_threads` / small-task counters or remove
submitted state, so one delayed tablet can leave the local delay accounting
inflated and make unrelated cumulative tasks keep delaying. Please keep this
mutex scoped only to the counter update and delay decision, then release it
before aborting the tablet job / removing the delete-bitmap lock / erasing the
executing compaction.
--
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]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]