[Python-checkins] r47014 - python/trunk/Lib/test/fork_wait.py python/trunk/Lib/test/test_fork1.py python/trunk/Lib/test/test_wait3.py python/trunk/Lib/test/test_wait4.py
Neal Norwitz
nnorwitz at gmail.com
Sun Jun 18 21:40:08 CEST 2006
10 times with 1 second waits is arbitrary. These values may need to
be adjusted.
On 6/18/06, neal.norwitz <python-checkins at python.org> wrote:
> Author: neal.norwitz
> Date: Sun Jun 18 21:37:40 2006
> New Revision: 47014
>
> Modified:
> python/trunk/Lib/test/fork_wait.py
> python/trunk/Lib/test/test_fork1.py
> python/trunk/Lib/test/test_wait3.py
> python/trunk/Lib/test/test_wait4.py
> Log:
> The hppa ubuntu box sometimes hangs forever in these tests. My guess
> is that the wait is failing for some reason. Use WNOHANG, so we won't
> wait until the buildbot kills the test suite.
>
> I haven't been able to reproduce the failure, so I'm not sure if
> this will help or not. Hopefully, this change will cause the test
> to fail, rather than hang. That will be better since we will get
> the rest of the test results. It may also help us debug the real problem.
>
>
> Modified: python/trunk/Lib/test/fork_wait.py
> ==============================================================================
> --- python/trunk/Lib/test/fork_wait.py (original)
> +++ python/trunk/Lib/test/fork_wait.py Sun Jun 18 21:37:40 2006
> @@ -34,7 +34,14 @@
> pass
>
> def wait_impl(self, cpid):
> - spid, status = os.waitpid(cpid, 0)
> + for i in range(10):
> + # waitpid() shouldn't hang, but some of the buildbots seem to hang
> + # in the forking tests. This is an attempt to fix the problem.
> + spid, status = os.waitpid(cpid, os.WNOHANG)
> + if spid == cpid:
> + break
> + time.sleep(2 * SHORTSLEEP)
> +
> self.assertEquals(spid, cpid)
> self.assertEquals(status, 0, "cause = %d, exit = %d" % (status&0xff, status>>8))
>
>
> Modified: python/trunk/Lib/test/test_fork1.py
> ==============================================================================
> --- python/trunk/Lib/test/test_fork1.py (original)
> +++ python/trunk/Lib/test/test_fork1.py Sun Jun 18 21:37:40 2006
> @@ -2,6 +2,7 @@
> """
>
> import os
> +import time
> from test.fork_wait import ForkWait
> from test.test_support import TestSkipped, run_unittest
>
> @@ -12,7 +13,14 @@
>
> class ForkTest(ForkWait):
> def wait_impl(self, cpid):
> - spid, status = os.waitpid(cpid, 0)
> + for i in range(10):
> + # waitpid() shouldn't hang, but some of the buildbots seem to hang
> + # in the forking tests. This is an attempt to fix the problem.
> + spid, status = os.waitpid(cpid, os.WNOHANG)
> + if spid == cpid:
> + break
> + time.sleep(1.0)
> +
> self.assertEqual(spid, cpid)
> self.assertEqual(status, 0, "cause = %d, exit = %d" % (status&0xff, status>>8))
>
>
> Modified: python/trunk/Lib/test/test_wait3.py
> ==============================================================================
> --- python/trunk/Lib/test/test_wait3.py (original)
> +++ python/trunk/Lib/test/test_wait3.py Sun Jun 18 21:37:40 2006
> @@ -2,6 +2,7 @@
> """
>
> import os
> +import time
> from test.fork_wait import ForkWait
> from test.test_support import TestSkipped, run_unittest
>
> @@ -17,10 +18,14 @@
>
> class Wait3Test(ForkWait):
> def wait_impl(self, cpid):
> - while 1:
> - spid, status, rusage = os.wait3(0)
> + for i in range(10):
> + # wait3() shouldn't hang, but some of the buildbots seem to hang
> + # in the forking tests. This is an attempt to fix the problem.
> + spid, status, rusage = os.wait3(os.WNOHANG)
> if spid == cpid:
> break
> + time.sleep(1.0)
> +
> self.assertEqual(spid, cpid)
> self.assertEqual(status, 0, "cause = %d, exit = %d" % (status&0xff, status>>8))
> self.assertTrue(rusage)
>
> Modified: python/trunk/Lib/test/test_wait4.py
> ==============================================================================
> --- python/trunk/Lib/test/test_wait4.py (original)
> +++ python/trunk/Lib/test/test_wait4.py Sun Jun 18 21:37:40 2006
> @@ -2,6 +2,7 @@
> """
>
> import os
> +import time
> from test.fork_wait import ForkWait
> from test.test_support import TestSkipped, run_unittest
>
> @@ -17,7 +18,13 @@
>
> class Wait4Test(ForkWait):
> def wait_impl(self, cpid):
> - spid, status, rusage = os.wait4(cpid, 0)
> + for i in range(10):
> + # wait4() shouldn't hang, but some of the buildbots seem to hang
> + # in the forking tests. This is an attempt to fix the problem.
> + spid, status, rusage = os.wait4(cpid, os.WNOHANG)
> + if spid == cpid:
> + break
> + time.sleep(1.0)
> self.assertEqual(spid, cpid)
> self.assertEqual(status, 0, "cause = %d, exit = %d" % (status&0xff, status>>8))
> self.assertTrue(rusage)
> _______________________________________________
> Python-checkins mailing list
> Python-checkins at python.org
> http://mail.python.org/mailman/listinfo/python-checkins
>
More information about the Python-checkins
mailing list