Bug#915311: dumb-init FTBFS on mips*: test failures
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
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
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
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
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
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
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
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