Issue 1862: Error on "Save As" in IDLE (Vista 32-bit)

Issue1862

Created on 2008-01-17 16:56 by richjtd, last changed 2022-04-11 14:56 by admin. This issue is now closed.

Messages (5)
msg60034 - (view) Author: Rich (richjtd) Date: 2008-01-17 16:56
Issue 1743 might be related to this.

Using "Save As..." in IDLE does work, but if breakpoints.lst is hidden 
(which it is when Python generates it) it also generates this error in 
the Shell:

Exception in Tkinter callback
Traceback (most recent call last):
  File "C:\Program Files\Python25\lib\lib-tk\Tkinter.py", line 1403, in 
__call__
    return self.func(*args)
  File "C:\Program Files\Python25\lib\idlelib\IOBinding.py", line 357, 
in save_as
    self.editwin.store_file_breaks()
  File "C:\Program Files\Python25\lib\idlelib\PyShell.py", line 209, in 
store_file_breaks
    new_file = open(self.breakpointPath,"w")
IOError: [Errno 13] Permission 
denied: 'C:\\Users\\Rich\\.idlerc\\breakpoints.lst'

The error is not generated if I manually unhide the breakpoints file.
The issue is unaffected by the hidden (or not) status of the .idlerc 
folder.
msg60057 - (view) Author: Christian Heimes (christian.heimes) * (Python committer) Date: 2008-01-17 20:47
It's a duplicate of an already known problem. It seems that files on
Vista inherit the flags of their parent folder. Can you test it on your
box and see under which circumstances a file has the hidden flag set and
how it affects read and write attempts on Vista?
msg60214 - (view) Author: Kurt B. Kaiser (kbk) * (Python committer) Date: 2008-01-19 19:00
IDLE creates the .idlerc folder if needed.  It seems it should
be marked as not hidden.  Does anyone know how to do that?
msg61522 - (view) Author: Martin v. Löwis (loewis) * (Python committer) Date: 2008-01-22 19:05
I've studied the problem with Process Monitor. If a file is hidden,
open(f, "w") fails, whereas os.open(f, os.W_OK|os.O_CREAT) succeeds.

In the succeeding call, process monitor reports

Desired Access:	Generic Read/Write
Disposition:	OpenIf
Options:	Synchronous IO Non-Alert, Non-Directory File
Attributes:	N
ShareMode:	Read, Write
AllocationSize:	0
OpenResult:	Opened

In the failing call, it reports

Desired Access:	Generic Write, Read Attributes
Disposition:	OverwriteIf
Options:	Synchronous IO Non-Alert, Non-Directory File
Attributes:	N
ShareMode:	Read, Write
AllocationSize:	0

I then tried os.open(f, os.W_OK|os.CREAT|os.O_TRUNC) which also fails,
giving

Desired Access:	Generic Read/Write
Disposition:	OverwriteIf
Options:	Synchronous IO Non-Alert, Non-Directory File
Attributes:	N
ShareMode:	Read, Write
AllocationSize:	0

So it fails for FILE_OVERWRITE_IF, but succeeds for FILE_OPEN_IF. These 
map back to CREATE_ALWAYS and OPEN_ALWAYS - apparently, you can't 
truncate a hidden file on Vista.
msg61613 - (view) Author: Kurt B. Kaiser (kbk) * (Python committer) Date: 2008-01-23 22:21
r60225.  Dup of Issue 1743.
History
Date User Action Args
2022-04-11 14:56:29adminsetgithub: 46170
2008-01-23 22:21:55kbksetstatus: open -> closed
resolution: fixed
messages: + msg61613
2008-01-22 19:05:15loewissetmessages: + msg61522
2008-01-19 19:00:04kbksetmessages: + msg60214
2008-01-17 20:47:06christian.heimessetpriority: normal
assignee: kbk
messages: + msg60057
2008-01-17 16:56:05richjtdcreate