ephraimbuddy commented on code in PR #76016:
URL: https://github.com/apache/airflow/pull/76016#discussion_r4421779553
##########
airflow-core/src/airflow/cli/commands/triggerer_command.py:
##########
@@ -43,7 +44,14 @@ def _serve_logs(skip_serve_logs: bool = False) ->
Generator[None, None, None]:
if skip_serve_logs is False:
port = conf.getint("logging", "trigger_log_server_port", fallback=8794)
sub_proc = Process(target=partial(serve_logs, port=port))
- sub_proc.start()
+ # Freeze the GC before forking so a later full GC can't split the
COW-shared pages
+ # into private copies (a memory jump with no new allocation). Same
pattern as the
+ # executors / Dag processor manager; only affects the ``fork`` start
method.
+ gc.freeze()
+ try:
+ sub_proc.start()
+ finally:
+ gc.unfreeze()
Review Comment:
```suggestion
if get_start_method() == "fork":
# Stay frozen: the triggerer forks each child once, and
unfreezing would let this
# process's next full GC copy the pages the child shares.
gc.freeze()
sub_proc.start()
```
--
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]