Encountered a ProcessCanceledException while working on quick fixes. #418
Replies: 2 comments
-
No, it shoud retry it. The ProcessCanceledException is a nightmare for LSP4IJ, it can be thrown when PsiJava file is not ready, or when several LSP request are sent (by using CoalesceBy) and more ProcessCanceledException extends in last version of IJ the CancellationException which is difficult to know the cause of the exception. The main idea is to execute 5 times the service and if it cannot be executed it thrown an exception. As it is very hard to reproduce the problem, it is very hard to implement robsut nechanism. Any contribution are welcome! |
Beta Was this translation helpful? Give feedback.
-
I close this discussion is favor of #555 |
Beta Was this translation helpful? Give feedback.
-
When I opened a file containing a diagnostic, after i applied the associated quickfix and then reverted back the applied quickfix, i am coming across a
ProcessCanceledException
. Not able to reproduce it consistently.I can see from the logs -
'Computing MicroProfile Java diagnostics' with attempt 1/5
and'Computing Jakarta Java diagnostics' with attempt 1/5.
, but not able to see further attempts.Is this an expected behaviour?
Attaching Logs
2024-07-11 21:33:52,061 [ 184753] WARN - com.redhat.devtools.lsp4ij.internal.PromiseToCompletableFuture - Restart non blocking read action for 'Computing MicroProfile Java diagnostics' with attempt 1/5.
com.intellij.openapi.progress.ProcessCanceledException
at com.intellij.openapi.progress.util.AbstractProgressIndicatorBase.throwIfCanceled(AbstractProgressIndicatorBase.java:172)
at com.intellij.openapi.progress.util.AbstractProgressIndicatorBase.checkCanceled(AbstractProgressIndicatorBase.java:162)
at com.intellij.openapi.progress.util.ProgressWrapper.checkCanceledRaw(ProgressWrapper.java:70)
at com.intellij.openapi.progress.util.ProgressWrapper.checkCanceled(ProgressWrapper.java:77)
at com.intellij.openapi.progress.impl.CoreProgressManager.doCheckCanceled(CoreProgressManager.java:166)
at com.intellij.openapi.progress.ProgressManager.checkCanceled(ProgressManager.java:333)
at com.intellij.openapi.progress.ProgressIndicatorProvider.checkCanceled(ProgressIndicatorProvider.java:38)
at com.intellij.extapi.psi.StubBasedPsiElementBase.getStub(StubBasedPsiElementBase.java:330)
at com.intellij.psi.impl.source.tree.java.PsiAnnotationImpl.getNameReferenceElement(PsiAnnotationImpl.java:37)
at com.intellij.psi.impl.source.tree.java.PsiAnnotationImpl.getQualifiedName(PsiAnnotationImpl.java:72)
at io.openliberty.tools.intellij.lsp4mp4ij.psi.core.utils.AnnotationUtils.isMatchAnnotation(AnnotationUtils.java:165)
at io.openliberty.tools.intellij.lsp4mp4ij.psi.core.utils.AnnotationUtils.getFirstAnnotation(AnnotationUtils.java:94)
at io.openliberty.tools.intellij.lsp4mp4ij.psi.core.utils.AnnotationUtils.getFirstAnnotation(AnnotationUtils.java:83)
at io.openliberty.tools.intellij.lsp4mp4ij.psi.core.utils.AnnotationUtils.hasAnyAnnotation(AnnotationUtils.java:56)
at io.openliberty.tools.intellij.lsp4mp4ij.psi.internal.health.java.MicroProfileHealthDiagnosticsParticipant.validateClassType(MicroProfileHealthDiagnosticsParticipant.java:103)
at io.openliberty.tools.intellij.lsp4mp4ij.psi.internal.health.java.MicroProfileHealthDiagnosticsParticipant.collectDiagnostics(MicroProfileHealthDiagnosticsParticipant.java:90)
at io.openliberty.tools.intellij.lsp4mp4ij.psi.internal.health.java.MicroProfileHealthDiagnosticsParticipant.collectDiagnostics(MicroProfileHealthDiagnosticsParticipant.java:81)
at io.openliberty.tools.intellij.lsp4mp4ij.psi.internal.core.java.corrections.JavaDiagnosticsDefinition.collectDiagnostics(JavaDiagnosticsDefinition.java:77)
at io.openliberty.tools.intellij.lsp4mp4ij.psi.core.java.diagnostics.DiagnosticsHandler.lambda$collectDiagnostics$5(DiagnosticsHandler.java:86)
at java.base/java.lang.Iterable.forEach(Iterable.java:75)
at io.openliberty.tools.intellij.lsp4mp4ij.psi.core.java.diagnostics.DiagnosticsHandler.lambda$collectDiagnostics$7(DiagnosticsHandler.java:85)
at com.intellij.openapi.project.DumbService.runReadActionInSmartMode(DumbService.kt:124)
at io.openliberty.tools.intellij.lsp4mp4ij.psi.core.java.diagnostics.DiagnosticsHandler.collectDiagnostics(DiagnosticsHandler.java:72)
at io.openliberty.tools.intellij.lsp4mp4ij.psi.core.java.diagnostics.DiagnosticsHandler.collectDiagnostics(DiagnosticsHandler.java:58)
at io.openliberty.tools.intellij.lsp4mp4ij.psi.core.PropertiesManagerForJava.diagnostics(PropertiesManagerForJava.java:227)
at io.openliberty.tools.intellij.lsp4mp.lsp.MicroProfileLanguageClient.lambda$getJavaDiagnostics$7(MicroProfileLanguageClient.java:198)
at com.redhat.devtools.lsp4ij.internal.PromiseToCompletableFuture.lambda$nonBlockingReadActionPromise$2(PromiseToCompletableFuture.java:144)
at com.intellij.openapi.application.impl.NonBlockingReadActionImpl$OTelMonitor.callWrapped(NonBlockingReadActionImpl.java:851)
at com.intellij.openapi.application.impl.NonBlockingReadActionImpl$OTelMonitor$MonitoredComputation.call(NonBlockingReadActionImpl.java:883)
at com.intellij.openapi.application.impl.NonBlockingReadActionImpl$Submission.insideReadAction(NonBlockingReadActionImpl.java:604)
at com.intellij.openapi.application.impl.NonBlockingReadActionImpl$Submission.lambda$attemptComputation$4(NonBlockingReadActionImpl.java:567)
at com.intellij.openapi.application.impl.RwLockHolder.tryRunReadAction(RwLockHolder.kt:310)
at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:958)
at com.intellij.openapi.progress.util.ProgressIndicatorUtils.lambda$runInReadActionWithWriteActionPriority$0(ProgressIndicatorUtils.java:93)
at com.intellij.openapi.progress.util.ProgressIndicatorUtilService.runActionAndCancelBeforeWrite(ProgressIndicatorUtilService.java:66)
at com.intellij.openapi.progress.util.ProgressIndicatorUtils.runActionAndCancelBeforeWrite(ProgressIndicatorUtils.java:155)
at com.intellij.openapi.progress.util.ProgressIndicatorUtils.lambda$runWithWriteActionPriority$1(ProgressIndicatorUtils.java:138)
at com.intellij.openapi.progress.ProgressManager.lambda$runProcess$0(ProgressManager.java:100)
at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcess$2(CoreProgressManager.java:217)
at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$executeProcessUnderProgress$13(CoreProgressManager.java:660)
at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:735)
at com.intellij.openapi.progress.impl.CoreProgressManager.computeUnderProgress(CoreProgressManager.java:691)
at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:659)
at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:79)
at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:202)
at com.intellij.openapi.progress.ProgressManager.runProcess(ProgressManager.java:100)
at com.intellij.openapi.progress.util.ProgressIndicatorUtils.runWithWriteActionPriority(ProgressIndicatorUtils.java:135)
at com.intellij.openapi.progress.util.ProgressIndicatorUtils.runInReadActionWithWriteActionPriority(ProgressIndicatorUtils.java:93)
at com.intellij.openapi.application.impl.NonBlockingReadActionImpl$Submission.attemptComputation(NonBlockingReadActionImpl.java:567)
at com.intellij.openapi.application.impl.NonBlockingReadActionImpl$Submission.lambda$transferToBgThread$1(NonBlockingReadActionImpl.java:466)
at com.intellij.openapi.application.impl.NonBlockingReadActionImpl$Submission.lambda$transferToBgThread$2(NonBlockingReadActionImpl.java:481)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:702)
at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:699)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1.run(Executors.java:699)
at java.base/java.lang.Thread.run(Thread.java:840)
2024-07-11 21:33:52,061 [ 184753] WARN - com.redhat.devtools.lsp4ij.internal.PromiseToCompletableFuture - Restart non blocking read action for 'Computing Jakarta Java diagnostics' with attempt 1/5.
com.intellij.openapi.progress.ProcessCanceledException
at com.intellij.openapi.progress.util.AbstractProgressIndicatorBase.throwIfCanceled(AbstractProgressIndicatorBase.java:172)
at com.intellij.openapi.progress.util.AbstractProgressIndicatorBase.checkCanceled(AbstractProgressIndicatorBase.java:162)
at com.intellij.openapi.progress.util.ProgressWrapper.checkCanceledRaw(ProgressWrapper.java:70)
at com.intellij.openapi.progress.util.ProgressWrapper.checkCanceled(ProgressWrapper.java:77)
at com.intellij.openapi.progress.impl.CoreProgressManager.doCheckCanceled(CoreProgressManager.java:166)
at com.intellij.openapi.progress.ProgressManager.checkCanceled(ProgressManager.java:333)
at com.intellij.openapi.progress.ProgressIndicatorProvider.checkCanceled(ProgressIndicatorProvider.java:38)
at com.intellij.extapi.psi.StubBasedPsiElementBase.getGreenStub(StubBasedPsiElementBase.java:341)
at com.intellij.extapi.psi.StubBasedPsiElementBase.getStubOrPsiChild(StubBasedPsiElementBase.java:350)
at com.intellij.extapi.psi.StubBasedPsiElementBase.getRequiredStubOrPsiChild(StubBasedPsiElementBase.java:372)
at com.intellij.psi.impl.source.PsiMethodImpl.getTypeParameterList(PsiMethodImpl.java:159)
at com.intellij.psi.impl.PsiImplUtil.hasTypeParameters(PsiImplUtil.java:233)
at com.intellij.psi.impl.source.PsiMethodImpl.hasTypeParameters(PsiMethodImpl.java:164)
at io.openliberty.tools.intellij.lsp4jakarta.lsp4ij.di.DependencyInjectionDiagnosticsCollector.collectDiagnostics(DependencyInjectionDiagnosticsCollector.java:79)
at io.openliberty.tools.intellij.lsp4jakarta.lsp4ij.AbstractDiagnosticsCollector.collectDiagnostics(AbstractDiagnosticsCollector.java:104)
at io.openliberty.tools.intellij.lsp4mp4ij.psi.internal.core.java.corrections.JavaDiagnosticsDefinition.collectDiagnostics(JavaDiagnosticsDefinition.java:77)
at io.openliberty.tools.intellij.lsp4mp4ij.psi.core.java.diagnostics.DiagnosticsHandler.lambda$collectDiagnostics$5(DiagnosticsHandler.java:86)
at java.base/java.lang.Iterable.forEach(Iterable.java:75)
at io.openliberty.tools.intellij.lsp4mp4ij.psi.core.java.diagnostics.DiagnosticsHandler.lambda$collectDiagnostics$7(DiagnosticsHandler.java:85)
at com.intellij.openapi.project.DumbService.runReadActionInSmartMode(DumbService.kt:124)
at io.openliberty.tools.intellij.lsp4mp4ij.psi.core.java.diagnostics.DiagnosticsHandler.collectDiagnostics(DiagnosticsHandler.java:72)
at io.openliberty.tools.intellij.lsp4mp4ij.psi.core.java.diagnostics.DiagnosticsHandler.collectDiagnostics(DiagnosticsHandler.java:58)
at io.openliberty.tools.intellij.lsp4jakarta.lsp4ij.PropertiesManagerForJakarta.diagnostics(PropertiesManagerForJakarta.java:63)
at io.openliberty.tools.intellij.lsp4jakarta.lsp.JakartaLanguageClient.lambda$getJavaDiagnostics$0(JakartaLanguageClient.java:59)
at com.redhat.devtools.lsp4ij.internal.PromiseToCompletableFuture.lambda$nonBlockingReadActionPromise$2(PromiseToCompletableFuture.java:144)
at com.intellij.openapi.application.impl.NonBlockingReadActionImpl$OTelMonitor.callWrapped(NonBlockingReadActionImpl.java:851)
at com.intellij.openapi.application.impl.NonBlockingReadActionImpl$OTelMonitor$MonitoredComputation.call(NonBlockingReadActionImpl.java:883)
at com.intellij.openapi.application.impl.NonBlockingReadActionImpl$Submission.insideReadAction(NonBlockingReadActionImpl.java:604)
at com.intellij.openapi.application.impl.NonBlockingReadActionImpl$Submission.lambda$attemptComputation$4(NonBlockingReadActionImpl.java:567)
at com.intellij.openapi.application.impl.RwLockHolder.tryRunReadAction(RwLockHolder.kt:310)
at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:958)
at com.intellij.openapi.progress.util.ProgressIndicatorUtils.lambda$runInReadActionWithWriteActionPriority$0(ProgressIndicatorUtils.java:93)
at com.intellij.openapi.progress.util.ProgressIndicatorUtilService.runActionAndCancelBeforeWrite(ProgressIndicatorUtilService.java:66)
at com.intellij.openapi.progress.util.ProgressIndicatorUtils.runActionAndCancelBeforeWrite(ProgressIndicatorUtils.java:155)
at com.intellij.openapi.progress.util.ProgressIndicatorUtils.lambda$runWithWriteActionPriority$1(ProgressIndicatorUtils.java:138)
at com.intellij.openapi.progress.ProgressManager.lambda$runProcess$0(ProgressManager.java:100)
at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcess$2(CoreProgressManager.java:217)
at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$executeProcessUnderProgress$13(CoreProgressManager.java:660)
at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:735)
at com.intellij.openapi.progress.impl.CoreProgressManager.computeUnderProgress(CoreProgressManager.java:691)
at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:659)
at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:79)
at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:202)
at com.intellij.openapi.progress.ProgressManager.runProcess(ProgressManager.java:100)
at com.intellij.openapi.progress.util.ProgressIndicatorUtils.runWithWriteActionPriority(ProgressIndicatorUtils.java:135)
at com.intellij.openapi.progress.util.ProgressIndicatorUtils.runInReadActionWithWriteActionPriority(ProgressIndicatorUtils.java:93)
at com.intellij.openapi.application.impl.NonBlockingReadActionImpl$Submission.attemptComputation(NonBlockingReadActionImpl.java:567)
at com.intellij.openapi.application.impl.NonBlockingReadActionImpl$Submission.lambda$transferToBgThread$1(NonBlockingReadActionImpl.java:466)
at com.intellij.openapi.application.impl.NonBlockingReadActionImpl$Submission.lambda$transferToBgThread$2(NonBlockingReadActionImpl.java:481)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:702)
at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:699)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1.run(Executors.java:699)
at java.base/java.lang.Thread.run(Thread.java:840)
This entire stack trace resulted from a single instance of encountering this issue. Here's what I did: I applied the quickfix and then reverted it. Both 'Computing Jakarta Java diagnostics' and 'Computing MicroProfile Java diagnostics' are involved. Sometimes the issue can be reproduced immediately, while other times it requires continuously applying and reverting quickfixes.
I sometimes encounter
'Computing Java projects labels'
,'Computing Java code actions'
and'Computing Java codelens'
messages, along with'Computing Jakarta Java diagnostics'
and'Computing MicroProfile Java diagnostics'
. After repeatedly applying and reverting quick fixes for a while, I kept using (cmd+z) and (cmd+shift+z). By doing this, I was able to trigger the exceptions.Beta Was this translation helpful? Give feedback.
All reactions