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]

Reply via email to