IDEA locking up for tens of seconds writing to disk

I'm finding quite frequently IDEA is locking up for tens of seconds at a
time, especially when I change tabs or activate/deactivate the IDEA
window. At first I thought it was GC'ing - the symptoms are very
similar to a GC - but then I realise my HDD was being thrashed and I
took a thread dump. The AWT thread was busy as shown below, not
surprisingly writing to the file system.

I have all my dev environment and idea bin/config dirs excluded from my
virus scanner. Is there anything else it could be, before I log this as
a bug? It's quite disruptive to workflow to sit there waiting for IDEA
to come alive so much.

Cheers,
N.

"AWT-EventQueue-1" prio=6 tid=0x4a569000 nid=0x1fb4 runnable
[0x4dfee000..0x4dfe
fa94]
java.lang.Thread.State: RUNNABLE
at java.io.RandomAccessFile.writeBytes(Native Method)
at java.io.RandomAccessFile.write(RandomAccessFile.java:466)
at
com.intellij.util.io.RandomAccessDataFile.put(RandomAccessDataFile.ja
va:60)
- locked (a java.io.RandomAccessFile) at com.intellij.util.io.storage.DataTable.writeBytes(DataTable.java:77) at com.intellij.util.io.storage.Storage.writeBytes(Storage.java:198) - locked <0x04e82178> (a java.lang.Object) at com.intellij.util.io.storage.Storage$StorageDataOutput.close(Storage. java:255) at com.intellij.openapi.vfs.newvfs.persistent.FSRecords$AttributeOutputS tream.close(FSRecords.java:9) - locked <0x04e821e8> (a java.lang.Object) at java.io.FilterOutputStream.close(FilterOutputStream.java:143) at com.intellij.util.io.DupOutputStream.close(DupOutputStream.java:40) at com.intellij.openapi.vfs.newvfs.persistent.PersistentFS$2$1.close(Per sistentFS.java:4) at com.intellij.openapi.vfs.newvfs.persistent.PersistentFS$2.close(Persi stentFS.java:4) at com.intellij.openapi.vfs.VirtualFile.setBinaryContent(VirtualFile.jav a:427) at com.intellij.openapi.vfs.VirtualFile.setBinaryContent(VirtualFile.jav a:396) at com.intellij.openapi.components.impl.stores.StorageUtil$1.run(Storage Util.java:3) at com.intellij.openapi.application.impl.ApplicationImpl.runWriteAction( ApplicationImpl.java:262) at com.intellij.openapi.components.impl.stores.StorageUtil.save(StorageU til.java:28) at com.intellij.openapi.components.impl.stores.FileBasedStorage$FileSave Session.doSave(FileBasedStorage.java:27) at com.intellij.openapi.components.impl.stores.XmlElementStorage$MySaveS ession.save(XmlElementStorage.java:22) at com.intellij.openapi.components.impl.stores.CompoundSaveSession.save( CompoundSaveSession.java:17) at com.intellij.openapi.components.impl.stores.StateStorageManagerImpl$M ySaveSession.save(StateStorageManagerImpl.java:2) at com.intellij.openapi.components.impl.stores.ComponentStoreImpl$SaveSe ssionImpl.save(ComponentStoreImpl.java:12) at com.intellij.openapi.components.impl.stores.ProjectStoreImpl$ProjectS aveSession.save(ProjectStoreImpl.java:37) at com.intellij.openapi.components.impl.ComponentManagerImpl.doSave(Comp onentManagerImpl.java:101) at com.intellij.openapi.project.impl.ProjectImpl.save(ProjectImpl.java:3 9) at com.intellij.ide.SaveAndSyncHandler.b(SaveAndSyncHandler.java:50) at com.intellij.ide.SaveAndSyncHandler.access$200(SaveAndSyncHandler.jav a:14) at com.intellij.ide.SaveAndSyncHandler$3.onFrameDeactivated(SaveAndSyncH andler.java:6) at com.intellij.ide.FrameStateManagerImpl.a(FrameStateManagerImpl.java:1 9) at com.intellij.ide.FrameStateManagerImpl.access$100(FrameStateManagerIm pl.java:24) at com.intellij.ide.FrameStateManagerImpl$1.run(FrameStateManagerImpl.ja va:3) at com.intellij.openapi.application.impl.LaterInvocator$FlushQueue.run(L aterInvocator.java:9) - locked <0x0538e3e8>]]> (a java.lang.Object)
at
java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)
at com.intellij.ide.IdeEventQueue.c(IdeEventQueue.java:179)
at com.intellij.ide.IdeEventQueue.b(IdeEventQueue.java:37)
at
com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:119)
at
java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThre
ad.java:273)
at
java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.
java:183)
at
java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThre
ad.java:173)
at
java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)

at
java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)

at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)

5 comments
Comment actions Permalink

Hello Nathan,

Please ensure that Windows System Restore is turned off on your PC.

I'm finding quite frequently IDEA is locking up for tens of seconds at
a time, especially when I change tabs or activate/deactivate the IDEA
window. At first I thought it was GC'ing - the symptoms are very
similar to a GC - but then I realise my HDD was being thrashed and I
took a thread dump. The AWT thread was busy as shown below, not
surprisingly writing to the file system.

I have all my dev environment and idea bin/config dirs excluded from
my virus scanner. Is there anything else it could be, before I log
this as a bug? It's quite disruptive to workflow to sit there waiting
for IDEA to come alive so much.

Cheers,
N.
"AWT-EventQueue-1" prio=6 tid=0x4a569000 nid=0x1fb4 runnable
[0x4dfee000..0x4dfe
fa94]
java.lang.Thread.State: RUNNABLE
at java.io.RandomAccessFile.writeBytes(Native Method)
at java.io.RandomAccessFile.write(RandomAccessFile.java:466)
at
com.intellij.util.io.RandomAccessDataFile.put(RandomAccessDataFile.ja
va:60)
- locked <0x0c2547f8> (a java.io.RandomAccessFile)
at
com.intellij.util.io.storage.DataTable.writeBytes(DataTable.java:77)
at
com.intellij.util.io.storage.Storage.writeBytes(Storage.java:198)
- locked <0x04e82178> (a java.lang.Object)
at
com.intellij.util.io.storage.Storage$StorageDataOutput.close(Storage.
java:255)
at
com.intellij.openapi.vfs.newvfs.persistent.FSRecords$AttributeOutputS
tream.close(FSRecords.java:9)
- locked <0x04e821e8> (a java.lang.Object)
at
java.io.FilterOutputStream.close(FilterOutputStream.java:143)
at
com.intellij.util.io.DupOutputStream.close(DupOutputStream.java:40)
at
com.intellij.openapi.vfs.newvfs.persistent.PersistentFS$2$1.close(Per
sistentFS.java:4)
at
com.intellij.openapi.vfs.newvfs.persistent.PersistentFS$2.close(Persi
stentFS.java:4)
at
com.intellij.openapi.vfs.VirtualFile.setBinaryContent(VirtualFile.jav
a:427)
at
com.intellij.openapi.vfs.VirtualFile.setBinaryContent(VirtualFile.jav
a:396)
at
com.intellij.openapi.components.impl.stores.StorageUtil$1.run(Storage
Util.java:3)
at
com.intellij.openapi.application.impl.ApplicationImpl.runWriteAction(
ApplicationImpl.java:262)
at
com.intellij.openapi.components.impl.stores.StorageUtil.save(StorageU
til.java:28)
at
com.intellij.openapi.components.impl.stores.FileBasedStorage$FileSave
Session.doSave(FileBasedStorage.java:27)
at
com.intellij.openapi.components.impl.stores.XmlElementStorage$MySaveS
ession.save(XmlElementStorage.java:22)
at
com.intellij.openapi.components.impl.stores.CompoundSaveSession.save(
CompoundSaveSession.java:17)
at
com.intellij.openapi.components.impl.stores.StateStorageManagerImpl$M
ySaveSession.save(StateStorageManagerImpl.java:2)
at
com.intellij.openapi.components.impl.stores.ComponentStoreImpl$SaveSe
ssionImpl.save(ComponentStoreImpl.java:12)
at
com.intellij.openapi.components.impl.stores.ProjectStoreImpl$ProjectS
aveSession.save(ProjectStoreImpl.java:37)
at
com.intellij.openapi.components.impl.ComponentManagerImpl.doSave(Comp
onentManagerImpl.java:101)
at
com.intellij.openapi.project.impl.ProjectImpl.save(ProjectImpl.java:3
9)
at
com.intellij.ide.SaveAndSyncHandler.b(SaveAndSyncHandler.java:50)
at
com.intellij.ide.SaveAndSyncHandler.access$200(SaveAndSyncHandler.jav
a:14)
at
com.intellij.ide.SaveAndSyncHandler$3.onFrameDeactivated(SaveAndSyncH
andler.java:6)
at
com.intellij.ide.FrameStateManagerImpl.a(FrameStateManagerImpl.java:1
9)
at
com.intellij.ide.FrameStateManagerImpl.access$100(FrameStateManagerIm
pl.java:24)
at
com.intellij.ide.FrameStateManagerImpl$1.run(FrameStateManagerImpl.ja
va:3)
at
com.intellij.openapi.application.impl.LaterInvocator$FlushQueue.run(L
aterInvocator.java:9)
- locked <0x0538e3e8> (a java.lang.Object)
at
java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)
at com.intellij.ide.IdeEventQueue.c(IdeEventQueue.java:179)
at com.intellij.ide.IdeEventQueue.b(IdeEventQueue.java:37)
at
com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:119)
at
java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThre
ad.java:273)
at
java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.
java:183)
at
java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThre
ad.java:173)
at
java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
at
java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)

at
java.awt.EventDispatchThread.run(EventDispatchThread.java:121)

--
Dmitry Jemerov
Development Lead
JetBrains, Inc.
http://www.jetbrains.com/
"Develop with Pleasure!"


0
Comment actions Permalink

Dmitry Jemerov wrote:

Hello Nathan,

Please ensure that Windows System Restore is turned off on your PC.

Oof... is this just a test to see if it makes things better, or is this
a known issue and a requirement for all windows installations of IDEA?
It's not so great to have to turn such things off, and some of us might
even not be allowed to on company machines.

What exactly is the problem with System Restore... I thought it would
only be worried about Windows specific files, not arbitrary files in
some directory somewhere. Is it creating some sort of shadow backup or
something?

Thanks for the response tho!
N.

0
Comment actions Permalink

Hello Nathan,

>> Hello Nathan,
>>
>> Please ensure that Windows System Restore is turned off on your PC.
>>

Oof... is this just a test to see if it makes things better, or is
this a known issue and a requirement for all windows installations of
IDEA?


This is a known issue. We've seen System Restore cause such hangs.

What exactly is the problem with System Restore... I thought it would
only be worried about Windows specific files, not arbitrary files in
some directory somewhere. Is it creating some sort of shadow backup
or something?


Yes, essentially it decides for some reason to create a backup of the IDEA
VFS cache files (which contain all the content of your project). We do not
currently know how to control this behavior, short of turning off System
Restore altogether for the drive containing your system directory.

--
Dmitry Jemerov
Development Lead
JetBrains, Inc.
http://www.jetbrains.com/
"Develop with Pleasure!"


0
Comment actions Permalink

Dmitry Jemerov wrote:

Yes, essentially it decides for some reason to create a backup of the
IDEA VFS cache files (which contain all the content of your project). We
do not currently know how to control this behavior, short of turning off
System Restore altogether for the drive containing your system directory.


Aha, so a good reason for having your dev environment on a seperate
partition then. Thanks for the background, will give this a go and see
if it helps.

Cheers,
N.

0
Comment actions Permalink

Interesting... I've been experiencing this myself for a while. So the advice would be to move the IDEA system directories to another drive for which I can disable System Restore?

0

Please sign in to leave a comment.