[R] Antwort: Re: Antwort: Re: Antwort: Re: Re: sink(): Cannot open file (SOLVED)

G.Maubach at weinwolf.de G.Maubach at weinwolf.de
Thu May 12 10:13:59 CEST 2016


Hi Henrik, Jim, Sarah, Duncan,
Hi All,

I have tried the built-in solution using PowerShell:

$lockedFile="C:\Windows\System32\wshtcpip.dll" 
Get-Process | foreach{$processVar = $_;$_.Modules | foreach{if($_.FileName 
-eq $lockedFile){$processVar.Name + " PID:" + $processVar.id}}}

It did not show any processes.

Then I tried the solution using "RessourceMonitor". There I found two 
processes:

rstudio.exe
rsession.exe

Right-clicking on rstudio.exe and selecting "Warteschlange analysieren" (= 
analyse queue?) showed nothing. Right-clicking on rsession.exe and 
selecting "Warteschlage" said:

"Mindestens ein Thread von rsession.exe wartet auf die Fertigstellung von 
Netzwerk E/A". (= "At least one thread of "rsession.exe" is waiting for 
finishing a network i/o operation").

Putting rsession.exe into the search field of the handles tap of 
RessourceMonitor gave no results. No handles were identified.

I can not follow the suggestions where installation of software is 
required due to security rules of the company I work for.

I had a look at different R versions on my machine:

1) R i386 3.2.2
2) R i386 3.2.4 (revised)
3) R i386 3.2.5
4) R x54 3.2.2
5) R x64 3.2.4 (revised)
6) R x64 3.2.5

I did 

## capture all the output to a file.
zz <- file("C:/Temp/all.Rout", open = "wt")
sink(zz)
sink(zz, type = "message")
try(log("a"))
## back to the console
sink(type = "message")
sink()
unlink("C:/Temp/all.Rout")

on R i386 3.2.2 and R x64 3.2.2 directly without RStudio. In both cases 
the file was locked.

Adding

close(zz)

solved the problem in both versions.

Encouraged by this I tired (successivly refered to as "complete code")

## capture all the output to a file.
zz <- file("C:/Temp/all.Rout", open = "wt")
sink(zz)
sink(zz, type = "message")
try(log("a"))
## back to the console
sink(type = "message")
sink()
unlink("C:/Temp/all.Rout")
close(zz)

on R i386 3.2.4 (revised) and R x64 3.2.4 (revised) without RStudio. Works 
in both cases. The same with R i386 3.2.5 and R x64 3.2.5 each without 
RStudio.

It did the same with RStudio altering the R version in the RStudio session 
using "complete code". The results are:

R i386 3.2.2: OK
R. x64 3.2.2: OK
R i386 3.2.4 (revised): OK
R x64 3.2.4 (revised): OK
R i386 3.2.5: OK
R x64 3.2.5: OK

This got me lost. I had tried the complete code the last days a hundred 
times. It never worked.

Then I restarted my machine powering up RStudio x64 3.2.5 using the 
"complete code" and ... it worked.

I have no idea what was wrong the last days.

As far as I can say today the documentation of ?sink in R is currently

## capture all the output to a file.
zz <- file("all.Rout", open = "wt")
sink(zz)
sink(zz, type = "message")
try(log("a"))
## back to the console
sink(type = "message")
sink()
file.show("all.Rout")

and should be - in my opinion  - supplemented with

close(zz).

Any thoughts?

Kind regards

Georg




Von:    Henrik Bengtsson <henrik.bengtsson at gmail.com>
An:     G.Maubach at weinwolf.de, 
Kopie:  Duncan Murdoch <murdoch.duncan at gmail.com>, "r-help at r-project.org" 
<r-help at r-project.org>
Datum:  11.05.2016 21:48
Betreff:        Re: [R] Antwort: Re: Antwort: Re: Re: sink(): Cannot open 
file



Sounds like it would be helpful to find out exactly which process is
holding on to the file in order to figure out what's going on. From a
quick look, it seems that

  
http://superuser.com/questions/117902/find-out-which-process-is-locking-a-file-or-folder-in-windows


gives some useful info on how to track down the process that looks the 
file.

/Henrik

On Wed, May 11, 2016 at 9:47 AM,  <G.Maubach at weinwolf.de> wrote:
> Duncan,
>
> thanks for the hint.
>
> I have done it correctly in R fashion
>
> ## capture all the output to a file.
> zz <- file("C:/Temp/all.Rout", open = "wt")
> sink(zz)
> sink(zz, type = "message")
> try(log("a"))
> ## back to the console
> sink(type = "message")
> sink()
> unlink("C:/Temp/all.Rout")
>
> But the error persits.
>
> Kind regards
>
> Georg
>
>
>
>
> Von:    Duncan Murdoch <murdoch.duncan at gmail.com>
> An:     John Sorkin <jsorkin at grecc.umaryland.edu>, drjimlemon at gmail.com,
> G.Maubach at weinwolf.de,
> Kopie:  r-help at r-project.org
> Datum:  10.05.2016 19:03
> Betreff:        Re: [R] Antwort: Re: Re: sink(): Cannot open file
>
>
>
> On 10/05/2016 11:15 AM, John Sorkin wrote:
>> George,
>> I do not know what operating system you are working with, but when I 
use
> sink() under windows, I need to specify a valid path which I don't see 
in
> your code. I might, for example specify:
>>
>> sink("c:\myfile.txt")
>
> Note that the backslash should be doubled (so it isn't interpreted as an
> escape for the "m" that follows it), or replaced with a forward slash.
>
> Duncan Murdoch
>
>>   R code goes here
>> sink()
>>
>> with the expectation that I would create a file myfile.txt that would
> contain the output of my R program.
>>
>> John
>>
>>
>> John David Sorkin M.D., Ph.D.
>> Professor of Medicine
>> Chief, Biostatistics and Informatics
>> University of Maryland School of Medicine Division of Gerontology and
> Geriatric Medicine
>> Baltimore VA Medical Center
>> 10 North Greene Street
>> GRECC (BT/18/GR)
>> Baltimore, MD 21201-1524
>> (Phone) 410-605-7119
>> (Fax) 410-605-7913 (Please call phone number above prior to faxing)
>> >>> <G.Maubach at weinwolf.de> 05/10/16 11:10 AM >>>
>> Hi Jim,
>>
>> I tried:
>>
>> sink("all.Rout")
>> try(log("a"))
>> sink()
>>
>> The program executes without warning or error. The file "all.Rout" is
>> begin created. Nothing will be written to it. The file is accessable
>> rights after the execution of the program by notepad.exe.
>>
>> The program
>>
>> zz <- file("all.Rout", open = "wt")
>> sink(zz, type = "message")
>> try(log("a"))
>> sink()
>> close(zz)
>> unlink(zz)
>>
>> creates the file, does not write anything to it and is not accessable
>> after program execution in R with notepad.exe.
>>
>> Any ideas what happens behind the szenes?
>>
>> Kind regards
>>
>> Georg
>>
>>
>>
>>
>> Von: Jim Lemon <drjimlemon at gmail.com>
>> An: G.Maubach at weinwolf.de,
>> Kopie: r-help mailing list <r-help at r-project.org>
>> Datum: 10.05.2016 13:16
>> Betreff: Re: Re: [R] sink(): Cannot open file
>>
>>
>>
>> Have you tried:
>>
>> sink("all.Rout")
>> try(log("a"))
>> sink()
>>
>> Jim
>>
>> On Tue, May 10, 2016 at 9:05 PM, <G.Maubach at weinwolf.de> wrote:
>> > Hi Jim,
>> >
>> > thanks for your reply.
>> >
>> > ad 1)
>> > "all.Rout" was created in the correct directory. It exists properly
> with
>> > correct file properties on Windows, e.g. creation date and time and
> file
>> > size information.
>> >
>> > ad 2)
>> > I can not access the file with Notepad.exe directly after it was
> created
>> > by R. The error message is (translated):
>> >
>> > "Cannot access file "all.Rout". The file is opened by another
> process."
>> >
>> > ad 3)
>> > If I close R completely the file access is released. Then I can read
> the
>> > file using Notepad.exe. The contents is:
>> >
>> > Error in log("a") : non-numeric argument to mathematical function
>> >
>> > I tried
>> >
>> > close(zz)
>> >
>> > but the error persists.
>> >
>> > To me it looks like R is still accessing the file and not releasing
> the
>> > connection for other programs. close(zz) should have solved the
> problem
>> > but unfortantely it doesn't.
>> >
>> > What else could I try?
>> >
>> > Kind regards
>> >
>> > Georg
>> >
>> >
>> >
>> >
>> > Von: Jim Lemon <drjimlemon at gmail.com>
>> > An: G.Maubach at weinwolf.de,
>> > Kopie: r-help mailing list <r-help at r-project.org>
>> > Datum: 10.05.2016 12:50
>> > Betreff: Re: [R] sink(): Cannot open file
>> >
>> >
>> >
>> > Hi Georg,
>> > I don't suppose that you have:
>> >
>> > 1) checked that the file "all.Rout" exists somewhere?
>> >
>> > 2) if so, looked at the file with Notepad, perhaps?
>> >
>> > 3) let us in on the secret by pasting the contents of "all.Rout" into
>> > your message if it is not too big?
>> >
>> > At a guess, trying:
>> >
>> > close(zz)
>> >
>> > might get you there.
>> >
>> > Jim
>> >
>> > On Tue, May 10, 2016 at 5:25 PM, <G.Maubach at weinwolf.de> wrote:
>> >> Hi All,
>> >>
>> >> I would like to route the output to a file using sink(). When using
> the
>> >> example from the ?sink documentation:
>> >>
>> >> sink("sink-examp.txt")
>> >> i <- 1:10
>> >> outer(i, i, "*")
>> >> sink()
>> >> unlink("sink-examp.txt")
>> >>
>> >> ## capture all the output to a file.
>> >> zz <- file("all.Rout", open = "wt")
>> >> sink(zz)
>> >> sink(zz, type = "message")
>> >> try(log("a"))
>> >> ## back to the console
>> >> sink(type = "message")
>> >> sink()
>> >> file.show("all.Rout")
>> >>
>> >> I can not open the file in Windows Explorer. The error message is:
>> >>
>> >> "Cannot open file. File is in use be another proces."
>> >>
>> >> How can I close the file in a manner that I can open it right after
> it
>> > was
>> >> created?
>> >>
>> >> Kind regards
>> >>
>> >> Georg
>> >>
>> >> ______________________________________________
>> >> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
>> >> 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.
>> >
>> >
>>
>> ______________________________________________
>> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
>> 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.
>> Confidentiality Statement:
>> This email message, including any attachments, is for ...{{dropped:14}}
>
> ______________________________________________
> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
> 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