[Bug] StackOverflowError
Вид дистрибуции: plugin
Версия: 3.7.0
IDE: WebStorm 2023.2.5
Build: #WS-232.10227.9, built on November 11, 2023
stacktrace.txt ⬇️
java.lang.StackOverflowError
at com.intellij.concurrency.ConcurrentHashMap.hash(ConcurrentHashMap.java:6182)
at com.intellij.concurrency.ConcurrentHashMap.get(ConcurrentHashMap.java:935)
at com.intellij.util.indexing.impl.storage.TransientChangesIndexStorage.read(TransientChangesIndexStorage.java:191)
at com.intellij.util.indexing.impl.MapReduceIndex.getData(MapReduceIndex.java:236)
at com.intellij.util.indexing.storage.MapReduceIndexBase.getNullableIndexedData(MapReduceIndexBase.java:78)
at com.intellij.util.indexing.impl.storage.TransientFileContentIndex.getNullableIndexedData(TransientFileContentIndex.java:97)
at com.intellij.util.indexing.storage.MapReduceIndexBase.lambda$getIndexedFileData$1(MapReduceIndexBase.java:60)
at com.intellij.util.ConcurrencyUtil.withLock(ConcurrencyUtil.java:246)
at com.intellij.util.indexing.storage.MapReduceIndexBase.getIndexedFileData(MapReduceIndexBase.java:56)
at com.intellij.indexing.composite.CompositeInvertedIndexBase.getIndexedFileData(CompositeInvertedIndexBase.java:151)
at com.intellij.util.indexing.FileBasedIndexEx.lambda$getFileData$2(FileBasedIndexEx.java:216)
at com.intellij.util.indexing.FileBasedIndexEx.lambda$processExceptions$6(FileBasedIndexEx.java:324)
at com.intellij.util.ConcurrencyUtil.withLock(ConcurrencyUtil.java:246)
at com.intellij.util.indexing.FileBasedIndexEx.processExceptions(FileBasedIndexEx.java:324)
at com.intellij.util.indexing.FileBasedIndexEx.getFileData(FileBasedIndexEx.java:209)
at com.intellij.util.indexing.FileBasedIndexImpl.getFileData(FileBasedIndexImpl.java:1111)
at org.dochub.idea.arch.indexing.CacheBuilder.parseYamlManifest(CacheBuilder.java:84)
at org.dochub.idea.arch.indexing.CacheBuilder.parseYamlManifest(CacheBuilder.java:95)
at org.dochub.idea.arch.indexing.CacheBuilder.parseYamlManifest(CacheBuilder.java:95)
// ... тут строк 500 рекурсивных вызовов
at org.dochub.idea.arch.indexing.CacheBuilder.parseYamlManifest(CacheBuilder.java:95)
at org.dochub.idea.arch.indexing.CacheBuilder.parseYamlManifest(CacheBuilder.java:95)
Также, плагин конфликтует с bundled-плагинами - например, с коробочным OpenAPI-плагином
Доп. инфо: после возникновения ошибки IDE наглухо виснет
С самой ошибкой будем разбираться.
Проверьте, что yaml файлы корректны. Вероятнее всего проблема в некорректной структуре yaml.
С самой ошибкой будем разбираться.
Проверьте, что yaml файлы корректны. Вероятнее всего проблема в некорректной структуре yaml.
Синтаксис провалидировали, все ок. В проблем-чекере докхаба нет ни одной, связанной с тем манифестом, при редактировании которого происходит ошибка.
Есть предположение: это происходит это из-за попыток докхаба распарсить себе директивы в yaml-файлах, не являющихся манифестами (например, у нас достаточное количество openapi/asyncapi), чего он по-идее делать не должен.
Есть предложение/фичареквест - добавить в файлы манифестов признак того, что это манифесты (по аналогии с докеркомпоузовым version - какой-нибудь dochub_version), и парсить только ямлы с этим признаком. Сделать тестовый билд с отключаемой валидацией признака манифеста, и с ним протестить, будет ли повторяться ошибка. Если не будет - причина найдена, решение готово, всё работает и все радуются ☺️
Проблема обнаружена - циклические импорты манифестов. Описания API ни при чём. @rpiontik думаю, имеет смысл добавить ограничение/валидацию на циклические импорты, и при обнаружении подобных - не подгружать их в озеро, отплёвывая соответствующую ошибку