Skip to content

Commit

Permalink
Remove unneeded interchange SIGTERM handler (#3635)
Browse files Browse the repository at this point in the history
This was introduced in PR #2629 to guard against the submit process
installing a SIGTERM handler and then that handler being unexpectedly
inherited by the interchange via multiprocesssing fork

PR #3463 changed the interchange to run as a fresh Python
process, which will not inherit SIGTERM handlers, so since
then this line has been vestigial.

Fixes issue #3588
  • Loading branch information
benclifford authored Oct 14, 2024
1 parent 2eb05cd commit ae5e5f4
Showing 1 changed file with 0 additions and 11 deletions.
11 changes: 0 additions & 11 deletions parsl/executors/high_throughput/interchange.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@
import pickle
import platform
import queue
import signal
import sys
import threading
import time
Expand Down Expand Up @@ -313,16 +312,6 @@ def start(self) -> None:
""" Start the interchange
"""

# If a user workflow has set its own signal handler for sigterm, that
# handler will be inherited by the interchange process because it is
# launched as a multiprocessing fork process.
# That can interfere with the interchange shutdown mechanism, which is
# to receive a SIGTERM and exit immediately.
# See Parsl issue #2343 (Threads and multiprocessing cannot be
# intermingled without deadlocks) which talks about other fork-related
# parent-process-inheritance problems.
signal.signal(signal.SIGTERM, signal.SIG_DFL)

logger.info("Starting main interchange method")

if self.hub_address is not None and self.hub_zmq_port is not None:
Expand Down

0 comments on commit ae5e5f4

Please sign in to comment.