Source: dumb-init
Version: 1.2.0-1
Severity: serious
Tags: ftbfs
https://buildd.debian.org/status/package.php?p=dumb-init
...
=================================== FAILURES ===================================
_____________ test_all_processes_receive_term_on_exit_if_setsid[1] _____________
@pytest.mark.usefixtures('both_debug_modes', 'setsid_enabled')
def test_all_processes_receive_term_on_exit_if_setsid():
"""If the child exits for some reason, dumb-init should send TERM to all
processes in its session if setsid mode is enabled."""
> child_pid, child_stdout = spawn_process_which_dies_with_children()
tests/child_processes_test.py:109:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
def spawn_process_which_dies_with_children():
"""Spawn a process which spawns some children and then dies without
signaling them, wrapped in dumb-init.
Returns a tuple (child pid, child stdout pipe), where the child is
print_signals. This is useful because you can signal the PID and see if
anything gets printed onto the stdout pipe.
"""
proc = Popen(
(
'dumb-init',
'sh', '-c',
# we need to sleep before the shell exits, or dumb-init might
send
# TERM to print_signals before it has had time to register
custom
# signal handlers
'{python} -m testing.print_signals & sleep 0.1'.format(
python=sys.executable,
),
),
stdout=PIPE,
)
proc.wait()
assert proc.returncode == 0
# read a line from print_signals, figure out its pid
line = proc.stdout.readline()
match = re.match(b'ready \(pid: ([0-9]+)\)\n', line)
> assert match, line
E AssertionError:
E assert None
tests/child_processes_test.py:95: AssertionError
----------------------------- Captured stderr call -----------------------------
[dumb-init] Running in debug mode.
[dumb-init] Unable to detach from controlling tty (errno=25 Inappropriate ioctl
for device).
[dumb-init] Child spawned with PID 7035.
[dumb-init] Unable to attach to controlling tty (errno=25 Inappropriate ioctl
for device).
[dumb-init] setsid complete.
[dumb-init] Received signal 18.
[dumb-init] A child with PID 7035 exited with exit status 0.
[dumb-init] Forwarded signal 15 to children.
[dumb-init] Child exited with status 0. Goodbye.
_____________ test_all_processes_receive_term_on_exit_if_setsid[0] _____________
@pytest.mark.usefixtures('both_debug_modes', 'setsid_enabled')
def test_all_processes_receive_term_on_exit_if_setsid():
"""If the child exits for some reason, dumb-init should send TERM to all
processes in its session if setsid mode is enabled."""
> child_pid, child_stdout = spawn_process_which_dies_with_children()
tests/child_processes_test.py:109:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
def spawn_process_which_dies_with_children():
"""Spawn a process which spawns some children and then dies without
signaling them, wrapped in dumb-init.
Returns a tuple (child pid, child stdout pipe), where the child is
print_signals. This is useful because you can signal the PID and see if
anything gets printed onto the stdout pipe.
"""
proc = Popen(
(
'dumb-init',
'sh', '-c',
# we need to sleep before the shell exits, or dumb-init might
send
# TERM to print_signals before it has had time to register
custom
# signal handlers
'{python} -m testing.print_signals & sleep 0.1'.format(
python=sys.executable,
),
),
stdout=PIPE,
)
proc.wait()
assert proc.returncode == 0
# read a line from print_signals, figure out its pid
line = proc.stdout.readline()
match = re.match(b'ready \(pid: ([0-9]+)\)\n', line)
> assert match, line
E AssertionError:
E assert None
tests/child_processes_test.py:95: AssertionError
==================== 2 failed, 170 passed in 27.83 seconds =====================
debian/rules:31: recipe for target 'override_dh_auto_test' failed
make[1]: *** [override_dh_auto_test] Error 1