Arve Knudsen wrote:
> Hi Craig > > On 21 Okt, 22:07, Craig Barkhouse <crai...@microsoft.com> wrote: > > > -----Original Message----- > > > From: vim_dev@googlegroups.com [mailto:vim_...@googlegroups.com] On > > > Behalf Of Arve Knudsen > > > Sent: Wednesday, October 21, 2009 9:21 AM > > > To: vim_dev > > > Subject: Re: Vim creates files named "4913", why? > > > > > On 21 Okt, 17:13, James Vega <james...@jamessan.com> wrote: > > > > On Wed, Oct 21, 2009 at 10:52 AM, Arve Knudsen > > > <arve.knud...@gmail.com> wrote: > > > > > > > On 21 Okt, 13:58, James Vega <james...@jamessan.com> wrote: > > > > >> On Wed, Oct 21, 2009 at 02:33:46AM -0700, Arve Knudsen wrote: > > > > >> > I have a very annoying problem with the x64 build of Vim 7.2 on > > > > >> > Windows 7, for some reason it creates files named "4913" during > > > > >> > editing. Is this a bug, or maybe triggered by a problem with my > > > > >> > system? > > > > > > >> As a quick Google would tell you, Vim creates this file in an > > > attempt to > > > > >> verify it can create a file in the directory in which you see the > > > file > > > > >> and set the uid/gid. It's just a temporary file used during the > > > process > > > > >> of creating a backup file. > > > > > > > I did Google it, and found that it could be a problem on network- > > > > > filesystems? The problem is that it *isn't* temporary, it persists. > > > > > > Here's the code: > > > > > > 3486 for (i = 4913; ; i += 123) > > > > 3487 { > > > > 3488 sprintf((char *)gettail(IObuff), "%d", i); > > > > 3489 if (mch_lstat((char *)IObuff, &st) < 0) > > > > 3490 break; > > > > 3491 } > > > > 3492 fd = mch_open((char *)IObuff, > > > > 3493 > > > > O_CREAT|O_WRONLY|O_EXCL|O_NOFOLLOW, perm); > > > > 3494 if (fd < 0) /* can't write in directory */ > > > > 3495 backup_copy = TRUE; > > > > 3496 else > > > > 3497 { > > > > 3498 # ifdef UNIX > > > > 3499 # ifdef HAVE_FCHOWN > > > > 3500 ignored = fchown(fd, st_old.st_uid, > > > st_old.st_gid); > > > > 3501 # endif > > > > 3502 if (mch_stat((char *)IObuff, &st) < 0 > > > > 3503 || st.st_uid != st_old.st_uid > > > > 3504 || st.st_gid != st_old.st_gid > > > > 3505 || (long)st.st_mode != perm) > > > > 3506 backup_copy = TRUE; > > > > 3507 # endif > > > > 3508 /* Close the file before removing it, on MS- > > > Windows we > > > > 3509 * can't delete an open file. */ > > > > 3510 close(fd); > > > > 3511 mch_remove(IObuff); > > > > 3512 } > > > > > > If mch_open (line 3492) returns a file descriptor, then we get into > > > > the following else which always calls mch_remove on the file (line > > > > 3511). So, Vim is removing the file but your filesystem isn't > > > > properly handling that. > > > > > Thanks for the explanation. It's just plain old NTFS, so I guess > > > there's something wrong in my system. > > > > > Arve > > > > Arve: > > To confirm, are you seeing this on a local filesystem (you say "plain old > > NTFS"), or is there a remote filesystem involved? Do you only see this > > with the 64-bit build of Vim, or 32-bit as well? Can you provide the > > simplest possible .vimrc and steps to repro the problem? I'm interested in > > investigating this. We can take this to private e-mail if that would be > > better, to not flood the mailing list. > > > > This is indeed a local filesystem (my C: drive). So far I've only seen > this with an x64 build, but I have installed this package before > without any such problems. As to reproducing it, I just edit a file > for a while, and then "4913" appears (after a minute perhaps). Funny > though, when I try to reproduce it right now, nothing happens. I was > able to make it happen earlier with a _vimrc only containing "set > nocompatible". Isn't it a caching problem? I can imagine that when you look at the file system at the right moment the file is there. If this view isn't updated for a little while you see the file, even though Vim has already deleted it. It's hard to imagine the file is properly deleted one moment and hangs around another time. Either something essential changed or it's flaky. -- "It's so simple to be wise. Just think of something stupid to say and then don't say it." -- Sam Levenson /// Bram Moolenaar -- b...@moolenaar.net -- http://www.Moolenaar.net \\\ /// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ \\\ download, build and distribute -- http://www.A-A-P.org /// \\\ help me help AIDS victims -- http://ICCF-Holland.org /// --~--~---------~--~----~------------~-------~--~----~ You received this message from the "vim_dev" maillist. For more information, visit http://www.vim.org/maillist.php -~----------~----~----~----~------~----~------~--~---