[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Bug-tar] [PATCH] tests: fix race in dirrem01 and dirrem02
From: |
Pavel Raiskup |
Subject: |
Re: [Bug-tar] [PATCH] tests: fix race in dirrem01 and dirrem02 |
Date: |
Mon, 30 Jul 2018 15:07:25 +0200 |
On Tuesday, March 13, 2018 9:42:41 PM CEST Pavel Raiskup wrote:
> ping, still valid issue
ping
> On Thursday, January 4, 2018 7:17:31 PM CET Pavel Raiskup wrote:
> > Previously the '--checkpoint-action=echo' was triggered after
> > '--checkpoint-action=sleep=1' - so the order of events *usually*
> > was (for --format='gnu'):
> >
> > ...
> > 1. checkpoint handler before write of 'dir/sub' member
> > 2. one-second delay
> > 3. stderr write: 'tar: Write checkpoint 3'
> > 4. write the member 'dir/sub' into the archive
> > 5. check that the member's ctime has not been changed
> > 6. genfile's detecting 'Write checkpoint', doing unlink
> > ...
> >
> > But sometimes, the genfile was fast enough to win the race and
> > unlinked the directory before the member was written into the
> > archive (IOW, the order was 1-2-3-6-4-5). This led to the
> > occasional warning 'tar: dir/sub: file changed as we read it'.
> >
> > Swap the order of 'sleep=1' and 'echo' actions so the genfile
> > utility has (hopefully) enough time to do the unlink before
> > writing the file into the archive (enforce 1-2-3-6-4-5 order).
> >
> > * tests/dirrem01.at: Swap 'sleep=1' and 'echo' actions.
> > * tests/dirrem02.at: Likewise.
> > ---
> > tests/dirrem01.at | 5 +++--
> > tests/dirrem02.at | 7 ++++---
> > 2 files changed, 7 insertions(+), 5 deletions(-)
> >
> > diff --git a/tests/dirrem01.at b/tests/dirrem01.at
> > index 40344dc..dabc206 100644
> > --- a/tests/dirrem01.at
> > +++ b/tests/dirrem01.at
> > @@ -47,14 +47,15 @@ gnu) CPT=3;;
> > esac
> >
> > genfile --run --checkpoint=$CPT --unlink dir/sub/file2 --unlink dir/sub --
> > \
> > - tar --blocking-factor=1 --checkpoint=1
> > --checkpoint-action='sleep=1' \
> > - --checkpoint-action='echo' -c -f archive.tar \
> > + tar --blocking-factor=1 --checkpoint=1 --checkpoint-action='echo' \
> > + --checkpoint-action='sleep=1' -c -f archive.tar \
> > --listed-incremental db -v dir >/dev/null
> > ],
> > [1],
> > [ignore],
> > [tar: dir: Directory is new
> > tar: dir/sub: Directory is new
> > +tar: dir/sub: file changed as we read it
> > tar: dir/sub: File removed before we read it
> > ],[],[],[gnu,posix])
> >
> > diff --git a/tests/dirrem02.at b/tests/dirrem02.at
> > index e1cf9ef..924454f 100644
> > --- a/tests/dirrem02.at
> > +++ b/tests/dirrem02.at
> > @@ -20,7 +20,7 @@
> >
> > # Description:
> > #
> > -# When an explicitley named directory disappears during creation
> > +# When an explicitly named directory disappears during creation
> > # of incremental dump, tar should still exit with TAREXIT_FAILURE (2).
> > #
> > # For further details see dirrem01.at
> > @@ -44,14 +44,15 @@ gnu) CPT=3;;
> > esac
> >
> > genfile --run --checkpoint=$CPT --unlink dir/sub/file2 --unlink dir/sub --
> > \
> > - tar --blocking-factor=1 --checkpoint=1
> > --checkpoint-action='sleep=1' \
> > - --checkpoint-action='echo' -c -f archive.tar \
> > + tar --blocking-factor=1 --checkpoint=1 --checkpoint-action='echo' \
> > + --checkpoint-action='sleep=1' -c -f archive.tar \
> > --listed-incremental db -v dir dir/sub >/dev/null
> > ],
> > [2],
> > [ignore],
> > [tar: dir: Directory is new
> > tar: dir/sub: Directory is new
> > +tar: dir/sub: file changed as we read it
> > tar: dir/sub: Cannot open: No such file or directory
> > tar: Exiting with failure status due to previous errors
> > ],[],[],[gnu,posix])
> >
>
>
>
>
>
>
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Re: [Bug-tar] [PATCH] tests: fix race in dirrem01 and dirrem02,
Pavel Raiskup <=