@@ -698,6 +698,7 @@ int flb_engine_start(struct flb_config *config)
698
698
struct flb_sched * sched ;
699
699
struct flb_net_dns dns_ctx ;
700
700
struct flb_notification * notification ;
701
+ int exiting = FLB_FALSE ;
701
702
702
703
/* Initialize the networking layer */
703
704
flb_net_lib_init ();
@@ -1050,22 +1051,30 @@ int flb_engine_start(struct flb_config *config)
1050
1051
flb_task_running_print (config );
1051
1052
}
1052
1053
if ((mem_chunks + fs_chunks ) > 0 ) {
1053
- flb_info ("[engine] Pending chunk count: memory=%d, filesystem=%d" ,
1054
- mem_chunks , fs_chunks );
1054
+ flb_info ("[engine] pending chunk count: memory=%d, filesystem=%d; grace_timer =%d" ,
1055
+ mem_chunks , fs_chunks , config -> grace_count );
1055
1056
}
1057
+
1058
+ /* Create new tasks for pending chunks */
1059
+ flb_engine_flush (config , NULL );
1056
1060
if (config -> grace_count < config -> grace_input ) {
1057
- flb_engine_exit (config );
1061
+ if (exiting == FLB_FALSE ) {
1062
+ flb_engine_exit (config );
1063
+ exiting = FLB_TRUE ;
1064
+ }
1058
1065
} else {
1059
- flb_engine_stop_ingestion (config );
1066
+ if (config -> is_ingestion_active == FLB_TRUE ) {
1067
+ flb_engine_stop_ingestion (config );
1068
+ }
1060
1069
}
1061
1070
}
1062
1071
else {
1063
1072
if (tasks > 0 ) {
1064
1073
flb_task_running_print (config );
1065
1074
}
1066
1075
if ((mem_chunks + fs_chunks ) > 0 ) {
1067
- flb_info ("[engine] Pending chunk count: memory=%d, filesystem=%d" ,
1068
- mem_chunks , fs_chunks );
1076
+ flb_info ("[engine] pending chunk count: memory=%d, filesystem=%d; grace_timer =%d" ,
1077
+ mem_chunks , fs_chunks , config -> grace_count );
1069
1078
}
1070
1079
flb_info ("[engine] service has stopped (%i pending tasks)" ,
1071
1080
tasks );
0 commit comments