在 2018年4月6日星期五 UTC+8下午10:38:03,Christian Brabandt写道: > On Do, 05 Apr 2018, [email protected] wrote: > > > 在 2018年4月3日星期二 UTC+8下午6:35:57,Christian Brabandt写道: > > > On Di, 03 Apr 2018, [email protected] wrote: > > > > > > > I'm using VIM 8.0 and set the option: "set > > > > cscopequickfix=s-,c-,d-,i-,t-,e-" > > > > vim will prompt "E484: Can't open file /tmp/vxxxxx/n" occasionally if > > > > I'm not root user. > > > > > > > > when set above option, vim will generate a temp directory under /tmp, I > > > > found the temp direcoty was deleted every time when the fault was > > > > occurred. > > > > > > > > after checking source code, the suspecious place is in function: > > > > vim_tempname > > > > > > > > if (vim_tempdir != NULL) > > > > { > > > > /* There is no need to check if the file exists, because we own the > > > > * directory and nobody else creates a file in it. */ > > > > sprintf((char *)itmp, "%s%ld", vim_tempdir, temp_count++); > > > > return vim_strsave(itmp); > > > > } > > > > > > > > if the vim_tempdir is deleted by unknown operation/process, then vim > > > > will fault due to it not checking this temp directory before writing > > > > it, maybe we need to check vim_tempdir here, if it's not accessable, we > > > > build another temp directory. > > > > > > Do you have any tmp cleanup packages installed that may remove such > > > things? Try to disable it. > > > > > > I have proposed a similar patch several years ago, but it was found to > > > work around the real problem that /tmp should not be cleaned randomly, > > > so it wasn't included. > > > > > > > > > Best, > > > Christian > > > -- > > > Wußten Sie schon... > > > ... daß der Walfisch, das größte lebende Säugetier, alle anderen > > > Säugetiere an Größe übertrifft? > > > > Hi Christian, > > Thanks for you response, I haven't deep investigated which > > process/operation delete that temp directory(this fault only appear when I > > am a normal user, when I am root, everything is ok), there is another > > scenario: vim user may use vim on a shared server, they can't disable > > cleanup process run in background or prevent other user delete that temp > > diretory, so they can't guarantee that temp direcoty is always there, my > > opinion is vim should not depend it's stability on external environment > > especially public directory, there may happen something out of vim user's > > control. > > True, but some people believe that the system is broken, if it silently > deletes directories below /tmp. After all, that's what /tmp is for. It > may only be deleted on reboot. > > Best, > Christian > > -- > Was wir der Natur antun, tun wir uns selbst an. > -- Sprichwort der Mapuche-Indianer (Chile)
Hi Christian, I traced the temp directory by "auditd", I found it's deleted by "gnome-settings-daemon" due to I have set cleanup temp files automatically for protect privacy in gnome-shell. now it's clear, gnome-shell cleanup the temp directory for protect privacy, the temp directory lost cause vim fault, it also can explain why everything is ok when I'm root in terminal(gnome-shell belong to normal user can't delete the temp directory which belong to root) from technology perspective, it's no problem, /tmp is for temp files from product or high level perspective: I'm a linux user, I use vim, and I also need my system protect my privacy, after all, I use other applications too, for current solution, I have to disable cleanup program which protect my privacy if I want vim run well. so, should vim improve itself ? Thank you. BR, Bruce. -- -- You received this message from the "vim_dev" maillist. Do not top-post! Type your reply below the text you are replying to. For more information, visit http://www.vim.org/maillist.php --- You received this message because you are subscribed to the Google Groups "vim_dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
