[Rd] tempdir() may be deleted during long-running R session
frederik at ofb.net
frederik at ofb.net
Fri Apr 21 19:34:46 CEST 2017
Hi Mikko,
I was bitten by this recently and I think some of the replies are
missing the point. As I understand it, the problem consists of these
elements:
1. When R starts, it creates a directory like /tmp/RtmpVIeFj4
2. Right after R starts I can create files in this directory with no
error
3. After some hours or days I can no longer create files in this
directory, because it has been deleted
If R expected the directory to be deleted at random, and if we expect
users to call dir.create every time they access tempdir, then why did
R create the directory for us at the beginning of the session? That's
just setting people up to get weird bugs, which only appear in
difficult-to-reproduce situations (i.e. after the session has been
open for a long time).
I think before we dismiss this we should think about possible in-R
solutions and why they are not feasible. Are there any packages which
would break if a call to 'tempdir' automatically recreated this
directory? (Or would it be too much of a performance hit to have
'tempdir' check and even just issue a warning when the directory is
found not to exist?) Should we have a timer which periodically updates
the modification time of tempdir()? What do other long-running
programs do (e.g. screen, emacs)?
Thank you,
Frederick
P.S. I noticed that dir.create does not seem to update the access or
modification time of the file. So there is also a remote possibility
that the directory could be "cleaned up" in between calling
'dir.create()' and putting a file in it. Maybe this is nitpicky, but
if we accept that the *really* correct practice is more complicated
than just calling 'dir.create()', this also argues for putting the
proper invocations into some kind of standard function - either
'tempdir()' or something else.
More information about the R-devel
mailing list