From edd at debian.org  Sun Apr 23 16:15:18 2017
From: edd at debian.org (Dirk Eddelbuettel)
Date: Sun, 23 Apr 2017 09:15:18 -0500
Subject: [Rd] tempdir() may be deleted during long-running R session
In-Reply-To: <20170421173446.GB20737@ofb.net>
References: <c78e9022-04c2-3cda-5898-dceec8bc5e94@helsinki.fi>
 <15e3b0a3-e0a8-2da8-27c4-9268a5751986@stats.ox.ac.uk>
 <4f0797c5-a078-67ae-3992-cd66a82b454a@helsinki.fi>
 <22777.65060.465733.160015@max.eddelbuettel.com>
 <20170421173446.GB20737@ofb.net>
Message-ID: <22780.46838.39255.710673@max.eddelbuettel.com>


On 21 April 2017 at 10:34, frederik at ofb.net wrote:
| 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

Nope. That is local to your system. Witness eg at my workstation:

/tmp$ ls -ltGd Rtmp* 
drwx------ 3 edd 4096 Apr 21 16:12 Rtmp9K6bSN
drwx------ 3 edd 4096 Apr 21 11:48 RtmpRRbaMP
drwx------ 3 edd 4096 Apr 21 11:28 RtmpFlguFy
drwx------ 3 edd 4096 Apr 20 13:06 RtmpWJDF3U
drwx------ 3 edd 4096 Apr 18 15:58 RtmpY7ZIS1
drwx------ 3 edd 4096 Apr 18 12:12 Rtmpzr9W0v
drwx------ 2 edd 4096 Apr 16 16:02 RtmpeD27El
drwx------ 2 edd 4096 Apr 16 15:57 Rtmp572FHk
drwx------ 3 edd 4096 Apr 13 11:08 RtmpqP0JSf
drwx------ 3 edd 4096 Apr 10 18:47 RtmpzRzyFb
drwx------ 3 edd 4096 Apr  6 15:21 RtmpQhvAUb
drwx------ 3 edd 4096 Apr  6 11:24 Rtmp2lFKPz
drwx------ 3 edd 4096 Apr  5 20:57 RtmprCeWUS
drwx------ 2 edd 4096 Apr  3 15:12 Rtmp8xviDl
drwx------ 3 edd 4096 Mar 30 16:50 Rtmp8w9n5h
drwx------ 3 edd 4096 Mar 28 11:33 RtmpjAg6iY
drwx------ 2 edd 4096 Mar 28 09:26 RtmpYHSgZG
drwx------ 2 edd 4096 Mar 27 11:21 Rtmp0gSV4e
drwx------ 2 edd 4096 Mar 27 11:21 RtmpOnneiY
drwx------ 2 edd 4096 Mar 27 11:17 RtmpIWeiTJ
drwx------ 3 edd 4096 Mar 22 08:51 RtmpJkVsSJ
drwx------ 3 edd 4096 Mar 21 10:33 Rtmp9a5KxL
/tmp$ 

Clearly still there after a month. I tend to have some longer-running R
sessions in either Emacs/ESS or RStudio.

So what I wrote in my last message here *clearly* applies to you: a local
issue for which you have to take local action as R cannot know.  You also
have a choice of setting variables to affect this.
 
| 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 disagree. R has been doing this many years, possibly two decades.
 
| 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)?

There are options you have right now.

Dirk

-- 
http://dirk.eddelbuettel.com | @eddelbuettel | edd at debian.org



[Rd] tempdir() may be deleted during long-running R session
Dirk Eddelbuettel