Sorien / silex-idea-plugin

Idea plugin for Silex Framework - plugin is not compatible with PHPStorm 2016.2
MIT License
26 stars 8 forks source link

[Bug] I think this plugin is causing a deadlock #37

Closed CarsonF closed 8 years ago

CarsonF commented 8 years ago
ERROR - il.indexing.FileBasedIndexImpl - Accessing 'php.class.shortName' during processing 'php.inheritors'. Nested different indices processing may cause deadlock 
java.lang.Throwable
    at com.intellij.openapi.diagnostic.Logger.error(Logger.java:127)
    at com.intellij.util.indexing.IndexAccessValidator.checkAccessingIndexDuringOtherIndexProcessing(IndexAccessValidator.java:37)
    at com.intellij.psi.stubs.StubIndexImpl.a(StubIndexImpl.java:248)
    at com.intellij.psi.stubs.StubIndexImpl.processElements(StubIndexImpl.java:224)
    at com.intellij.psi.stubs.StubIndex.getElements(StubIndex.java:145)
    at com.intellij.psi.stubs.StubIndex.getElements(StubIndex.java:135)
    at com.jetbrains.php.PhpIndexImpl.getByFQN(PhpIndexImpl.java:492)
    at com.jetbrains.php.PhpIndexImpl.getClassesByFQN(PhpIndexImpl.java:507)
    at com.jetbrains.php.PhpIndexImpl.getAnyByFQN(PhpIndexImpl.java:523)
    at com.jetbrains.php.PhpIndexImpl.getBySignatureInternal(PhpIndexImpl.java:372)
    at com.jetbrains.php.PhpIndexImpl.getBySignature(PhpIndexImpl.java:302)
    at com.jetbrains.php.PhpIndexImpl.getBySignature(PhpIndexImpl.java:292)
    at sk.sorien.silexplugin.pimple.PimplePhpTypeProvider.getBySignature(PimplePhpTypeProvider.java:221)
    at com.jetbrains.php.PhpIndexImpl.getBySignatureInternal(PhpIndexImpl.java:416)
    at com.jetbrains.php.PhpIndexImpl.getBySignature(PhpIndexImpl.java:302)
    at sk.sorien.silexplugin.pimple.Utils.isPimpleContainerClass(Utils.java:220)
    at sk.sorien.silexplugin.pimple.PimplePhpTypeProvider.getBySignature(PimplePhpTypeProvider.java:217)
    at com.jetbrains.php.PhpIndexImpl.getBySignatureInternal(PhpIndexImpl.java:416)
    at com.jetbrains.php.PhpIndexImpl.getBySignature(PhpIndexImpl.java:302)
    at com.jetbrains.php.PhpIndexImpl.completeType(PhpIndexImpl.java:79)
    at com.jetbrains.php.lang.psi.resolve.types.PhpType.globalLocationAware(PhpType.java:392)
    at com.jetbrains.php.lang.psi.elements.impl.MemberReferenceImpl.resolveGlobal(MemberReferenceImpl.java:145)
    at com.phpuaca.util.PhpMethodResolver.resolveByMethodReference(PhpMethodResolver.java:15)
    at com.phpuaca.completion.PHPUnitTypeProvider.getType(PHPUnitTypeProvider.java:48)
    at com.jetbrains.php.lang.psi.resolve.types.PhpTypeInfo$1.internalCompute(PhpTypeInfo.java:43)
    at com.jetbrains.php.lang.psi.resolve.types.PhpTypeInfo$1.internalCompute(PhpTypeInfo.java:37)
    at com.intellij.openapi.util.Computable$NotNullCachedComputable.compute(Computable.java:52)
    at com.intellij.openapi.util.RecursionManager$2.doPreventingRecursion(RecursionManager.java:112)
    at com.intellij.openapi.util.RecursionManager.doPreventingRecursion(RecursionManager.java:68)
    at com.jetbrains.php.lang.psi.resolve.types.PhpTypeInfo.getType(PhpTypeInfo.java:37)
    at com.jetbrains.php.lang.psi.elements.impl.PhpReferenceImpl.getType(PhpReferenceImpl.java:207)
    at com.jetbrains.php.lang.psi.resolve.types.PhpType.add(PhpType.java:150)
    at com.jetbrains.php.lang.psi.elements.impl.FunctionImpl.visitReturn(FunctionImpl.java:193)
    at com.jetbrains.php.lang.psi.elements.impl.FunctionImpl.scanTree(FunctionImpl.java:218)
    at com.jetbrains.php.lang.psi.elements.impl.FunctionImpl.getLocalType(FunctionImpl.java:158)
    at com.jetbrains.php.lang.psi.stubs.PhpFunctionElementType.createStub(PhpFunctionElementType.java:30)
    at com.jetbrains.php.lang.psi.stubs.PhpFunctionElementType.createStub(PhpFunctionElementType.java:20)
    at com.intellij.psi.stubs.DefaultStubBuilder.a(DefaultStubBuilder.java:60)
    at com.intellij.psi.stubs.DefaultStubBuilder.buildStubTree(DefaultStubBuilder.java:36)
    at com.intellij.psi.impl.source.PsiFileImpl.calcStubTree(PsiFileImpl.java:1039)
    at com.intellij.psi.stubs.StubProcessingHelperBase.processStubsInFile(StubProcessingHelperBase.java:75)
    at com.intellij.psi.stubs.StubProcessingHelperBase.processStubsInFile(StubProcessingHelperBase.java:52)
    at com.intellij.psi.stubs.StubIndexImpl$1.process(StubIndexImpl.java:232)
    at com.intellij.psi.stubs.StubIndexImpl$StubIdListContainerAction.perform(StubIndexImpl.java:589)
    at com.intellij.psi.stubs.StubIndexImpl$StubIdListContainerAction.perform(StubIndexImpl.java:577)
    at com.intellij.util.indexing.ValueContainer.forEach(ValueContainer.java:81)
    at com.intellij.psi.stubs.StubIndexImpl.a(StubIndexImpl.java:258)
    at com.intellij.psi.stubs.StubIndexImpl.processElements(StubIndexImpl.java:224)
    at com.intellij.psi.stubs.StubIndex.getElements(StubIndex.java:145)
    at com.intellij.psi.stubs.StubIndex.getElements(StubIndex.java:135)
    at com.jetbrains.php.PhpIndexImpl.getDirectSubclasses(PhpIndexImpl.java:255)
    at com.jetbrains.php.PhpIndexImpl.getAllSubclasses(PhpIndexImpl.java:270)
    at com.jetbrains.php.PhpIndexImpl.getAllSubclasses(PhpIndexImpl.java:262)
    at com.jetbrains.php.PhpClassHierarchyUtils.processOverridingMembers(PhpClassHierarchyUtils.java:268)
    at com.jetbrains.php.lang.PhpLineMarkerProvider.findChildren(PhpLineMarkerProvider.java:71)
    at com.jetbrains.php.lang.PhpLineMarkerProvider.collectSlowLineMarkers(PhpLineMarkerProvider.java:135)
    at com.intellij.codeInsight.daemon.impl.SlowLineMarkersPass.addLineMarkers(SlowLineMarkersPass.java:78)
    at com.intellij.codeInsight.daemon.impl.SlowLineMarkersPass.doCollectInformation(SlowLineMarkersPass.java:65)
    at com.intellij.codeHighlighting.TextEditorHighlightingPass.collectInformation(TextEditorHighlightingPass.java:70)
    at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass$1$1.run(PassExecutorService.java:444)
    at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1178)
    at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass$1.run(PassExecutorService.java:435)
    at com.intellij.openapi.progress.impl.CoreProgressManager.a(CoreProgressManager.java:446)
    at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:392)
    at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:54)
    at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.a(PassExecutorService.java:432)
    at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.run(PassExecutorService.java:408)
    at com.intellij.concurrency.JobLauncherImpl$VoidForkJoinTask$1.exec(JobLauncherImpl.java:206)
    at jsr166e.ForkJoinTask.doExec(ForkJoinTask.java:260)
    at jsr166e.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:858)
    at jsr166e.ForkJoinPool.scan(ForkJoinPool.java:1687)
    at jsr166e.ForkJoinPool.runWorker(ForkJoinPool.java:1642)
    at jsr166e.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:108)
Sorien commented 8 years ago

Should be easy to fix, will check it tomorrow

Haehnchen commented 8 years ago

same here https://github.com/Haehnchen/idea-php-symfony2-plugin/issues/670

Sorien commented 8 years ago

hmm i'm not sure if i understand it correctly ... getBySignature can be/is called during index creation so every plugin at github is affected and can cause that exception even their reference implementation :D

didn't notice another plugin at call stack

Sorien commented 8 years ago

@CarsonF do you have any other php plugin installed i see there some phpuaca (this probably https://github.com/maxfilatov/phpuaca)

CarsonF commented 8 years ago

I have:

Sorien commented 8 years ago

just disable PhpUnit AA until they solve https://github.com/maxfilatov/phpuaca/issues/18

    at com.phpuaca.util.PhpMethodResolver.resolveByMethodReference(PhpMethodResolver.java:15)
    at com.phpuaca.completion.PHPUnitTypeProvider.getType(PHPUnitTypeProvider.java:48)