Skip to content

Commit

Permalink
pythongh-110033: Fix signal test_interprocess_signal() (python#110035)
Browse files Browse the repository at this point in the history
Fix test_interprocess_signal() of test_signal. Make sure that the
subprocess.Popen object is deleted before the test raising an
exception in a signal handler. Otherwise, Popen.__del__() can get the
exception which is logged as "Exception ignored in: ...." and the
test fails.
  • Loading branch information
vstinner authored and csm10495 committed Sep 29, 2023
1 parent 30f6589 commit b33f290
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 0 deletions.
8 changes: 8 additions & 0 deletions Lib/test/signalinterproctester.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import gc
import os
import signal
import subprocess
Expand Down Expand Up @@ -59,6 +60,13 @@ def test_interprocess_signal(self):
self.assertEqual(self.got_signals, {'SIGHUP': 1, 'SIGUSR1': 0,
'SIGALRM': 0})

# gh-110033: Make sure that the subprocess.Popen is deleted before
# the next test which raises an exception. Otherwise, the exception
# may be raised when Popen.__del__() is executed and so be logged
# as "Exception ignored in: <function Popen.__del__ at ...>".
child = None
gc.collect()

with self.assertRaises(SIGUSR1Exception):
with self.subprocess_send_signal(pid, "SIGUSR1") as child:
self.wait_signal(child, 'SIGUSR1')
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
Fix ``test_interprocess_signal()`` of ``test_signal``. Make sure that the
``subprocess.Popen`` object is deleted before the test raising an exception
in a signal handler. Otherwise, ``Popen.__del__()`` can get the exception
which is logged as ``Exception ignored in: ...`` and the test fails. Patch by
Victor Stinner.

0 comments on commit b33f290

Please sign in to comment.