[darcs-devel] rollback.sh
David Roundy
droundy at darcs.net
Mon Mar 17 21:33:50 UTC 2008
On Sat, Mar 08, 2008 at 05:01:52PM -0700, zooko wrote:
> If I run this bash command line on Mac OS 10.4:
>
> $ perl shell_harness rollback.sh
>
> Then it runs the rollback.sh test and quickly finishes successfully.
>
> If I run this command-line:
>
> $ python -c 'import os;os.system("perl shell_harness rollback.sh")'
>
> Which does approximately the same thing, then it hangs indefinitely.
>
> There's something else curious about it -- twice during my
> experimentation I interrupted a test to the bash prompt back, but the
> test left several processes running in the background: bash, and yes,
> but not darcs or perl.
It sounds like either yes is buggy on macos, or pipes are buggy on macos,
or python is buggy on macos. Probably two out of the three (in exactly the
sort of way where they can each claim they're correct while the other one
is causing the problem).
Since there's nothing we can do about python except avoid using buildbot,
that's sort of irrelevant, except that knowing what python is doing to
trigger this evil behavior might give a clue as to workarounds. Certainly
python is involved, since without python there's no problem.
So the question becomes: do we avoid the use of yes, or the use of pipes?
I'm guessing that yes is actually the problem here, since it seems to be
present in every reported problem case. So perhaps we should have a "no
yes" policy for darcs' test suite. The trouble is that yes tends to get
introduced by folks working on macos who want greater portability.
For instance, the macos buildbot is currently hanging on
bugs/broken-pipe.sh. This uses 'yes' (presumably the trigger of the hang)
in an attempt by Eric to avoid the use of 'seq', which apparently isn't
available on macos (which is just insane).
Changes to tests/broken-pipe.sh:
Thu Feb 7 17:09:14 EST 2008 Eric Kow <E.Y.Kow at brighton.ac.uk>
* Make broken-pipe.sh test fail on MacOS X.
1) seq is non-portable, so that had to be replaced with something anyway.
2) the test worked with 20 items, but failed with a 100
I've little idea what's going on here. Eric also marked this test as
already broken on macos because it failed with 100 items. Could that be
the same bug with yes? I've no idea.
Suggestions anyone?
--
David Roundy
Department of Physics
Oregon State University
More information about the darcs-devel
mailing list