diff --git a/be/src/pipeline/pipeline_x/dependency.h b/be/src/pipeline/pipeline_x/dependency.h index ba0d09620028c9..dfdb13b4414beb 100644 --- a/be/src/pipeline/pipeline_x/dependency.h +++ b/be/src/pipeline/pipeline_x/dependency.h @@ -788,13 +788,13 @@ struct LocalExchangeSharedState : public BasicSharedState { } void add_total_mem_usage(size_t delta) { - if (mem_usage.fetch_add(delta) > config::local_exchange_buffer_mem_limit) { + if (mem_usage.fetch_add(delta) + delta > config::local_exchange_buffer_mem_limit) { sink_deps.front()->block(); } } void sub_total_mem_usage(size_t delta) { - if (mem_usage.fetch_sub(delta) <= config::local_exchange_buffer_mem_limit) { + if (mem_usage.fetch_sub(delta) - delta <= config::local_exchange_buffer_mem_limit) { sink_deps.front()->set_ready(); } }