Bug#915311: dumb-init FTBFS on mips*: test failures

2019-02-18 Thread Dmitry Smirnov
On Thursday, 14 February 2019 4:03:35 AM AEDT Shengjing Zhu wrote:
> BTW, now the test migration is 10 days, and this package will be removed
> from testing in 6 days. Maybe the release-team should be contacted to
> keep this in buster?

I can not spare time for dumb-init right now but I trust you to do whatever 
you think is appropriate.

Thank you.

-- 
Regards,
 Dmitry Smirnov.

---

Criticism may not be agreeable, but it is necessary. It fulfils the same
function as pain in the human body. It calls attention to an unhealthy
state of things.
-- Winston Churchill


signature.asc
Description: This is a digitally signed message part.


Bug#915311: dumb-init FTBFS on mips*: test failures

2019-02-18 Thread Dmitry Smirnov
On Saturday, 16 February 2019 5:57:51 AM AEDT Shengjing Zhu wrote:
> I've uploaded this NMU to DELAYED/2-day. Hope it works.

Awesome. Thank you very much.

-- 
Regards,
 Dmitry Smirnov.

---

To predict the behavior of ordinary people in advance, you only have to
assume that they will always try to escape a disagreeable situation with
the smallest possible expenditure of intelligence.
-- Friedrich Nietzsche


signature.asc
Description: This is a digitally signed message part.


Bug#915311: dumb-init FTBFS on mips*: test failures

2019-02-15 Thread Shengjing Zhu
Hi,

I've uploaded this NMU to DELAYED/2-day. Hope it works.

On Thu, Feb 14, 2019 at 1:03 AM Shengjing Zhu  wrote:
>
> diff -Nru dumb-init-1.2.2/debian/changelog dumb-init-1.2.2/debian/changelog
> --- dumb-init-1.2.2/debian/changelog2019-01-27 14:30:06.0 +0800
> +++ dumb-init-1.2.2/debian/changelog2019-02-14 00:50:21.0 +0800
> @@ -1,3 +1,10 @@
> +dumb-init (1.2.2-1.1) unstable; urgency=medium
> +
> +  * Non-maintainer upload.
> +  * Add patch to fix tests on slow machines. (Closes: #915311)
> +
> + -- Shengjing Zhu   Thu, 14 Feb 2019 00:50:21 +0800
> +
>  dumb-init (1.2.2-1) unstable; urgency=medium
>
>[ Ondřej Nový ]
> diff -Nru dumb-init-1.2.2/debian/patches/increase-test-sleep-time.patch 
> dumb-init-1.2.2/debian/patches/increase-test-sleep-time.patch
> --- dumb-init-1.2.2/debian/patches/increase-test-sleep-time.patch   
> 1970-01-01 08:00:00.0 +0800
> +++ dumb-init-1.2.2/debian/patches/increase-test-sleep-time.patch   
> 2019-02-14 00:50:21.0 +0800
> @@ -0,0 +1,18 @@
> +Description: increase test sleep time
> + The test will fail on some slow machines if the sleep time
> + is too short.
> +Author: Shengjing Zhu 
> +Bug-Debian: https://bugs.debian.org/915311
> +Last-Update: 2019-02-14
> +
> +--- dumb-init-1.2.2.orig/tests/child_processes_test.py
>  dumb-init-1.2.2/tests/child_processes_test.py
> +@@ -80,7 +80,7 @@ def spawn_process_which_dies_with_childr
> + # 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} -m testing.print_signals & sleep 1'.format(
> + python=sys.executable,
> + ),
> + ),
> diff -Nru dumb-init-1.2.2/debian/patches/series 
> dumb-init-1.2.2/debian/patches/series
> --- dumb-init-1.2.2/debian/patches/series   2019-01-27 14:20:28.0 
> +0800
> +++ dumb-init-1.2.2/debian/patches/series   2019-02-14 00:46:35.0 
> +0800
> @@ -1 +1,2 @@
>  build.patch
> +increase-test-sleep-time.patch

-- 
Shengjing Zhu



Processed: Re: Bug#915311: dumb-init FTBFS on mips*: test failures

2019-02-13 Thread Debian Bug Tracking System
Processing control commands:

> tags -1 + patch
Bug #915311 [src:dumb-init] dumb-init FTBFS on mips*: test failures
Added tag(s) patch.

-- 
915311: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=915311
Debian Bug Tracking System
Contact ow...@bugs.debian.org with problems



Bug#915311: dumb-init FTBFS on mips*: test failures

2019-02-13 Thread Shengjing Zhu
Control: tags -1 + patch

Hi,

I test it on eller and I can reproduce this failure.
After increasing the sleep time, the test passed on eller(mipsel).

BTW, now the test migration is 10 days, and this package will be removed
from testing in 6 days. Maybe the release-team should be contacted to
keep this in buster?

-- 
Shengjing Zhu

diff -Nru dumb-init-1.2.2/debian/changelog dumb-init-1.2.2/debian/changelog
--- dumb-init-1.2.2/debian/changelog2019-01-27 14:30:06.0 +0800
+++ dumb-init-1.2.2/debian/changelog2019-02-14 00:50:21.0 +0800
@@ -1,3 +1,10 @@
+dumb-init (1.2.2-1.1) unstable; urgency=medium
+
+  * Non-maintainer upload.
+  * Add patch to fix tests on slow machines. (Closes: #915311)
+
+ -- Shengjing Zhu   Thu, 14 Feb 2019 00:50:21 +0800
+
 dumb-init (1.2.2-1) unstable; urgency=medium
 
   [ Ondřej Nový ]
diff -Nru dumb-init-1.2.2/debian/patches/increase-test-sleep-time.patch 
dumb-init-1.2.2/debian/patches/increase-test-sleep-time.patch
--- dumb-init-1.2.2/debian/patches/increase-test-sleep-time.patch   
1970-01-01 08:00:00.0 +0800
+++ dumb-init-1.2.2/debian/patches/increase-test-sleep-time.patch   
2019-02-14 00:50:21.0 +0800
@@ -0,0 +1,18 @@
+Description: increase test sleep time
+ The test will fail on some slow machines if the sleep time
+ is too short.
+Author: Shengjing Zhu 
+Bug-Debian: https://bugs.debian.org/915311
+Last-Update: 2019-02-14
+
+--- dumb-init-1.2.2.orig/tests/child_processes_test.py
 dumb-init-1.2.2/tests/child_processes_test.py
+@@ -80,7 +80,7 @@ def spawn_process_which_dies_with_childr
+ # 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} -m testing.print_signals & sleep 1'.format(
+ python=sys.executable,
+ ),
+ ),
diff -Nru dumb-init-1.2.2/debian/patches/series 
dumb-init-1.2.2/debian/patches/series
--- dumb-init-1.2.2/debian/patches/series   2019-01-27 14:20:28.0 
+0800
+++ dumb-init-1.2.2/debian/patches/series   2019-02-14 00:46:35.0 
+0800
@@ -1 +1,2 @@
 build.patch
+increase-test-sleep-time.patch


signature.asc
Description: PGP signature


Bug#915311: dumb-init FTBFS on mips*: test failures

2019-02-05 Thread Adrian Bunk
On Sun, Dec 02, 2018 at 04:18:30PM -0800, Chris Kuehl wrote:
> Hi Adrian,
> 
> Thanks for filing this. I can't be certain, but I have a strong
> suspicion that this is caused by a bug that we fixed upstream with
> dumb-init 1.2.2 which was causing flakiness in the test suite on
> certain environments and architectures.
> 
> The bug was: https://github.com/Yelp/dumb-init/issues/136
> The patch was: https://github.com/Yelp/dumb-init/pull/174
> 
> If possible, I would suggest packaging the latest version of dumb-init
> (currently 1.2.2) as the easiest way to fix this.
> 
> Please let me know if there's any way we can help from the upstream side.

1.2.2 still fails:
https://buildd.debian.org/status/package.php?p=dumb-init
https://tests.reproducible-builds.org/debian/rb-pkg/unstable/amd64/dumb-init.html

Based on the (non)pattern of the failures I would suspect some kind of 
race condition (or timeout) that is more likely to hit on slow hardware.

cu
Adrian

-- 

   "Is there not promise of rain?" Ling Tan asked suddenly out
of the darkness. There had been need of rain for many days.
   "Only a promise," Lao Er said.
   Pearl S. Buck - Dragon Seed



Bug#915311: dumb-init FTBFS on mips*: test failures

2018-12-02 Thread Chris Kuehl
Hi Adrian,

Thanks for filing this. I can't be certain, but I have a strong
suspicion that this is caused by a bug that we fixed upstream with
dumb-init 1.2.2 which was causing flakiness in the test suite on
certain environments and architectures.

The bug was: https://github.com/Yelp/dumb-init/issues/136
The patch was: https://github.com/Yelp/dumb-init/pull/174

If possible, I would suggest packaging the latest version of dumb-init
(currently 1.2.2) as the easiest way to fix this.

Please let me know if there's any way we can help from the upstream side.

On Sun, Dec 2, 2018 at 9:39 AM Adrian Bunk  wrote:
>
> 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', 

Bug#915311: dumb-init FTBFS on mips*: test failures

2018-12-02 Thread Adrian Bunk
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