Temporary files not accessed for a long time are automatically removed in some Linux distributions and probably other operating systems too, depending on system configuration. This may affect the per-session temporary directory, the path of which is returned by tempdir(). I think it would be nice if R automatically tried to recreate a missing tempdir() but this could have some performance implications.

I ran the same test (below) on R 3.3.3 patched, R 3.4.0 beta, and R-devel, all at r72499 (2017-04-09) and compiled by myself. The results from the test were practically identical on all of those versions, the test platform being Ubuntu 14.04.5 LTS. This system is configured for a /tmp cleanup threshold of 7 days of inactivity (which is the default). After a wait of roughly 10 days, the R temporary directory had been deleted by an automatic cleanup procedure, and a call to `?` failed. This StackExchange question has some answers about the Ubuntu /tmp cleanup practice: https://askubuntu.com/q/20783

a <- print(tempdir())
# [1] "/tmp/user/1069138/RtmpGc9M5z"
dir.exists(a) # TRUE
# [1] TRUE
Sys.time()
# [1] "2017-04-10 16:00:30 EEST"
## Wait for one week (Ubuntu 14.04.5 LTS)
print(Sys.time()); ?regex
# [1] "2017-04-20 14:17:29 EEST"
# Error in file(out, "wt") : cannot open the connection
# In addition: Warning message:
# In file(out, "wt") :
# cannot open file '/tmp/user/1069138/RtmpGc9M5z/Rtxt3dbb65870ad4': No such file or directory
b <- print(tempdir())
# [1] "/tmp/user/1069138/RtmpGc9M5z"
identical(a, b)
# [1] TRUE
dir.exists(b)
# [1] FALSE

--
Mikko Korpela
Department of Geosciences and Geography
University of Helsinki

______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel

Reply via email to