IDEA 12 CE: "File Cache Conflict" on workspace.xml

Hello,

I am running IntelliJ IDEA 12 CE (12.1.4) on Mac OS X 10.8.4. Whenever I run IDEA, I start to get a dialog showing a File Cache Conflict on the project's workspace.xml file whenever I switch away from IDEA to another application. This is very annoying. Sometimes it occurs too on saving a file. My IDEA 12 CE log file is filled with entries like this:

2013-09-05 11:57:32,974 [ 122241]   INFO - r.impl.FileDocumentManagerImpl - reload from disk? 2013-09-05 11:57:32,974 [ 122241]   INFO - r.impl.FileDocumentManagerImpl -   documentStamp:5482 2013-09-05 11:57:32,974 [ 122241]   INFO - r.impl.FileDocumentManagerImpl -   oldFileStamp:5473


Any way around this?

Ringo



Attachment(s):
FileCacheConflict.png
11 comments

Hello Ringo,

Is the file located on a local or mounted disk? Are there any symlinks in the path? Do you have "Settings | General | Synchronize files ..." option enabled?

0

Roman,

Last time, I got rid of the issue by resetting my complete IntelliJ settings folder. But I now get this on a new Windows developer workstation. It is not consistent but pops up once in a while. When it does, it pops up after every application focus change (Alt-Tab). I have to restart IntelliJ to get rid of it.

When I compare the memory and the ondisk version, I see that both versions only differ in line-endings. One mentions LF while the other reports CRLF. I do not put my project files under source control, so Git line feed conversion is not the culprit here. The project files have been created on Windows and are only updated by the same machine.

Ringo

0

Which version has which line separator?

0

Roman,

It took me a while to get the problem reproduced, but eventually I got it again. Here is a screenshot:

FileCacheConflict-Workspace_xml.png

As you can see, I also have the problem on a Windows computer. Hope this helps to get it fixed.

Ringo

Mentioned that the problem also exist on Windows, where the initial bug report states Mac OS X.

0

Actually workspace file on Windows isn't supposed to have Unix line separators (that's why it is excluded from VCSs by defaut). Have you put it under a VCS?

0

As mentioned in my post from Oct 16, 2013: "I do not put my project files under source control, so Git line feed conversion is not the culprit here."

0

OK, I missed that. Anyway, there should be some explanation why the file has Unix line separators.

If you invoke File | Save All, then switch to some external editor/viewer and open the file, which separators does it have?

0

CRLF it is. Anyway, I can't start IDEA anymore. I switched to an evaluation license of the Ultimate edition but this license expired a few days ago. Haven't taken action since then.

0

As expected. So, right now I don't see IDEA's problem here - the file seem to be changed externally, and IDEA detected that.

You may try EAP builds of IDEA 13 - they do not require separate evalution license.

0

Roman, back to you. I can easily reproduce this with EAP 13, with Ruby, Python and EditorConfig plugins installed. I installed the SysInternals tool suite which contains Process Monitor (ProcMon). Using this tool, I filtered out all access to the workspace.xml file and save it in a log file. This log is attached.

A bit of info:

  • I stopped all background processes on my Windows machine like iTunesHelper, the Dropbox sync helper, etc.

Then some sections in the log output file:
  • all entries with time "16:27:22" is during IntelliJ launch.
  • all entries with time "16:27:30" are generated after I use Alt-Tab to switch to another application.
  • all entries with time "16:28:07" are when exiting IntelliJ.


As you can see, the only process asking WRITE access is svchost (PID: 540). Looking in the process tree for this process,svchost.exe is the parent process for WUDFHost.exe, the User-mode Driver Framework Host Process.

While I do agree that technically it is not IntelliJ doing this, it is a standard Windows process that intervenes. So can the JetBrains dev team help out to investigate this?

Ringo



Attachment(s):
Logfile-WorkspaceXML.CSV.zip
0

There is an option (Settings | General | Use "safe write", enabled by defaut) which complicates the file save process: IDEA creates a temp file first, writes a new content to it, then replaces existing file (note line 29 in your log). On the other hand, the process 540 asked for "Write Attributes" access (not Write) - which seems perfectly legitimate.

So, you may disable the option and repeat the expriment.

0

Please sign in to leave a comment.