IntelliJ-EmmyLua icon indicating copy to clipboard operation
IntelliJ-EmmyLua copied to clipboard

Extremely slow startup times since latest 1.4.x updates

Open brittyazel opened this issue 2 years ago • 22 comments

Since the latest round of updates, launching IntelliJ takes a very long time, with the IDE sitting at "Lua indexing: waiting to start ..." and then "Scanning files to index", both taking a couple of minutes to complete. Likewise, while this is happening, it's using >15% of my CPU.

This is with version 1.4.2, but it was also present in the prior version.

brittyazel avatar Jun 06 '23 19:06 brittyazel

Can confirm, with a very large amount of files, the IDE is completely freezing, and the CPU usage can go all the way up to 100%, with IDEA CPU usage averaging 70-80%. It shows this stack trace after opening it back. This behavior is not present on EmmyLua < v1.4.1 and rolling back to v1.3.20 fixes the issue.

Freeze for 158 seconds
IDE KILLED! Sampled time: 128400ms, sampling rate: 100ms, GC time: 18482ms (12%), Class loading: 0%, cpu load: 32%

The stack is from the thread that was blocking EDT

com.intellij.diagnostic.Freeze
	at com.tang.intellij.lua.ty.ExpressionsKt.infer(Expressions.kt:189)
	at com.tang.intellij.lua.ty.ExpressionsKt.inferExprInner(Expressions.kt:50)
	at com.tang.intellij.lua.ty.ExpressionsKt.inferExpr(Expressions.kt:43)
	at com.tang.intellij.lua.ty.DeclarationsKt.inferInner(Declarations.kt:42)
	at com.tang.intellij.lua.ty.LuaTypeInfer.inferType(LuaTypeInfer.kt:25)
	at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.inferImpl(ILuaTypeInfer.kt:41)
	at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.infer(ILuaTypeInfer.kt:35)
	at com.tang.intellij.lua.search.SearchContext.inferAndCache(SearchContext.kt:151)
	at com.tang.intellij.lua.search.SearchContext.access$inferAndCache(SearchContext.kt:34)
	at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:57)
	at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:57)
	at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:62)
	at com.tang.intellij.lua.search.SearchContext$Companion.infer(SearchContext.kt:57)
	at com.tang.intellij.lua.psi.LuaTypeGuessable.guessType(LuaTypeGuessable.java:29)
	at com.tang.intellij.lua.psi.LuaPsiImplUtilKt.guessParentType(LuaPsiImplUtil.kt:262)
	at com.tang.intellij.lua.psi.impl.LuaIndexExprImpl.guessParentType(LuaIndexExprImpl.java:93)
	at com.tang.intellij.lua.ty.ExpressionsKt.infer$lambda$8(Expressions.kt:364)
	at com.tang.intellij.lua.ty.ExpressionsKt$$Lambda$6950/0x0000000102c6fae8.compute(Unknown Source)
	at com.intellij.openapi.util.RecursionGuard$$Lambda$1498/0x00000001010d50f8.compute(Unknown Source)
	at com.intellij.openapi.util.RecursionManager$1.computePreventingRecursion(RecursionManager.java:112)
	at com.intellij.openapi.util.RecursionGuard.doPreventingRecursion(RecursionGuard.java:42)
	at com.intellij.openapi.util.RecursionManager.doPreventingRecursion(RecursionManager.java:66)
	at com.tang.intellij.lua.ext.UtilsKt.recursionGuard(utils.kt:27)
	at com.tang.intellij.lua.ext.UtilsKt.recursionGuard$default(utils.kt:26)
	at com.tang.intellij.lua.ty.ExpressionsKt.infer(Expressions.kt:323)
	at com.tang.intellij.lua.ty.ExpressionsKt.inferExprInner(Expressions.kt:56)
	at com.tang.intellij.lua.ty.ExpressionsKt.inferExpr(Expressions.kt:43)
	at com.tang.intellij.lua.ty.DeclarationsKt.inferInner(Declarations.kt:42)
	at com.tang.intellij.lua.ty.LuaTypeInfer.inferType(LuaTypeInfer.kt:25)
	at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.inferImpl(ILuaTypeInfer.kt:41)
	at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.infer(ILuaTypeInfer.kt:35)
	at com.tang.intellij.lua.search.SearchContext.inferAndCache(SearchContext.kt:151)
	at com.tang.intellij.lua.search.SearchContext.access$inferAndCache(SearchContext.kt:34)
	at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:57)
	at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:57)
	at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:62)
	at com.tang.intellij.lua.search.SearchContext$Companion.infer(SearchContext.kt:57)
	at com.tang.intellij.lua.ty.DeclarationsKt.infer(Declarations.kt:36)
	at com.tang.intellij.lua.ty.ExpressionsKt.infer(Expressions.kt:323)
	at com.tang.intellij.lua.ty.ExpressionsKt.inferExprInner(Expressions.kt:56)
	at com.tang.intellij.lua.ty.ExpressionsKt.inferExpr(Expressions.kt:43)
	at com.tang.intellij.lua.ty.DeclarationsKt.inferInner(Declarations.kt:42)
	at com.tang.intellij.lua.ty.LuaTypeInfer.inferType(LuaTypeInfer.kt:25)
	at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.inferImpl(ILuaTypeInfer.kt:41)
	at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.infer(ILuaTypeInfer.kt:35)
	at com.tang.intellij.lua.search.SearchContext.inferAndCache(SearchContext.kt:151)
	at com.tang.intellij.lua.search.SearchContext.access$inferAndCache(SearchContext.kt:34)
	at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:57)
	at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:57)
	at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:62)
	at com.tang.intellij.lua.search.SearchContext$Companion.infer(SearchContext.kt:57)
	at com.tang.intellij.lua.psi.LuaTypeGuessable.guessType(LuaTypeGuessable.java:29)
	at com.tang.intellij.lua.psi.LuaPsiImplUtilKt$guessTypeAt$1.invoke(LuaPsiImplUtil.kt:255)
	at com.tang.intellij.lua.psi.LuaPsiImplUtilKt$guessTypeAt$1.invoke(LuaPsiImplUtil.kt:255)
	at com.tang.intellij.lua.search.SearchContext.withIndex(SearchContext.kt:102)
	at com.tang.intellij.lua.psi.LuaPsiImplUtilKt.guessTypeAt(LuaPsiImplUtil.kt:255)
	at com.tang.intellij.lua.psi.impl.LuaExprListImpl.guessTypeAt(LuaExprListImpl.java:51)
	at com.tang.intellij.lua.ty.DeclarationsKt$infer$1.invoke(Declarations.kt:139)
	at com.tang.intellij.lua.ty.DeclarationsKt$infer$1.invoke(Declarations.kt:138)
	at com.tang.intellij.lua.search.SearchContext.withIndex(SearchContext.kt:102)
	at com.tang.intellij.lua.ty.DeclarationsKt.infer(Declarations.kt:138)
	at com.tang.intellij.lua.ty.DeclarationsKt.inferInner(Declarations.kt:44)
	at com.tang.intellij.lua.ty.LuaTypeInfer.inferType(LuaTypeInfer.kt:25)
	at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.inferImpl(ILuaTypeInfer.kt:41)
	at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.infer(ILuaTypeInfer.kt:35)
	at com.tang.intellij.lua.search.SearchContext.inferAndCache(SearchContext.kt:151)
	at com.tang.intellij.lua.search.SearchContext.access$inferAndCache(SearchContext.kt:34)
	at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:57)
	at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:57)
	at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:62)
	at com.tang.intellij.lua.search.SearchContext$Companion.infer(SearchContext.kt:57)
	at com.tang.intellij.lua.psi.LuaTypeGuessable.guessType(LuaTypeGuessable.java:29)
	at com.tang.intellij.lua.ty.ExpressionsKt.inferExpr(Expressions.kt:40)
	at com.tang.intellij.lua.ty.DeclarationsKt.inferInner(Declarations.kt:42)
	at com.tang.intellij.lua.ty.LuaTypeInfer.inferType(LuaTypeInfer.kt:25)
	at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.inferImpl(ILuaTypeInfer.kt:41)
	at com.tang.intellij.lua.ext.ILuaTypeInfer$Companion.infer(ILuaTypeInfer.kt:35)
	at com.tang.intellij.lua.search.SearchContext.inferAndCache(SearchContext.kt:151)
	at com.tang.intellij.lua.search.SearchContext.access$inferAndCache(SearchContext.kt:34)
	at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:57)
	at com.tang.intellij.lua.search.SearchContext$Companion$infer$2.invoke(SearchContext.kt:57)
	at com.tang.intellij.lua.search.SearchContext$Companion.with(SearchContext.kt:69)
	at com.tang.intellij.lua.search.SearchContext$Companion.infer(SearchContext.kt:57)
	at com.tang.intellij.lua.psi.LuaTypeGuessable.guessType(LuaTypeGuessable.java:29)
	at com.tang.intellij.lua.index.GuessableIndexer.tryIndex(Indexer.kt:52)
	at com.tang.intellij.lua.index.IndexTask.run(IndexManager.kt:291)
	at com.tang.intellij.lua.index.IndexTask.run(IndexManager.kt:216)
	at com.tang.intellij.lua.index.IndexManager.scanAllProject(IndexManager.kt:128)
	at com.tang.intellij.lua.index.IndexManager.access$scanAllProject(IndexManager.kt:47)
	at com.tang.intellij.lua.index.IndexManager$runScan$1.invoke(IndexManager.kt:109)
	at com.tang.intellij.lua.index.IndexManager$runScan$1.invoke(IndexManager.kt:109)
	at com.tang.intellij.lua.index.TaskQueue$runReadAction$task$1.run$lambda$0(TaskQueue.kt:51)
	at com.tang.intellij.lua.index.TaskQueue$runReadAction$task$1$$Lambda$3131/0x0000000101a122b0.run(Unknown Source)
	at com.intellij.openapi.project.DumbService.lambda$runReadActionInSmartMode$1(DumbService.java:156)
	at com.intellij.openapi.project.DumbService$$Lambda$6870/0x0000000102c544b0.compute(Unknown Source)
	at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:891)
	at com.intellij.openapi.application.ReadAction.compute(ReadAction.java:69)
	at com.intellij.openapi.project.DumbService.runReadActionInSmartMode(DumbService.java:149)
	at com.tang.intellij.lua.index.TaskQueue$runReadAction$task$1.run(TaskQueue.kt:50)
	at com.intellij.openapi.progress.impl.CoreProgressManager.startTask(CoreProgressManager.java:429)
	at com.intellij.openapi.progress.impl.ProgressManagerImpl.startTask(ProgressManagerImpl.java:114)
	at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcessWithProgressAsynchronously$6(CoreProgressManager.java:480)
	at com.intellij.openapi.progress.impl.CoreProgressManager$$Lambda$1669/0x0000000101218480.apply(Unknown Source)
	at com.intellij.openapi.progress.impl.ProgressRunner.lambda$submit$3(ProgressRunner.java:252)
	at com.intellij.openapi.progress.impl.ProgressRunner$$Lambda$1672/0x000000010121a0e8.run(Unknown Source)
	at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcess$2(CoreProgressManager.java:186)
	at com.intellij.openapi.progress.impl.CoreProgressManager$$Lambda$1363/0x0000000100fb75e0.run(Unknown Source)
	at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$executeProcessUnderProgress$13(CoreProgressManager.java:604)
	at com.intellij.openapi.progress.impl.CoreProgressManager$$Lambda$1364/0x0000000100fb7ae0.compute(Unknown Source)
	at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:679)
	at com.intellij.openapi.progress.impl.CoreProgressManager.computeUnderProgress(CoreProgressManager.java:635)
	at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:603)
	at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:60)
	at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:173)
	at com.intellij.openapi.progress.impl.ProgressRunner.lambda$submit$4(ProgressRunner.java:252)
	at com.intellij.openapi.progress.impl.ProgressRunner$$Lambda$1671/0x0000000101219c78.get(Unknown Source)
	at [email protected]/java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1768)
	at [email protected]/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
	at [email protected]/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
	at [email protected]/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:702)
	at [email protected]/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:699)
	at [email protected]/java.security.AccessController.executePrivileged(AccessController.java:776)
	at [email protected]/java.security.AccessController.doPrivileged(AccessController.java:399)
	at [email protected]/java.util.concurrent.Executors$PrivilegedThreadFactory$1.run(Executors.java:699)
	at [email protected]/java.lang.Thread.run(Thread.java:833)

Meivyn avatar Jun 07 '23 00:06 Meivyn

Can you please try this version? https://github.com/EmmyLua/IntelliJ-EmmyLua/actions/runs/5206248623

tangzx avatar Jun 08 '23 01:06 tangzx

I cannot install that version. I get an error saying "failed to load plugin descriptor from file"

brittyazel avatar Jun 08 '23 01:06 brittyazel

I cannot install that version. I get an error saying "failed to load plugin descriptor from file"

You need to unzip it and you will see another zip file, use that file to install

tangzx avatar Jun 08 '23 01:06 tangzx

This still freezes the IDE as soon as "Indexing dependencies" is done.

It however doesn't freeze indefinitely like it used to, but file browsing is extremely laggy, and it consumes a lot of RAM (IDE complains that 2048 Mb isn't enough anymore) It also still freezes after a while.

Meivyn avatar Jun 08 '23 02:06 Meivyn

@Meivyn I can't reproduce the problem, So ... I wonder if your project is complicated? How many Lua files are there and how the size are they?

tangzx avatar Jun 08 '23 02:06 tangzx

It's not really a project - I am simply loading the whole Interface/AddOns folder from World of Warcraft. Those add-ons are written in Lua. I always did that without a problem until that update. But that implies that there are a lot of files, so I can't tell the size or how many of them though.

Meivyn avatar Jun 08 '23 02:06 Meivyn

@Meivyn I don't have WOW installed, where I can get the whole addons folder? Can you pack and upload it for me to test ?

tangzx avatar Jun 08 '23 02:06 tangzx

Here it is: https://send.vis.ee/download/5a3bb95c9f5110f6/#87S-grQ_dqoljGGr6-rbvQ

Meivyn avatar Jun 08 '23 02:06 Meivyn

I always did that without a problem until that update Yes, I rewrote the index system, since the index system in previous version cannot work in IDEA231. I had to rewrite it.

tangzx avatar Jun 08 '23 02:06 tangzx

Here it is: https://send.vis.ee/download/5a3bb95c9f5110f6/#87S-grQ_dqoljGGr6-rbvQ

Thanks

tangzx avatar Jun 08 '23 02:06 tangzx

Hmm, no clue what that error means, I am not understanding this language. What about this one? https://wormhole.app/4zyjp#mt4Ty_GWKYvwko_UeOUd4A

Meivyn avatar Jun 08 '23 02:06 Meivyn

@Meivyn It's my problem, finally I downloaded it, thanks , I'll try it

tangzx avatar Jun 08 '23 02:06 tangzx

It's a bit better. It doesn't lock up the UI nearly as much, though it takes 2-3min to finish it's analysis every single time I open my projects. It appears like it's having to analyze over 100k items according to the new loading status. Almost all of the things it is "analyzing" are the API files added to the project as external libraries. It seems odd that it has to do it every single time. Prior to 1.4.x it would open in just a few seconds.

brittyazel avatar Jun 08 '23 02:06 brittyazel

I have the exact same situation as @Meivyn. We are both loading the whole Interface codebase from World of Warcraft. I have it added as a project SDK. It's quite a bit of files: https://github.com/Gethe/wow-ui-source

brittyazel avatar Jun 08 '23 03:06 brittyazel

Would it be possible to implement some sort of caching system for between sessions? I.e. the 100,000+ objects needing scanned in the World of Warcraft API aren't changing that often, and therefore it seems wasteful to scan them over and over again on each launch. Likewise, even when they are changed, it's really just a subset of them. If the session somehow knew which files had or had not been changed from one session to the next, and could use that information to inform the indexer, that could considerably speed things up.

brittyazel avatar Jun 08 '23 05:06 brittyazel

@tangzx I can confirm your rollback update today returned the previous behavior. Thank you for doing that.

I'm super excited for your hard work on the new indexer, and I'm hoping the above issue can be resolved without too much headache! Let me know if I can help in any way.

brittyazel avatar Jun 12 '23 18:06 brittyazel

I am getting an infinite indexing loop with the latest version. It starts to index the module, and then the SDK, and then the module, and then the SDK, and then the module...

It even does this for non-Lua projects after installing this version.

Meivyn avatar Jun 12 '23 21:06 Meivyn

@Meivyn Just a thought, have you tried invalidating your caches and restarting the IDE? I'm not able to replicate your issue on my end.

brittyazel avatar Jun 12 '23 23:06 brittyazel

Yeah, I did, and that didn't help. It was fixed when I reverted back to 1.3.20.

In case it helps, I am also getting this exception:

com.intellij.diagnostic.PluginException: encoded string (
local B..., },
})
) too long: 493211 bytes [Plugin: com.tang]
	at com.intellij.util.indexing.impl.storage.VfsAwareMapReduceIndex.lambda$getSerializationProblemReporter$6(VfsAwareMapReduceIndex.java:353)
	at com.intellij.util.indexing.impl.ValueSerializationChecker.checkValueSerialization(ValueSerializationChecker.java:36)
	at com.intellij.util.indexing.impl.MapReduceIndex.mapInput(MapReduceIndex.java:299)
	at com.intellij.util.indexing.impl.storage.VfsAwareMapReduceIndex.mapInput(VfsAwareMapReduceIndex.java:172)
	at com.intellij.util.indexing.impl.storage.VfsAwareMapReduceIndex.mapInput(VfsAwareMapReduceIndex.java:39)
	at com.intellij.util.indexing.impl.MapReduceIndex.mapInputAndPrepareUpdate(MapReduceIndex.java:242)
	at com.intellij.indexing.composite.CompositeInvertedIndexBase.updateBaseIndex(CompositeInvertedIndexBase.java:294)
	at com.intellij.indexing.composite.CompositeInvertedIndexBase.mapInputAndPrepareUpdate(CompositeInvertedIndexBase.java:64)
	at com.intellij.indexing.composite.CompositeInvertedIndexBase.mapInputAndPrepareUpdate(CompositeInvertedIndexBase.java:30)
	at com.intellij.util.indexing.FileBasedIndexImpl.createSingleIndexValueApplier(FileBasedIndexImpl.java:1681)
	at com.intellij.util.indexing.FileBasedIndexImpl.lambda$doIndexFileContent$26(FileBasedIndexImpl.java:1546)
	at com.intellij.openapi.fileTypes.impl.FileTypeManagerImpl.freezeFileTypeTemporarilyWithProvidedValueIn(FileTypeManagerImpl.java:675)
	at com.intellij.util.indexing.FileBasedIndexImpl.doIndexFileContent(FileBasedIndexImpl.java:1494)
	at com.intellij.util.indexing.FileBasedIndexImpl.indexFileContent(FileBasedIndexImpl.java:1467)
	at com.intellij.util.indexing.contentQueue.IndexUpdateRunner.lambda$indexOneFileOfJob$4(IndexUpdateRunner.java:317)
	at com.intellij.openapi.application.impl.NonBlockingReadActionImpl$OTelMonitor.callWrapped(NonBlockingReadActionImpl.java:746)
	at com.intellij.openapi.application.impl.NonBlockingReadActionImpl$OTelMonitor$MonitoredComputation.call(NonBlockingReadActionImpl.java:778)
	at com.intellij.openapi.application.impl.NonBlockingReadActionImpl$Submission.insideReadAction(NonBlockingReadActionImpl.java:573)
	at com.intellij.openapi.application.impl.NonBlockingReadActionImpl$Submission.lambda$attemptComputation$3(NonBlockingReadActionImpl.java:537)
	at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1102)
	at com.intellij.openapi.progress.util.ProgressIndicatorUtils.lambda$runInReadActionWithWriteActionPriority$0(ProgressIndicatorUtils.java:72)
	at com.intellij.openapi.progress.util.ProgressIndicatorUtilService.runActionAndCancelBeforeWrite(ProgressIndicatorUtilService.java:63)
	at com.intellij.openapi.progress.util.ProgressIndicatorUtils.runActionAndCancelBeforeWrite(ProgressIndicatorUtils.java:129)
	at com.intellij.openapi.progress.util.ProgressIndicatorUtils.lambda$runWithWriteActionPriority$1(ProgressIndicatorUtils.java:110)
	at com.intellij.openapi.progress.ProgressManager.lambda$runProcess$1(ProgressManager.java:70)
	at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcess$2(CoreProgressManager.java:186)
	at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$executeProcessUnderProgress$13(CoreProgressManager.java:604)
	at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:679)
	at com.intellij.openapi.progress.impl.CoreProgressManager.computeUnderProgress(CoreProgressManager.java:635)
	at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:603)
	at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:60)
	at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:173)
	at com.intellij.openapi.progress.ProgressManager.runProcess(ProgressManager.java:70)
	at com.intellij.openapi.progress.util.ProgressIndicatorUtils.runWithWriteActionPriority(ProgressIndicatorUtils.java:107)
	at com.intellij.openapi.progress.util.ProgressIndicatorUtils.runInReadActionWithWriteActionPriority(ProgressIndicatorUtils.java:72)
	at com.intellij.openapi.application.impl.NonBlockingReadActionImpl$Submission.attemptComputation(NonBlockingReadActionImpl.java:537)
	at com.intellij.openapi.application.impl.NonBlockingReadActionImpl$Submission.executeSynchronously(NonBlockingReadActionImpl.java:464)
	at com.intellij.openapi.application.impl.NonBlockingReadActionImpl.executeSynchronously(NonBlockingReadActionImpl.java:218)
	at com.intellij.util.indexing.contentQueue.IndexUpdateRunner.indexOneFileOfJob(IndexUpdateRunner.java:321)
	at com.intellij.util.indexing.contentQueue.IndexUpdateRunner.lambda$indexJobsFairly$3(IndexUpdateRunner.java:243)
	at com.intellij.openapi.progress.impl.ProgressSuspender.executeNonSuspendableSection(ProgressSuspender.java:80)
	at com.intellij.util.indexing.contentQueue.IndexUpdateRunner.indexJobsFairly(IndexUpdateRunner.java:246)
	at com.intellij.util.indexing.contentQueue.IndexUpdateRunner.lambda$doIndexFiles$2(IndexUpdateRunner.java:177)
	at com.intellij.util.concurrency.BoundedTaskExecutor.doRun(BoundedTaskExecutor.java:248)
	at com.intellij.util.concurrency.BoundedTaskExecutor.access$200(BoundedTaskExecutor.java:28)
	at com.intellij.util.concurrency.BoundedTaskExecutor$1.executeFirstTaskAndHelpQueue(BoundedTaskExecutor.java:221)
	at com.intellij.util.ConcurrencyUtil.runUnderThreadName(ConcurrencyUtil.java:227)
	at com.intellij.util.concurrency.BoundedTaskExecutor$1.run(BoundedTaskExecutor.java:210)
	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:833)
Caused by: java.io.UTFDataFormatException: encoded string (
local B..., },
})
) too long: 493211 bytes
	at java.base/java.io.DataOutputStream.writeUTF(DataOutputStream.java:369)
	at java.base/java.io.DataOutputStream.writeUTF(DataOutputStream.java:333)
	at com.tang.intellij.lua.stubs.index.LuaStringArgIndex$getValueExternalizer$1.save(LuaStringArgIndex.kt:50)
	at com.tang.intellij.lua.stubs.index.LuaStringArgIndex$getValueExternalizer$1.save(LuaStringArgIndex.kt:45)
	at com.intellij.util.indexing.impl.forward.AbstractForwardIndexAccessor.serializeToByteSeq(AbstractForwardIndexAccessor.java:81)
	at com.intellij.util.indexing.impl.forward.AbstractForwardIndexAccessor.serializeValueToByteSeq(AbstractForwardIndexAccessor.java:69)
	at com.intellij.util.indexing.impl.ValueSerializationChecker.getValueSerializationProblem(ValueSerializationChecker.java:49)
	at com.intellij.util.indexing.impl.ValueSerializationChecker.checkValueSerialization(ValueSerializationChecker.java:34)
	... 53 more

Meivyn avatar Jun 13 '23 01:06 Meivyn

@tangzx Would appreciate it if you could look at it/send some news since 2023.2 is now officially out.

Meivyn avatar Jul 27 '23 12:07 Meivyn

This exception is indeed the cause of the issue. It happens with this addon: https://www.curseforge.com/wow/addons/btwquests-dragonflight

Excluding the Database folder from the sources did solve the issue.

Meivyn avatar Oct 11 '23 15:10 Meivyn