[BUG] aiaiai-test-patchset removes obj dirs too early
Keller, Jacob E
jacob.e.keller at intel.com
Tue Aug 11 10:05:29 PDT 2015
On Wed, 2015-08-05 at 08:52 -0700, Brian Norris wrote:
> On Tue, Aug 04, 2015 at 04:49:42PM -0700, Brian Norris wrote:
> > On Tue, Aug 04, 2015 at 11:25:24PM +0000, Keller, Jacob E wrote:
> > > I'll go ahead and queue this patch up.
> >
> > Actually, hold off there. There are some problems I didn't notice,
> > that
> > get exposed with multi-config runs. I'll work it out and send an
> > addon
> > patch shortly, I expect.
> >
> > With this patch, I've seen this sample error:
> >
> > [2015-08-04 16:29:07] aiaiai-test-patchset: Fatal error: aiaiai
> > -test-bisectability failed
>
> Yep, I was a bit hasty. I completely ignored some code from the
> beginning of test_configuration()! With this patch appended, I've got
> all my variations of single- and multi-config tests working.
>
> Brian
>
Oops! Thanks for the catch. I'll get this applied soon. Sorry I didn't
respond sooner I was on vacation.
Regards,
Jake
> Subject: [PATCH] aiaiai-test-patchset: remove leftover 'wait for
> bisect test'
> code
>
> I didn't notice this code in my first (quick) pass at fixing a race
> condition here. Apparently we *were* trying to wait for the bisection
> test to complete, but we just weren't doing it at the right time.
>
> Anyway, with the current code, multi-config test runs will fail,
> since
> the second config will have a valid $pid_bisect from the previous
> config, meaning we will try to 'wait' again for the same expired
> process. The shell doesn't like that, so we fail.
>
> Let's move the bisect process's PID into a function-local context,
> and
> ensure that each config is completely finished before moving to the
> next
> one. So there will be a single, obvious place to wait for the process
> completion.
>
> Signed-off-by: Brian Norris <computersforpeace at gmail.com>
> ---
> aiaiai-test-patchset | 25 +++++++++----------------
> 1 file changed, 9 insertions(+), 16 deletions(-)
>
> diff --git a/aiaiai-test-patchset b/aiaiai-test-patchset
> index 92ca3dfe8a40..6193dfcae0f1 100755
> --- a/aiaiai-test-patchset
> +++ b/aiaiai-test-patchset
> @@ -163,7 +163,6 @@ test_checkpatch()
>
> }
>
> -pid_bisect=
> test_configuration()
> {
> local config="$1"
> @@ -171,21 +170,10 @@ test_configuration()
> local arch="$(leave_second "$1")";
> local cross="$(leave_third "$1")";
> local arch_opt=
> + local pid_bisect=
>
> [ -z "$arch" ] || arch_opt="-a $arch${cross:+",$cross"}"
>
> - if [ -n "$bisectability" ]; then
> - # We share the same source tree with 'aiaiai-test
> -bisectability', so
> - # wait for it (it could be run at the previous
> iteration)
> - if [ -n "$pid_bisect" ]; then
> - wait "$pid_bisect" || die "aiaiai-test
> -bisectability failed"
> - pid_bisect=
> - fi
> -
> - # Clean-up the git tree after the test
> - rm $verbose -rf "$cloned_kernel1/.git/rebase-apply"
> >&2
> - fi
> -
> git --git-dir="$(git_dir "$cloned_kernel1")" reset $quiet -
> -hard "$commit_id1" >&2
>
> # Enable use of a random condiguration that is stable
> between the
> @@ -248,9 +236,14 @@ test_configuration()
> aiaiai-diff-log $verbose $preserve "$tmpdir/diff-for-diff
> -log" "$log1.stderr.log" \
> -w "$tmpdir" "$log2.stderr.log" >
> "$tmpdir/$config.stderr.diff"
>
> - # MUST sync with bisect test before removing build artifacts
> - [ -z "$pid_bisect" ] || wait "$pid_bisect" || die "aiaiai
> -test-bisectability failed"
> - verbose "Done with bisectability test"
> + if [ -n "$bisectability" ]; then
> + # MUST sync with bisect test before removing build
> artifacts
> + wait "$pid_bisect" || die "aiaiai-test-bisectability
> failed"
> +
> + # Clean-up the git tree after the test
> + rm $verbose -rf "$cloned_kernel1/.git/rebase-apply"
> >&2
> + verbose "Done with bisectability test"
> + fi
>
> if [ -n "$preserve" ]; then
> message "Preserving objdirs: $obj1 $obj2"
More information about the aiaiai
mailing list