github-actions[bot] commented on code in PR #65651:
URL: https://github.com/apache/doris/pull/65651#discussion_r3586685682
##########
be/src/service/doris_main.cpp:
##########
@@ -724,6 +724,10 @@ int main(int argc, char** argv) {
_exit(0); // Do not call exit(0), it will wait for all objects
de-constructed normally
return 0;
}
+ // StreamLoadRecorderManager may be sending audit records through the
local HTTP service.
+ // Stop it before shutting down HTTP so its worker cannot wait for an
unavailable endpoint.
+ exec_env->stop_stream_load_recorder_manager();
Review Comment:
This still leaves a shutdown window where the recorder can discard records.
The new stop happens after SIGTERM has set `k_doris_exit`; heartbeat reports
that as `is_shutdown`, and FE then makes this BE unavailable for both query and
load planning. If the recorder worker is already in `_load_if_necessary()`, the
local HTTP stream load can come back with `No available backends` even though
HTTP is still running. `_load_if_necessary()` then logs the failure but still
calls `_save_last_fetch_key()` and clears the batch, so those fetched records
are skipped after restart. Please either stop/flush before the BE is advertised
as shutdown, or more robustly only persist the recorder cursor after
`_send_stream_load()` succeeds.
--
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]