Subject: Re: bug#18499: Possible mv race for hardlinks (rhbz #1141368 )

From: Pádraig Brady <[email-masked]>
Date: Sat, 29 Nov 2014 22:59:52 +0000

On 21/11/14 03:30, Pádraig Brady wrote:
> We want to leave the logic in place for cp and install though,
> and I've adjusted your patch accordingly. I've also adjusted
> the tests to pass and augmented the tests to cover one of
> the cases missed in the previous patch.  I'll push this tomorrow.

There was a small window where attachments were being stripped
from gnu mailing list emails, that the above hit unfortunately.
So for the record, the patch referenced above is:
http://git.sv.gnu.org/gitweb/?p=coreutils.git;a=commit;h=222d7ac0

There was a problem with that though, identified by the darwin job
added to the hydra continuous integration system today:
http://hydra.nixos.org/job/gnu/coreutils-master/build.x86_64-darwin

I pushed the attached patch to address that.

thanks,
Pádraig.
From 6f16c63963b0624cbcbf285fb936b79276c047de Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?P=C3=A1draig=20Brady?= <[email-masked]>
Date: Sat, 29 Nov 2014 22:42:04 +0000
Subject: [PATCH] tests: avoid hardlink to symlink tests where not supported

These checks weren't correctly avoided in commit v8.23-66-g222d7ac

* tests/cp/same-file.sh: Avoid all hardlink to symlink tests
on platforms where that's not supported.
Identified by http://hydra.nixos.org/build/17636446
---
 tests/cp/same-file.sh | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/tests/cp/same-file.sh b/tests/cp/same-file.sh
index 54d23a5..242c54b 100755
--- a/tests/cp/same-file.sh
+++ b/tests/cp/same-file.sh
@@ -36,7 +36,7 @@ ln dangling-slink hard-link > /dev/null 2>&1 \
 rm -f no-such dangling-slink hard-link
 
 test $hard_link_to_symlink_does_the_deref = yes \
-    && remove_these_sed='/^0 -[bf]*l .*sl1 ->/d' \
+    && remove_these_sed='/^0 -[bf]*l .*sl1 ->/d; /hlsl/d' \
     || remove_these_sed='/^ELIDE NO TEST OUTPUT/d'
 
 exec 3>&1 1> actual
@@ -71,11 +71,13 @@ for args in 'foo symlink' 'symlink foo' 'foo foo' 'sl1 sl2' \
     # cont'd  Instead, skip them only on systems for which link does
     # dereference a symlink.  Detect and skip such tests here.
     case $hard_link_to_symlink_does_the_deref:$args:$options in
-      yes:*sl2:-fl)
+      'yes:sl1 sl2:-fl')
         continue ;;
-      yes:*sl2:-bl)
+      'yes:sl1 sl2:-bl')
         continue ;;
-      yes:*sl2:-bfl)
+      'yes:sl1 sl2:-bfl')
+        continue ;;
+      yes:hlsl*)
         continue ;;
     esac
 
-- 
2.1.0