From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id 29E26138334 for ; Tue, 19 Jun 2018 12:27:48 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 0B529E08DA; Tue, 19 Jun 2018 12:27:47 +0000 (UTC) Received: from smtp.gentoo.org (dev.gentoo.org [IPv6:2001:470:ea4a:1:5054:ff:fec7:86e4]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id B542CE08DA for ; Tue, 19 Jun 2018 12:27:46 +0000 (UTC) Received: from oystercatcher.gentoo.org (oystercatcher.gentoo.org [148.251.78.52]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 748B6335C90 for ; Tue, 19 Jun 2018 12:27:44 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id A51F02CB for ; Tue, 19 Jun 2018 12:27:42 +0000 (UTC) From: "Thomas Deutschmann" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Thomas Deutschmann" Message-ID: <1529411257.e13b5d814ae6368708c659ae6ff578a51e479ca4.whissi@gentoo> Subject: [gentoo-commits] repo/gentoo:master commit in: app-arch/tar/, app-arch/tar/files/ X-VCS-Repository: repo/gentoo X-VCS-Files: app-arch/tar/files/tar-1.30-fix-test-117-and-118.patch app-arch/tar/tar-1.30.ebuild X-VCS-Directories: app-arch/tar/ app-arch/tar/files/ X-VCS-Committer: whissi X-VCS-Committer-Name: Thomas Deutschmann X-VCS-Revision: e13b5d814ae6368708c659ae6ff578a51e479ca4 X-VCS-Branch: master Date: Tue, 19 Jun 2018 12:27:42 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Archives-Salt: 4e2e9bda-dd43-4f6b-94ce-36b42393c8f7 X-Archives-Hash: 920fb3b244af48b65abd35164cabd525 commit: e13b5d814ae6368708c659ae6ff578a51e479ca4 Author: Thomas Deutschmann gentoo org> AuthorDate: Tue Jun 19 12:27:22 2018 +0000 Commit: Thomas Deutschmann gentoo org> CommitDate: Tue Jun 19 12:27:37 2018 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=e13b5d81 app-arch/tar: fix race in dirrem01 and dirrem02 test Package-Manager: Portage-2.3.40, Repoman-2.3.9 .../tar/files/tar-1.30-fix-test-117-and-118.patch | 89 ++++++++++++++++++++++ app-arch/tar/tar-1.30.ebuild | 5 +- 2 files changed, 93 insertions(+), 1 deletion(-) diff --git a/app-arch/tar/files/tar-1.30-fix-test-117-and-118.patch b/app-arch/tar/files/tar-1.30-fix-test-117-and-118.patch new file mode 100644 index 00000000000..2f75da6cd24 --- /dev/null +++ b/app-arch/tar/files/tar-1.30-fix-test-117-and-118.patch @@ -0,0 +1,89 @@ +tests: fix race in dirrem01 and dirrem02 + +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. + +Origin: https://lists.gnu.org/archive/html/bug-tar/2018-01/msg00000.html +--- + 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]) +-- +cgit v1.0-41-gc330 + diff --git a/app-arch/tar/tar-1.30.ebuild b/app-arch/tar/tar-1.30.ebuild index bf37c56a075..d777e30c76c 100644 --- a/app-arch/tar/tar-1.30.ebuild +++ b/app-arch/tar/tar-1.30.ebuild @@ -21,7 +21,10 @@ DEPEND="${RDEPEND} nls? ( >=sys-devel/gettext-0.10.35 ) xattr? ( elibc_glibc? ( sys-apps/attr ) )" -PATCHES=( "${FILESDIR}"/${P}-fix-test-92.patch ) +PATCHES=( + "${FILESDIR}"/${P}-fix-test-92.patch + "${FILESDIR}"/${P}-fix-test-117-and-118.patch +) src_prepare() { default