[ET Trac] [Einstein Toolkit] #1772: Simfactory: potentially serious problem with CACHE directory in the simulations directory
Einstein Toolkit
trac-noreply at einsteintoolkit.org
Wed May 6 04:02:34 CDT 2015
#1772: Simfactory: potentially serious problem with CACHE directory in the
simulations directory
-------------------------+--------------------------------------------------
Reporter: bmundim | Owner:
Type: defect | Status: new
Priority: critical | Milestone: ET_2015_05
Component: SimFactory | Version: development version
Resolution: | Keywords: CACHE
-------------------------+--------------------------------------------------
Comment (by hinder):
I've just looked at the relevant function
(https://bitbucket.org/simfactory/simfactory2/src/9c19923096de7cefe1efc903037aff0440807f3f/lib/restartlib.py?at=master#cl-576).
It is definitely not deliberately creating symbolic links. If the system
is configured to create symbolic links instead of hard links, I agree with
Erik that that is an incorrectly-configured system. Unless you can make
the system administrators see sense, SimFactory is going to have to check
whether the created file is a symbolic link, and if so, remove it and use
copying instead.
Replying to [comment:5 eschnett]:
> And with "right executable" I mean that it is the same executable, byte
for byte, as determined by an actual comparison, as the one in the source
tree.
The logic is currently a bit weird:
If there is no cached file with the same leaf name as the destination,
Copy the source to the destination
Try to hard link the destination to the cache file
If it fails, copy the destination to the cache file
else (there is already a file with the same leaf name as the destination),
try to hard link the cache file to the destination
If it fails, copy the cache file to the destination
[This is potentially a waste of time if you haven't first compared that
the files are equal; it could just as easily be a new (or old) executable]
If the source file has a modification time before or equal to that of the
destination file, and the sizes are equal, call the source and destination
files "equal" (??? this means that submitting an older executable with the
same name will use the older executable)
If the files are not "equal" as defined above,
Remove the destination file
Copy the source file to the destination
Remove the cache file
Hard link the destination to the cache
If this fails, copy the destination to the cache
Am I missing something, or is this logic fairly weird (and wrong, in the
case of an older executable)?
--
Ticket URL: <https://trac.einsteintoolkit.org/ticket/1772#comment:7>
Einstein Toolkit <http://einsteintoolkit.org>
The Einstein Toolkit
More information about the Trac
mailing list