jvolkman / intellij-protobuf-editor

Protocol Buffers for IntelliJ-based IDEs
Apache License 2.0
122 stars 15 forks source link

IntelliJ Idea 2021.1 Exception Loop during Startup #63

Closed Imoriarty closed 3 years ago

Imoriarty commented 3 years ago

OS: Windows 10 IntelliJ Version: 2021.1, Build #IU-211.6693.111, Built April 6, 2021

Looks like the plugin is keeping IntelliJ Idea 2021.1 from starting up, throwing an exception. Disabling / removing the plugin allows the program to start correctly (sans the plugin).

Note: Handy command line switch for loading the program sans plugins is "idea64 disableNonBundledPlugins"

Guess this what I get for updating my IDE!

Stacktrace: 2021-04-07 20:30:57,077 [ 6593] ERROR - .indexing.IndexDataInitializer - OS: Windows 10 2021-04-07 20:30:57,085 [ 6601] ERROR - .indexing.IndexDataInitializer - Plugin to blame: Protocol Buffer Editor version: 2.3.1 2021-04-07 20:30:57,086 [ 6602] ERROR - .indexing.IndexDataInitializer - Last Action: 2021-04-07 20:30:57,083 [ 6599] ERROR - .indexing.IndexDataInitializer - Index is not created for Stubs java.lang.IllegalStateException: Index is not created for Stubs at com.intellij.util.indexing.FileBasedIndexImpl.getIndex(FileBasedIndexImpl.java:1212) at com.intellij.psi.stubs.StubIndexImpl.getStubUpdatingIndex(StubIndexImpl.java:747) at com.intellij.psi.stubs.StubIndexImpl.registerIndexer(StubIndexImpl.java:203) at com.intellij.psi.stubs.StubIndexImpl$StubIndexInitialization.lambda$prepareTasks$1(StubIndexImpl.java:734) at com.intellij.util.indexing.IndexDataInitializer.executeTask(IndexDataInitializer.kt:75) at com.intellij.util.indexing.IndexDataInitializer.access$executeTask(IndexDataInitializer.kt:15) at com.intellij.util.indexing.IndexDataInitializer$runParallelTasks$$inlined$map$lambda$1.run(IndexDataInitializer.kt:49) at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at com.intellij.util.concurrency.BoundedTaskExecutor.doRun(BoundedTaskExecutor.java:216) at com.intellij.util.concurrency.BoundedTaskExecutor.access$200(BoundedTaskExecutor.java:27) at com.intellij.util.concurrency.BoundedTaskExecutor$1.execute(BoundedTaskExecutor.java:195) at com.intellij.util.ConcurrencyUtil.runUnderThreadName(ConcurrencyUtil.java:213) at com.intellij.util.concurrency.BoundedTaskExecutor$1.run(BoundedTaskExecutor.java:184) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:668) at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:665) at java.base/java.security.AccessController.doPrivileged(Native Method) at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1.run(Executors.java:665) at java.base/java.lang.Thread.run(Thread.java:834) Caused by: com.intellij.diagnostic.PluginException: Cannot create class idea.plugin.protoeditor.lang.PbParserDefinition (classloader=PluginClassLoader(plugin=PluginDescriptor(name=Protocol Buffer Editor, id=idea.plugin.protoeditor, descriptorPath=plugin.xml, path=~\AppData\Roaming\JetBrains\IntelliJIdea2021.1\plugins\protobuf-editor.jar, version=2.3.1, package=null), packagePrefix=null, instanceId=204, state=active)) at com.intellij.serviceContainer.ComponentManagerImpl.instantiateClass(ComponentManagerImpl.kt:763) at com.intellij.serviceContainer.ComponentManagerImpl.instantiateClass(ComponentManagerImpl.kt:781) at com.intellij.serviceContainer.LazyExtensionInstance.createInstance(LazyExtensionInstance.java:54) at com.intellij.serviceContainer.LazyExtensionInstance.getInstance(LazyExtensionInstance.java:43) at com.intellij.serviceContainer.BaseKeyedLazyInstance.getInstance(BaseKeyedLazyInstance.java:38) at com.intellij.psi.stubs.StubUpdatingIndex.getExtensions(StubUpdatingIndex.java:438) at com.intellij.psi.stubs.StubUpdatingIndex.instantiateElementTypesFromFields(StubUpdatingIndex.java:431) at com.intellij.psi.stubs.StubUpdatingIndex.lambda$ensureSerializationManagerInitialized$0(StubUpdatingIndex.java:421) at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:688) at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:634) at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:64) at com.intellij.openapi.progress.impl.CoreProgressManager.executeNonCancelableSection(CoreProgressManager.java:218) at com.intellij.psi.stubs.StubUpdatingIndex.ensureSerializationManagerInitialized(StubUpdatingIndex.java:420) at com.intellij.psi.stubs.StubUpdatingIndex.getValueExternalizer(StubUpdatingIndex.java:339) at com.intellij.util.indexing.impl.storage.DefaultIndexStorageLayout.createIndexStorage(DefaultIndexStorageLayout.kt:58) at com.intellij.util.indexing.impl.storage.DefaultIndexStorageLayout$SingleEntryStorageLayout.openIndexStorage(DefaultIndexStorageLayout.kt:149) at com.intellij.psi.stubs.StubUpdatingIndex$3.openIndexStorage(StubUpdatingIndex.java:380) at com.intellij.util.indexing.impl.storage.TransientFileContentIndex$1.openIndexStorage(TransientFileContentIndex.java:40) at com.intellij.util.indexing.impl.storage.VfsAwareMapReduceIndex.lambda$new$0(VfsAwareMapReduceIndex.java:67) at com.intellij.util.indexing.impl.MapReduceIndex.(MapReduceIndex.java:102) at com.intellij.util.indexing.impl.storage.VfsAwareMapReduceIndex.(VfsAwareMapReduceIndex.java:80) at com.intellij.util.indexing.impl.storage.VfsAwareMapReduceIndex.(VfsAwareMapReduceIndex.java:66) at com.intellij.util.indexing.impl.storage.TransientFileContentIndex.(TransientFileContentIndex.java:36) at com.intellij.psi.stubs.StubUpdatingIndexStorage.(StubUpdatingIndexStorage.java:32) at com.intellij.psi.stubs.StubUpdatingIndex.createIndexImplementation(StubUpdatingIndex.java:372) at com.intellij.util.indexing.FileBasedIndexImpl.createIndex(FileBasedIndexImpl.java:542) at com.intellij.util.indexing.FileBasedIndexImpl.initIndexStorage(FileBasedIndexImpl.java:479) at com.intellij.util.indexing.FileBasedIndexImpl.registerIndexer(FileBasedIndexImpl.java:439) at com.intellij.util.indexing.FileBasedIndexDataInitialization.lambda$initAssociatedDataForExtensions$0(FileBasedIndexDataInitialization.java:79) ... 17 more Caused by: java.lang.NoClassDefFoundError: Could not initialize class idea.plugin.protoeditor.lang.PbParserDefinition at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490) at com.intellij.serviceContainer.ComponentManagerImpl.instantiateClass(ComponentManagerImpl.kt:722) ... 45 more 2021-04-07 20:30:57,089 [ 6605] ERROR - .indexing.IndexDataInitializer - IntelliJ IDEA 2021.1 Build #IU-211.6693.111

jvolkman commented 3 years ago

Have you tried the option to clear indexes and restart? Perhaps something got corrupted.

People have been using 2021.1 EAP for a while.

Imoriarty commented 3 years ago

I tried Invalidate Caches and Restart, but no change. The UI doesn't even show when the exception is thrown, it just appears to hang. I only get the stacktrace if I run from the batch file.

Imoriarty commented 3 years ago

Installed a fresh copy of 2021.1 and 2020.3, both show the same issue. I've uninstalled and reinstalled the plugin through both plugin interfaces with no change.

Imoriarty commented 3 years ago

From 2020.3, ProtoEditor 2.2.1

2021-04-08 10:07:13,034 [ 6268] ERROR - il.indexing.FileBasedIndexImpl - Fatal error initializing plugin idea.plugin.protoeditor com.intellij.ide.plugins.StartupAbortedException: Fatal error initializing plugin idea.plugin.protoeditor at com.intellij.serviceContainer.ComponentManagerImplKt.handleComponentError(ComponentManagerImpl.kt:1068) at com.intellij.util.indexing.FileBasedIndexDataInitialization.lambda$initAssociatedDataForExtensions$0(FileBasedIndexDataInitialization.java:71) at com.intellij.util.indexing.IndexInfrastructure$DataInitialization.executeNestedInitializationTask(IndexInfrastructure.java:174) at com.intellij.util.indexing.IndexInfrastructure$DataInitialization.runParallelNestedInitializationTasks(IndexInfrastructure.java:162) at com.intellij.util.indexing.IndexInfrastructure$DataInitialization.call(IndexInfrastructure.java:123) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at com.intellij.util.concurrency.BoundedTaskExecutor.doRun(BoundedTaskExecutor.java:216) at com.intellij.util.concurrency.BoundedTaskExecutor.access$200(BoundedTaskExecutor.java:27) at com.intellij.util.concurrency.BoundedTaskExecutor$1.execute(BoundedTaskExecutor.java:195) at com.intellij.util.ConcurrencyUtil.runUnderThreadName(ConcurrencyUtil.java:208) at com.intellij.util.concurrency.BoundedTaskExecutor$1.run(BoundedTaskExecutor.java:184) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:668) at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:665) at java.base/java.security.AccessController.doPrivileged(Native Method) at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1.run(Executors.java:665) at java.base/java.lang.Thread.run(Thread.java:834) Caused by: com.intellij.diagnostic.PluginException: Could not initialize class idea.plugin.protoeditor.lang.ProtoBaseLanguage [Plugin: idea.plugin.protoeditor] ... 18 more Caused by: java.lang.NoClassDefFoundError: Could not initialize class idea.plugin.protoeditor.lang.ProtoBaseLanguage at idea.plugin.protoeditor.lang.PbLanguage.(PbLanguage.java:25) at idea.plugin.protoeditor.lang.PbLanguage.(PbLanguage.java:22) at idea.plugin.protoeditor.lang.PbFileType.(PbFileType.java:30) at idea.plugin.protoeditor.lang.PbFileType.(PbFileType.java:27) at idea.plugin.protoeditor.java.PbJavaOuterClassIndex.getInputFilter(PbJavaOuterClassIndex.java:62) at com.intellij.util.indexing.FileBasedIndexImpl.initIndexStorage(FileBasedIndexImpl.java:410) at com.intellij.util.indexing.FileBasedIndexImpl.registerIndexer(FileBasedIndexImpl.java:398) at com.intellij.util.indexing.FileBasedIndexDataInitialization.lambda$initAssociatedDataForExtensions$0(FileBasedIndexDataInitialization.java:65) ... 16 more 2021-04-08 10:07:13,035 [ 6269] ERROR - il.indexing.FileBasedIndexImpl - IntelliJ IDEA 2020.3.3 Build #IU-203.7717.56 2021-04-08 10:07:13,035 [ 6269] ERROR - il.indexing.FileBasedIndexImpl - JDK: 11.0.10; VM: OpenJDK 64-Bit Server VM; Vendor: JetBrains s.r.o. 2021-04-08 10:07:13,035 [ 6269] ERROR - il.indexing.FileBasedIndexImpl - OS: Windows 10 2021-04-08 10:07:13,035 [ 6269] ERROR - il.indexing.FileBasedIndexImpl - Plugin to blame: Protocol Buffer Editor version: 2.2.1 2021-04-08 10:07:13,035 [ 6269] ERROR - il.indexing.FileBasedIndexImpl - Last Action:
2021-04-08 10:07:13,061 [ 6295] INFO - il.indexing.FileBasedIndexImpl - Indexes to be rebuilt after version change:Stubs(corrupted, v = 46) 2021-04-08 10:07:13,067 [ 6301] INFO - leBasedIndexDataInitialization - Dropping indices:protoeditor.java.outer.class.index,Stubs

jvolkman commented 3 years ago

No idea what's going on. Given that you're seeing issues with 2020.3 (which has been in use for months), it really seems like something local to your machine. There's not a whole lot going on in ProtoBaseLanguage that is apparently failing to initialize, which also leads me to believe it's a platform issue and not necessarily specific to this plugin.

Can you try running IntelliJ with a clean environment? I.e., no plugins, config, etc. There's some documentation here about how to specify different system and config paths.

Imoriarty commented 3 years ago

Followed the above link, and got a success with a clean config/system/plugins directory. Added plugins back in one-by-one.

Figured out that one of the plugins that was installed was incompatible: "Protobuf Support", which I thought was a required plugin as it was recommended by the IDE itself. After removing that, all is well.

Thanks so much for your help here!