JetBrains / ideolog

Interactive viewer for '.log' files.
MIT License
255 stars 54 forks source link

IDE Freezes parsing some unidentified log files #196

Open Sartoric opened 1 month ago

Sartoric commented 1 month ago

Opening a custom .log file (not a standard/supported log format) freeze the IDE (PHPS)

An extract from the threadDumps-freeze-XXX-LexerEditorHighlighter.setText-Xsec file

JobScheduler FJ pool 7/9" prio=0 tid=0x0 nid=0x0 runnable
     java.lang.Thread.State: RUNNABLE

    at com.intellij.openapi.util.text.StringUtilRt.equal(StringUtilRt.java:29)
    at com.intellij.openapi.util.Comparing.equal(Comparing.java:37)
    at com.intellij.openapi.editor.ex.util.LexerEditorHighlighter.doSetText(LexerEditorHighlighter.java:424)
    at com.intellij.openapi.editor.ex.util.LexerEditorHighlighter.setText(LexerEditorHighlighter.java:413)
    at com.intellij.ideolog.highlighting.LogEditorHighlighter.createIterator(LogFileHighlighterFactory.kt:57)
    at com.intellij.codeInsight.daemon.impl.IndentsPass$IndentsCalculator.isComment(IndentsPass.java:326)
    at com.intellij.codeInsight.daemon.impl.IndentsPass$IndentsCalculator.calculate(IndentsPass.java:282)
    at com.intellij.codeInsight.daemon.impl.IndentsPass.buildDescriptors(IndentsPass.java:152)
    at com.intellij.codeInsight.daemon.impl.IndentsPass.doCollectInformation(IndentsPass.java:65)
    at com.intellij.codeHighlighting.TextEditorHighlightingPass.collectInformation(TextEditorHighlightingPass.java:67)
    at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.lambda$doRun$2(PassExecutorService.java:431)
    at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass$$Lambda/0x0000000801c00d68.consume(Unknown Source)
    at com.intellij.platform.diagnostic.telemetry.helpers.TraceKt.runWithSpanIgnoreThrows(trace.kt:118)
    at com.intellij.platform.diagnostic.telemetry.helpers.TraceUtil.runWithSpanThrows(TraceUtil.java:36)
    at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.lambda$doRun$3(PassExecutorService.java:426)
    at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass$$Lambda/0x0000000801c006a8.run(Unknown Source)
    at com.intellij.openapi.application.impl.AnyThreadWriteThreadingSupport.tryRunReadAction(AnyThreadWriteThreadingSupport.kt:291)
    at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:965)
    at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.lambda$doRun$4(PassExecutorService.java:417)
    at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass$$Lambda/0x0000000801c00468.run(Unknown Source)
    at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$executeProcessUnderProgress$13(CoreProgressManager.java:660)
    at com.intellij.openapi.progress.impl.CoreProgressManager$$Lambda/0x0000000800fa9c48.compute(Unknown Source)
    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.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.doRun(PassExecutorService.java:416)
    at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.lambda$run$0(PassExecutorService.java:392)
    at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass$$Lambda/0x0000000801bfbdc0.run(Unknown Source)
    at com.intellij.openapi.fileTypes.impl.FileTypeManagerImpl.cacheFileTypesInside(FileTypeManagerImpl.java:802)
    at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.lambda$run$1(PassExecutorService.java:392)
    at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass$$Lambda/0x0000000801bfbb80.run(Unknown Source)
    at com.intellij.openapi.application.impl.AnyThreadWriteThreadingSupport.executeByImpatientReader(AnyThreadWriteThreadingSupport.kt:486)
    at com.intellij.openapi.application.impl.ApplicationImpl.executeByImpatientReader(ApplicationImpl.java:178)
    at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.run(PassExecutorService.java:390)
    at com.intellij.concurrency.JobLauncherImpl$VoidForkJoinTask$1.exec(JobLauncherImpl.java:259)
    at java.base@21.0.4/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:507)
    at java.base@21.0.4/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1491)
    at java.base@21.0.4/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:2073)
    at java.base@21.0.4/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:2035)
    at java.base@21.0.4/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:187)
"AWT-EventQueue-0" prio=0 tid=0x0 nid=0x0 blocked
     java.lang.Thread.State: BLOCKED
 on org.jetbrains.plugins.textmate.language.syntax.highlighting.TextMateEditorHighlighterProvider$TextMateLexerEditorHighlighter@772f7904 owned by "JobScheduler FJ pool 7/9" Id=172
    at com.intellij.openapi.editor.ex.util.LexerEditorHighlighter.setText(LexerEditorHighlighter.java:412)
    at com.intellij.ideolog.highlighting.LogEditorHighlighter.createIterator(LogFileHighlighterFactory.kt:60)
    at com.intellij.openapi.editor.impl.view.IterationState.<init>(IterationState.java:131)
    at com.intellij.openapi.editor.impl.view.EditorPainter$Session.paintLineFragments(EditorPainter.java:1484)
    at com.intellij.openapi.editor.impl.view.EditorPainter$Session.paintBackground(EditorPainter.java:369)
    at com.intellij.openapi.editor.impl.view.EditorPainter$Session.paint(EditorPainter.java:194)
    at com.intellij.openapi.editor.impl.view.EditorPainter.paint(EditorPainter.java:86)
    at com.intellij.openapi.editor.impl.view.EditorView.paint(EditorView.java:283)
    at com.intellij.openapi.editor.impl.EditorImpl.lambda$paint$47(EditorImpl.java:2070)
    at com.intellij.openapi.editor.impl.EditorImpl$$Lambda/0x0000000801a65370.run(Unknown Source)
    at com.intellij.openapi.application.impl.AnyThreadWriteThreadingSupport.runReadAction$lambda$2(AnyThreadWriteThreadingSupport.kt:217)
    at com.intellij.openapi.application.impl.AnyThreadWriteThreadingSupport$$Lambda/0x00000008011104b0.compute(Unknown Source)
    at com.intellij.openapi.application.impl.AnyThreadWriteThreadingSupport.runReadAction(AnyThreadWriteThreadingSupport.kt:228)
    at com.intellij.openapi.application.impl.AnyThreadWriteThreadingSupport.runReadAction(AnyThreadWriteThreadingSupport.kt:217)
    at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:847)
    at com.intellij.openapi.editor.impl.EditorImpl.paint(EditorImpl.java:2060)
    at com.intellij.openapi.editor.impl.EditorComponentImpl.paintComponent(EditorComponentImpl.java:283)
    at java.desktop/javax.swing.JComponent.paint(JComponent.java:1124)
    at com.intellij.openapi.editor.impl.EditorComponentImpl.paint(EditorComponentImpl.java:157)
    at java.desktop/javax.swing.JComponent.paintChildren(JComponent.java:964)
    at java.desktop/javax.swing.JComponent.paint(JComponent.java:1133)
    at java.desktop/javax.swing.JViewport.paint(JViewport.java:736)
    at com.intellij.ui.components.JBViewport.paint(JBViewport.java:240)
    at java.desktop/javax.swing.JComponent.paintChildren(JComponent.java:964)
    at com.intellij.ui.components.JBScrollPane.paintChildren(JBScrollPane.java:242)
    at java.desktop/javax.swing.JComponent.paint(JComponent.java:1133)
    at com.intellij.ui.components.JBScrollPane.paint(JBScrollPane.java:230)
    at java.desktop/javax.swing.JComponent.paintChildren(JComponent.java:964)
    at java.desktop/javax.swing.JComponent.paint(JComponent.java:1133)
    at java.desktop/javax.swing.JLayeredPane.paint(JLayeredPane.java:586)
    at java.desktop/javax.swing.JComponent.paintToOffscreen(JComponent.java:5319)
    at java.desktop/javax.swing.RepaintManager$PaintManager.paintDoubleBufferedImpl(RepaintManager.java:1680)
    at java.desktop/javax.swing.RepaintManager$PaintManager.paintDoubleBuffered(RepaintManager.java:1655)
    at java.desktop/javax.swing.RepaintManager$PaintManager.paint(RepaintManager.java:1592)
    at java.desktop/javax.swing.BufferStrategyPaintManager.paint(BufferStrategyPaintManager.java:281)
    at java.desktop/javax.swing.RepaintManager.paint(RepaintManager.java:1352)
    at java.desktop/javax.swing.JComponent._paintImmediately(JComponent.java:5267)
    at java.desktop/javax.swing.JComponent.paintImmediately(JComponent.java:5077)
    at java.desktop/javax.swing.RepaintManager$4.run(RepaintManager.java:887)
    at java.desktop/javax.swing.RepaintManager$4.run(RepaintManager.java:870)
    at java.base@21.0.4/java.security.AccessController.executePrivileged(AccessController.java:778)
    at java.base@21.0.4/java.security.AccessController.doPrivileged(AccessController.java:400)
    at java.base@21.0.4/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:87)
    at java.desktop/javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:870)
    at java.desktop/javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:843)
    at java.desktop/javax.swing.RepaintManager.prePaintDirtyRegions(RepaintManager.java:789)
    at java.desktop/javax.swing.RepaintManager$ProcessingRunnable.run(RepaintManager.java:1921)
    at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:318)
    at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:781)
    at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:728)
    at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:722)
    at java.base@21.0.4/java.security.AccessController.executePrivileged(AccessController.java:778)
    at java.base@21.0.4/java.security.AccessController.doPrivileged(AccessController.java:400)
    at java.base@21.0.4/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:87)
    at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:750)
    at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.kt:696)
    at com.intellij.ide.IdeEventQueue._dispatchEvent$lambda$16(IdeEventQueue.kt:590)
    at com.intellij.ide.IdeEventQueue$$Lambda/0x00000008007d3420.run(Unknown Source)
    at com.intellij.openapi.application.impl.AnyThreadWriteThreadingSupport.runWithoutImplicitRead(AnyThreadWriteThreadingSupport.kt:117)
    at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.kt:590)
    at com.intellij.ide.IdeEventQueue.access$_dispatchEvent(IdeEventQueue.kt:73)
    at com.intellij.ide.IdeEventQueue$dispatchEvent$processEventRunnable$1$1$1$1.compute(IdeEventQueue.kt:357)
    at com.intellij.ide.IdeEventQueue$dispatchEvent$processEventRunnable$1$1$1$1.compute(IdeEventQueue.kt:356)
    at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:843)
    at com.intellij.ide.IdeEventQueue$dispatchEvent$processEventRunnable$1$1$1.invoke(IdeEventQueue.kt:356)
    at com.intellij.ide.IdeEventQueue$dispatchEvent$processEventRunnable$1$1$1.invoke(IdeEventQueue.kt:351)
    at com.intellij.ide.IdeEventQueueKt$performActivity$runnableWithWIL$1.invoke$lambda$0(IdeEventQueue.kt:1035)
    at com.intellij.ide.IdeEventQueueKt$performActivity$runnableWithWIL$1$$Lambda/0x00000008007cc228.run(Unknown Source)
    at com.intellij.openapi.application.WriteIntentReadAction.lambda$run$0(WriteIntentReadAction.java:24)
    at com.intellij.openapi.application.WriteIntentReadAction$$Lambda/0x00000008007ccf00.compute(Unknown Source)
    at com.intellij.openapi.application.impl.AnyThreadWriteThreadingSupport.runWriteIntentReadAction(AnyThreadWriteThreadingSupport.kt:84)
    at com.intellij.openapi.application.impl.ApplicationImpl.runWriteIntentReadAction(ApplicationImpl.java:910)
    at com.intellij.openapi.application.WriteIntentReadAction.compute(WriteIntentReadAction.java:55)
    at com.intellij.openapi.application.WriteIntentReadAction.run(WriteIntentReadAction.java:23)
    at com.intellij.ide.IdeEventQueueKt$performActivity$runnableWithWIL$1.invoke(IdeEventQueue.kt:1035)
    at com.intellij.ide.IdeEventQueueKt$performActivity$runnableWithWIL$1.invoke(IdeEventQueue.kt:1035)
    at com.intellij.ide.IdeEventQueueKt.performActivity$lambda$1(IdeEventQueue.kt:1036)
    at com.intellij.ide.IdeEventQueueKt$$Lambda/0x00000008007c7a00.run(Unknown Source)
    at com.intellij.openapi.application.TransactionGuardImpl.performActivity(TransactionGuardImpl.java:106)
    at com.intellij.ide.IdeEventQueueKt.performActivity(IdeEventQueue.kt:1036)
    at com.intellij.ide.IdeEventQueue.dispatchEvent$lambda$10(IdeEventQueue.kt:351)
    at com.intellij.ide.IdeEventQueue$$Lambda/0x00000008007c0220.run(Unknown Source)
    at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.kt:389)
    at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:207)
    at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128)
    at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117)
    at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113)
    at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105)
    at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:92)

I've seen this, not sure if it is related : https://github.com/JetBrains/ideolog/issues/183

smirok commented 1 month ago

Hi! Thanks for the report.

It is a known issue, we've created a ticket for it.