[R] Rgui maintains open file handles after Sweave error

Alexander Shenkin ashenkin at ufl.edu
Wed Apr 4 21:52:59 CEST 2012


Thanks for the reply, Henrik.  Process Explorer still shows the file
handle as being open, but R only shows the following:

> showConnections(all=TRUE)
  description class      mode text   isopen   can read can write
0 "stdin"     "terminal" "r"  "text" "opened" "yes"    "no"
1 "stdout"    "terminal" "w"  "text" "opened" "no"     "yes"
2 "stderr"    "terminal" "w"  "text" "opened" "no"     "yes"
>

On 4/4/2012 2:45 PM, Henrik Bengtsson wrote:
> See ?closeAllConnections
> 
> Suggestion to the maintainer of Sweave: "atomify" the figure
> generation, e.g. use { pdf(); on.exit(dev.off()); {...}; } or similar,
> instead of { pdf(); {...}; dev.off(); } possibly by leaving a copy of
> the fault figure file for troubleshooting.
> 
> /Henrik
> 
> On Wed, Apr 4, 2012 at 12:25 PM, Alexander Shenkin <ashenkin at ufl.edu> wrote:
>> Hello Folks,
>>
>> When I run the document below through sweave, rgui.exe/rsession.exe
>> leaves a file handle open to the sweave-001.pdf graphic (as verified by
>> process explorer).  Pdflatex.exe then crashes (with a Permission Denied
>> error) because the graphic file is locked.
>>
>> This only seems to happen when there is an error in the sweave document.
>>  When there are no errors, no file handles are left open.  However, once
>> a file handle is stuck open, I can find no other way of closing it save
>> for quitting out of R.
>>
>> Any help would be greatly appreciated!  It would be nice to be able to
>> write flawless sweave every time, but flawed as I am, I am having to
>> restart R continuously.
>>
>> Thanks,
>> Allie
>>
>>
>> OS: Windows 7 Pro x64 SP1
>>
>>
>>> sessionInfo()
>> R version 2.14.2 (2012-02-29)
>> Platform: i386-pc-mingw32/i386 (32-bit)
>>
>>
>> test.Rnw:
>>
>>    \documentclass{article}
>>    \title {file handle test}
>>    \author{test author}
>>    \usepackage{Sweave}
>>    \begin {document}
>>    \maketitle
>>
>>    \SweaveOpts{prefix.string=sweave}
>>
>>    \begin{figure}
>>    \begin{center}
>>
>>    <<fig=TRUE, echo=FALSE>>=
>>        df = data.frame(a=rnorm(100), b=rnorm(100), group = c("g1",
>> "g2", "g3", "g4"))
>>        plot(df$a, df$y, foo)
>>    @
>>
>>    \caption{test figure one}
>>    \label{fig:one}
>>    \end{center}
>>    \end{figure}
>>    \end{document}
>>
>>
>>
>> Sweave command run:
>>
>>    Sweave("test.Rnw", syntax="SweaveSyntaxNoweb")
>>
>>
>>
>> Sweave.sty:
>>
>>    \NeedsTeXFormat{LaTeX2e}
>>    \ProvidesPackage{Sweave}{}
>>
>>    \RequirePackage{ifthen}
>>    \newboolean{Sweave at gin}
>>    \setboolean{Sweave at gin}{true}
>>    \newboolean{Sweave at ae}
>>    \setboolean{Sweave at ae}{true}
>>
>>    \DeclareOption{nogin}{\setboolean{Sweave at gin}{false}}
>>    \DeclareOption{noae}{\setboolean{Sweave at ae}{false}}
>>    \ProcessOptions
>>
>>    \RequirePackage{graphicx,fancyvrb}
>>    \IfFileExists{upquote.sty}{\RequirePackage{upquote}}{}
>>
>>    \ifthenelse{\boolean{Sweave at gin}}{\setkeys{Gin}{width=0.8\textwidth}}{}%
>>    \ifthenelse{\boolean{Sweave at ae}}{%
>>      \RequirePackage[T1]{fontenc}
>>      \RequirePackage{ae}
>>    }{}%
>>
>>    \DefineVerbatimEnvironment{Sinput}{Verbatim}{fontshape=sl}
>>    \DefineVerbatimEnvironment{Soutput}{Verbatim}{}
>>    \DefineVerbatimEnvironment{Scode}{Verbatim}{fontshape=sl}
>>
>>    \newenvironment{Schunk}{}{}
>>
>>    \newcommand{\Sconcordance}[1]{%
>>      \ifx\pdfoutput\undefined%
>>      \csname newcount\endcsname\pdfoutput\fi%
>>      \ifcase\pdfoutput\special{#1}%
>>      \else\immediate\pdfobj{#1}\fi}
>>
>> ______________________________________________
>> R-help at r-project.org mailing list
>> https://stat.ethz.ch/mailman/listinfo/r-help
>> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
>> and provide commented, minimal, self-contained, reproducible code.



More information about the R-help mailing list