[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[equinox-dev] performance problems with Eclipse startup due to long DirectoryWatcher.poll() (25 minutes!)

Hi
I have an Eclipse 3.4.1 install (of ~3000 plug-ins), that's starting for about 25minutes. Most of this time is spent in org.eclipse.equinox.internal.p2.reconciler.dropins.Activator.start() calling (indirectly) DirectoryWatcher.poll().


Looking at several coredumps collected during this startup time it seems that all threads wait() or sleep() and only "Start Level Event Dispatcher"
is working. All the time this thread is writing some XML. (See it's stacktrace below)


Is this expected behaviour? What XML is actually written?
I also notice that p2 directory has about 600mb.

I was looking for bugs with similar stack traces, but with no luck so far - should I open new?
thanks


Jacek


stacktrace:

3XMTHREADINFO "Start Level Event Dispatcher" TID:0x4274C100, j9thread_t:0x0001BA70, state:CW, prio=5
3XMTHREADINFO1 (native thread ID:0x890, native priority:0x5, native policy:UNKNOWN)
4XESTACKTRACE at java/io/OutputStreamWriter.write(Bytecode PC:71(Compiled Code))
4XESTACKTRACE at java/io/PrintWriter.write(Bytecode PC:71(Compiled Code))
4XESTACKTRACE at java/io/PrintWriter.write(Bytecode PC:71(Compiled Code))
4XESTACKTRACE at java/io/PrintWriter.print(Bytecode PC:71(Compiled Code))
4XESTACKTRACE at org/eclipse/equinox/internal/p2/persistence/XMLWriter.print(Bytecode PC:71(Compiled Code))
4XESTACKTRACE at org/eclipse/equinox/internal/p2/persistence/XMLWriter.start(Bytecode PC:71(Compiled Code))
4XESTACKTRACE at org/eclipse/equinox/internal/p2/persistence/XMLWriter.writeProperty(Bytecode PC:71(Compiled Code))
4XESTACKTRACE at org/eclipse/equinox/internal/p2/persistence/XMLWriter.writeProperties(Bytecode PC:70(Compiled Code))
4XESTACKTRACE at org/eclipse/equinox/internal/p2/persistence/XMLWriter.writeProperties(Bytecode PC:4(Compiled Code))
4XESTACKTRACE at org/eclipse/equinox/internal/p2/artifact/repository/simple/SimpleArtifactRepositoryIO$Writer.writeArtifacts(Bytecode PC:102(Compiled Code))
4XESTACKTRACE at org/eclipse/equinox/internal/p2/artifact/repository/simple/SimpleArtifactRepositoryIO$Writer.write(Bytecode PC:77(Compiled Code))
4XESTACKTRACE at org/eclipse/equinox/internal/p2/artifact/repository/simple/SimpleArtifactRepositoryIO.write(Bytecode PC:25)
4XESTACKTRACE at org/eclipse/equinox/internal/p2/artifact/repository/simple/SimpleArtifactRepository.save(Bytecode PC:214(Compiled Code))
4XESTACKTRACE at org/eclipse/equinox/internal/p2/artifact/repository/simple/SimpleArtifactRepository.save(Bytecode PC:24)
4XESTACKTRACE at org/eclipse/equinox/internal/p2/artifact/repository/simple/SimpleArtifactRepository.removeDescriptor(Bytecode PC:9)
4XESTACKTRACE at org/eclipse/equinox/internal/provisional/p2/directorywatcher/RepositoryListener.synchronizeArtifactRepository(Bytecode PC:105)
4XESTACKTRACE at org/eclipse/equinox/internal/provisional/p2/directorywatcher/RepositoryListener.stopPoll(Bytecode PC:92)
4XESTACKTRACE at org/eclipse/equinox/internal/provisional/p2/directorywatcher/DirectoryWatcher.stopPoll(Bytecode PC:34)
4XESTACKTRACE at org/eclipse/equinox/internal/provisional/p2/directorywatcher/DirectoryWatcher.poll(Bytecode PC:9)
4XESTACKTRACE at org/eclipse/equinox/internal/p2/extensionlocation/ExtensionLocationArtifactRepository.ensureInitialized(Bytecode PC:80)
4XESTACKTRACE at org/eclipse/equinox/internal/p2/extensionlocation/ExtensionLocationArtifactRepository.getProperties(Bytecode PC:1)
4XESTACKTRACE at org/eclipse/equinox/internal/p2/artifact/repository/ArtifactRepositoryManager.addRepository(Bytecode PC:108)
4XESTACKTRACE at org/eclipse/equinox/internal/p2/artifact/repository/ArtifactRepositoryManager.loadRepository(Bytecode PC:106)
4XESTACKTRACE at org/eclipse/equinox/internal/p2/artifact/repository/ArtifactRepositoryManager.loadRepository(Bytecode PC:5)
4XESTACKTRACE at org/eclipse/equinox/internal/p2/reconciler/dropins/Activator.loadArtifactRepository(Bytecode PC:66)
4XESTACKTRACE at org/eclipse/equinox/internal/p2/reconciler/dropins/PlatformXmlListener.synchronizeConfiguration(Bytecode PC:398)
4XESTACKTRACE at org/eclipse/equinox/internal/p2/reconciler/dropins/PlatformXmlListener.stopPoll(Bytecode PC:31)
4XESTACKTRACE at org/eclipse/equinox/internal/provisional/p2/directorywatcher/DirectoryWatcher.stopPoll(Bytecode PC:34)
4XESTACKTRACE at org/eclipse/equinox/internal/provisional/p2/directorywatcher/DirectoryWatcher.poll(Bytecode PC:9)
4XESTACKTRACE at org/eclipse/equinox/internal/p2/reconciler/dropins/Activator.watchConfiguration(Bytecode PC:224)
4XESTACKTRACE at org/eclipse/equinox/internal/p2/reconciler/dropins/Activator.start(Bytecode PC:127)
4XESTACKTRACE at org/eclipse/osgi/framework/internal/core/BundleContextImpl$2.run(Bytecode PC:58)
4XESTACKTRACE at java/security/AccessController.doPrivileged(Bytecode PC:3(Compiled Code))
4XESTACKTRACE at org/eclipse/osgi/framework/internal/core/BundleContextImpl.startActivator(Bytecode PC:22)
4XESTACKTRACE at org/eclipse/osgi/framework/internal/core/BundleContextImpl.start(Bytecode PC:23)
4XESTACKTRACE at org/eclipse/osgi/framework/internal/core/BundleHost.startWorker(Bytecode PC:381)
4XESTACKTRACE at org/eclipse/osgi/framework/internal/core/AbstractBundle.resume(Bytecode PC:22(Compiled Code))
4XESTACKTRACE at org/eclipse/osgi/framework/internal/core/Framework.resumeBundle(Bytecode PC:35(Compiled Code))
4XESTACKTRACE at org/eclipse/osgi/framework/internal/core/StartLevelManager.resumeBundles(Bytecode PC:91)
4XESTACKTRACE at org/eclipse/osgi/framework/internal/core/StartLevelManager.incFWSL(Bytecode PC:33)
4XESTACKTRACE at org/eclipse/osgi/framework/internal/core/StartLevelManager.doSetStartLevel(Bytecode PC:236)
4XESTACKTRACE at org/eclipse/osgi/framework/internal/core/StartLevelManager.dispatchEvent(Bytecode PC:45)
4XESTACKTRACE at org/eclipse/osgi/framework/eventmgr/EventManager.dispatchEvent(Bytecode PC:39(Compiled Code))
4XESTACKTRACE at org/eclipse/osgi/framework/eventmgr/EventManager$EventThread.run(Bytecode PC:26)