> Martin, > > Thanks for your work on this. > > One thing that seems to be missing from the conversation is that recreating > the temp directory will prevent future failures when R wants to write a > temp file, but the files will, of course, not be there. Any code written > assuming the contract is that the temporary directory, and thus temporary > files, will not be cleaned up before the R process exits (which was my > naive assumption before this thread, and is the behavior AFAICT on all the > systems I regularly use) will still break. >
That is the kind of scenario I was hoping to obviate with my suggestion... > I'm not saying that's necessarily fixable (though the R keeping a permanent > pointer to a file in the dir suggested by Malcom might? fix it.), (and, FWIW, that's "Malcolm" with two "l"s. I think all those missing "l"s are flattened out versions of all the extra close parens I typed in the 80s that somehow got lost on the nets...))) > but I > would argue if it IS fixable, a fix that includes that would be preferable. Agreed! > > Best, > ~G > > On Tue, Apr 25, 2017 at 8:53 AM, Martin Maechler > <maech...@stat.math.ethz.ch > > wrote: > > > >>>>> Jeroen Ooms <jeroeno...@gmail.com> > > >>>>> on Tue, 25 Apr 2017 15:05:51 +0200 writes: > > > > > On Tue, Apr 25, 2017 at 1:00 PM, Martin Maechler > > > <maech...@stat.math.ethz.ch> wrote: > > >> As I've found it is not at all hard to add an option > > >> which checks the existence and if the directory is no > > >> longer "valid", tries to recreate it (and if it fails > > >> doing that it calls the famous R_Suicide(), as it does > > >> when R starts up and tempdir() cannot be initialized > > >> correctly). > > > > > Perhaps this can also fix the problem with mcparallel > > > deleting the tempdir() when one of its children dies: > > > > > file.exists(tempdir()) #TRUE > > > parallel::mcparallel(q('no')) > > > file.exists(tempdir()) # FALSE > > > > Thank you, Jeroen, for the extra example. > > > > I now have comitted the new feature... (completely back > > compatible: in R's code tempdir() is not yet called with an > > argument and the default is check = FALSE ), > > actually in a "suicide-free" way ... which needed only slightly > > more code. > > > > In the worst case, one could save the R session by > > Sys.setenv(TEMPDIR = "<something writable>") > > if for instance /tmp/ suddenly became unwritable for the user. > > > > What we could consider is making the default of 'check' settable > > by an option, and experiment with setting the option to TRUE, so > > all such problems would be auto-solved (says the incurable optimist ...). > > > > Martin > > > > ______________________________________________ > > R-devel@r-project.org mailing list > > https://stat.ethz.ch/mailman/listinfo/r-devel > > > > > > -- > Gabriel Becker, PhD > Associate Scientist (Bioinformatics) > Genentech Research > > [[alternative HTML version deleted]] > > ______________________________________________ > R-devel@r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-devel ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel