[ET Trac] [Einstein Toolkit] #453: Formaline deletes files if lib and src are symlinks
Einstein Toolkit
trac-noreply at einsteintoolkit.org
Tue Jun 21 17:04:12 CDT 2011
#453: Formaline deletes files if lib and src are symlinks
----------------------------+-----------------------------------------------
Reporter: barry.wardell | Owner:
Type: defect | Status: new
Priority: major | Milestone:
Component: Cactus | Version:
Resolution: | Keywords:
----------------------------+-----------------------------------------------
Comment (by barry.wardell):
Replying to [comment:7 eschnett]:
> Yes, that is the idea. The patch as stop-gap measure, and then trying to
understand the real cause of the problem and correcting git-add-thorn.pl.
OK, I have committed this patch anyway.
> I do not think that Mac OS allows hard links to directories for regular
users. With these, one can create directory structures that are not trees,
which would break many Unix expectations; in particular, one can create
directory structures disconnected from the root directory and hence
unreachable. Root can call the "link" syscall (maybe even from the "ln"
command, possibly with a special option) to do this, but it's highly
discouraged.
Nevertheless, this is the case:
$ stat -f %i dir1/dir2
7846166
$ stat -f %i dir4
7846166
Note that in contrast to my above test case, the following does not have
the same problem:
mkdir dir1
touch dir1/file
ln -s dir1 dir3
perl -e 'link dir3, dir4'
In this case, dir4 is not created. To me this seems like an OS/perl bug to
me. Would the best think to do be to add an explicit check that the source
is not a symlink or directory before it does the link command?
Replying to [comment:8 rhaas]:
> find's -L option recurses into symbolic links and is required by POSIX.
One can turn it off again with the -H switch eg. for '-L ! -type d -H' or
just put it at the beginning of the whole find line.
I was going to originally suggest this as alternative solution. The only
reason I didn't was that with the patch as-is it only affects this
particular case, whereas I was worried that adding -L could have some
other unrelated effects (either good or bad).
--
Ticket URL: <https://trac.einsteintoolkit.org/ticket/453#comment:9>
Einstein Toolkit <http://einsteintoolkit.org>
The Einstein Toolkit
More information about the Trac
mailing list