[ESS] tracebug ess-inject-source race condition

Vitalie Spinu spinuvit at gmail.com
Wed Jun 26 11:22:42 CEST 2013


 >> Martin Maechler <maechler at stat.math.ethz.ch>
 >> on Wed, 26 Jun 2013 09:43:11 +0200 wrote:

 >>>>>> Vitalie Spinu <spinuvit at gmail.com>
 >>>>>> on Mon, 24 Jun 2013 03:25:47 +0200 writes:

 >> Thanks for reporting this. 

 >> I guess the only reliable solution is to not delete temp files at
 >> all. Or at least do the cleaning only on the process termination. 

 >> Vitalie

 > We definitely should keep a clean up procedure.
 > "on process termination" would be nice, but could that really
 > happen reliably?

We can use kill-buffer-hook for that. But that is somewhat unreliable.

 > A well working alternative might be to clean up files which must be
 > named in our "file pattern" if they are older than one week or
 > so. {may harm people who run an ESS for longer than one week, but
 > should they really be doing that ??}

Indeed, this looks like a pretty reliable option, I hope it is also
fast. 

Another option is to make R to delete the file after sourcing it. I know
how to implement this reliably in R but not in other ESS dialects. So
emacs side solution is desirable anyways.

    Vitalie

 >>>> Peter Meilstrup <peter.meilstrup at gmail.com>
 >>>> on Sun, 23 Jun 2013 14:41:20 -0700 wrote:

 >>> Here's a problem with how tracebug evaluates code chunks.
 >>> (1) set ess-inject-source to t

 >>> (2) Create an .R file with some code chunks that take an appreciable time
 >>> to evaluate. Then send a series of chunks using C-c -C-c (or faster: C-c
 >>> C-c, C-x C-z, z, z, z, z, z). The point is that ESS is sending chunks
 >>> faster than the R process runs them.

 >>> This results in ESS deleting temporary files before R can see them,
 >>> resulting in errors like:

 >>>> Error in file(filename, "r", encoding = encoding) :
 >>> cannot open the connection
 >>> In addition: Warning message:
 >>> In file(filename, "r", encoding = encoding) :
 >>> cannot open file
 >>> '/var/folders/Zz/ZzJ1nC8pHNGtZb-btS+lGU+++Tc/-Tmp-/ESS-region/bdd.R at 241':
 >>> No such file or directory

 >>> [[alternative HTML version deleted]]

 >>> ______________________________________________
 >>> ESS-help at r-project.org mailing list
 >>> https://stat.ethz.ch/mailman/listinfo/ess-help

 >> ______________________________________________
 >> ESS-help at r-project.org mailing list
 >> https://stat.ethz.ch/mailman/listinfo/ess-help



More information about the ESS-help mailing list