Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

readNameSet nameSet of suspect (>= 15) size (15) #2698

Closed
cforcey opened this issue Jun 1, 2022 · 3 comments · Fixed by #2717
Closed

readNameSet nameSet of suspect (>= 15) size (15) #2698

cforcey opened this issue Jun 1, 2022 · 3 comments · Fixed by #2717
Assignees
Labels
Milestone

Comments

@cforcey
Copy link

cforcey commented Jun 1, 2022

System

Plugin Version: 13.0.0
Application: IntelliJ IDEA Ultimate Edition (2022.1.1)
Operating System: Mac OS X (12.3.1)

Event

Thanks so much for the recent fixes! While #1444 raised this limit to 15, it might not have been clear from #1452 that the actual number for the geo library needed to be >= 16. The previous limit of 10 truncated the list, but it seems to be precisely 15 as luck would have it: https://github.com/bryanjos/geo/blob/master/lib/geo.ex#L7-L21.

I am not sure what the consequences of continuing to raise this limit might be, or honestly what the purpose of the boundary is, but bumping it by one or some still safe margin would, I think, do the trick for this library. Thanks so much for all the work on the plug-in!

That said, those issues were from a pretty long time ago and I can't quite see what might have changed in this library. Maybe it is something unique to my setup or related to some other package?

Exception

java.lang.Throwable: readNameSet nameSet of suspect (>= 15) size (15)

Stacktrace

java.lang.Throwable: readNameSet nameSet of suspect (>= 15) size (15):
1. if.String.Chars.Geo.Point
2. if.String.Chars.Geo.PointZ
3. if.String.Chars.Geo.MultiLineStringZ
4. if.String.Chars.Geo.MultiLineString
5. if.String.Chars.Geo.PointZM
6. if.String.Chars.Geo.PolygonZ
7. if.String.Chars.Geo.PointM
8. if.String.Chars.Geo.Polygon
9. if.String.Chars.Geo.MultiPolygon
10. if.String.Chars.Geo.MultiPointZ
11. if.String.Chars.Geo.MultiPoint
12. if.String.Chars.Geo.LineStringZ
13. if.String.Chars.Geo.LineString
14. if.String.Chars.Geo.GeometryCollection
15. if.String.Chars.Geo.MultiPolygonZ

	at com.intellij.openapi.diagnostic.Logger.error(Logger.java:182)
	at org.elixir_lang.psi.stub.call.Deserialized.readNameSet(Deserialized.java:224)
	at org.elixir_lang.psi.stub.call.Deserialized.readGuarded(Deserialized.java:161)
	at org.elixir_lang.psi.stub.call.Deserialized.deserializeCanonicalNameSet(Deserialized.java:123)
	at org.elixir_lang.psi.stub.call.Deserialized.deserialize(Deserialized.java:105)
	at org.elixir_lang.psi.stub.type.UnmatchedUnqualifiedNoParenthesesCall.deserialize(UnmatchedUnqualifiedNoParenthesesCall.java:55)
	at org.elixir_lang.psi.stub.type.UnmatchedUnqualifiedNoParenthesesCall.deserialize(UnmatchedUnqualifiedNoParenthesesCall.java:16)
	at com.intellij.psi.stubs.LazyStubData.deserializeStub(LazyStubList.java:131)
	at com.intellij.psi.stubs.LazyStubList.instantiateStub(LazyStubList.java:88)
	at com.intellij.psi.stubs.LazyStubList.get(LazyStubList.java:58)
	at com.intellij.psi.stubs.LazyStubList.instantiateStub(LazyStubList.java:87)
	at com.intellij.psi.stubs.LazyStubList.get(LazyStubList.java:58)
	at com.intellij.psi.stubs.LazyStubList.get(LazyStubList.java:18)
	at com.intellij.psi.stubs.StubSpine.getStubPsi(StubSpine.java:45)
	at com.intellij.psi.stubs.StubProcessingHelperBase.getStubPsi(StubProcessingHelperBase.java:98)
	at com.intellij.psi.stubs.StubProcessingHelperBase.processStubsInFile(StubProcessingHelperBase.java:71)
	at com.intellij.psi.stubs.StubIndexEx.lambda$processElements$4(StubIndexEx.java:140)
	at com.intellij.psi.stubs.StubIndexEx.processElements(StubIndexEx.java:187)
	at com.intellij.psi.stubs.StubIndex.processElements(StubIndex.java:50)
	at org.elixir_lang.reference.resolver.Callable.nameArityInAnyModule(Callable.kt:195)
	at org.elixir_lang.reference.resolver.Callable.resolve(Callable.kt:91)
	at org.elixir_lang.reference.resolver.Callable.resolveAll(Callable.kt:85)
	at org.elixir_lang.reference.resolver.Callable.resolvePreferred(Callable.kt:75)
	at org.elixir_lang.reference.resolver.Callable.resolve(Callable.kt:38)
	at org.elixir_lang.reference.resolver.Callable.resolve(Callable.kt:34)
	at org.elixir_lang.reference.resolver.Callable.resolve(Callable.kt:29)
	at com.intellij.psi.impl.source.resolve.ResolveCache.lambda$resolve$1(ResolveCache.java:154)
	at com.intellij.openapi.util.Computable.get(Computable.java:16)
	at com.intellij.psi.impl.source.resolve.ResolveCache.lambda$loggingResolver$4(ResolveCache.java:260)
	at com.intellij.openapi.util.Computable.get(Computable.java:16)
	at com.intellij.psi.impl.source.resolve.ResolveCache.resolve(ResolveCache.java:238)
	at com.intellij.psi.impl.source.resolve.ResolveCache.resolve(ResolveCache.java:154)
	at com.intellij.psi.impl.source.resolve.ResolveCache.resolveWithCaching(ResolveCache.java:169)
	at com.intellij.psi.impl.source.resolve.ResolveCache.resolveWithCaching(ResolveCache.java:162)
	at org.elixir_lang.reference.ResolveWithCachingComputable.compute(Callable.kt:593)
	at org.elixir_lang.reference.ResolveWithCachingComputable.compute(Callable.kt:585)
	at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:920)
	at org.elixir_lang.reference.CallableKt.resolveWithCaching(Callable.kt:583)
	at org.elixir_lang.reference.CallableKt.access$resolveWithCaching(Callable.kt:1)
	at org.elixir_lang.reference.Callable.multiResolve(Callable.kt:105)
	at org.elixir_lang.ReferenceKt.safeMultiResolve(reference.kt:16)
	at org.elixir_lang.annotator.Callable$annotate$1.visitPlainCall(Callable.kt:97)
	at org.elixir_lang.annotator.Callable$annotate$1.visitNonModuleAttributeCall(Callable.kt:87)
	at org.elixir_lang.annotator.Callable$annotate$1.visitCall(Callable.kt:47)
	at org.elixir_lang.annotator.Callable$annotate$1.visitElement(Callable.kt:78)
	at com.intellij.psi.impl.PsiElementBase.accept(PsiElementBase.java:273)
	at org.elixir_lang.psi.impl.ElixirUnmatchedQualifiedParenthesesCallImpl.accept(ElixirUnmatchedQualifiedParenthesesCallImpl.java:38)
	at org.elixir_lang.annotator.Callable.annotate(Callable.kt:39)
@KronicDeth
Copy link
Owner

KronicDeth commented Jun 1, 2022

I am not sure what the consequences of continuing to raise this limit might be, or honestly what the purpose of the boundary is, but bumping it by one or some still safe margin would, I think, do the trick for this library.

The boundary is there because there were times in the past that reading the binary stub file became misaligned and so it was reading garbage data. Catching it early with a limit caught those bugs earlier before they caused mystery bugs later due to funky stubs loaded from that stub file.

@cforcey
Copy link
Author

cforcey commented Jun 1, 2022

Catching it early with a limit caught those bugs earlier before they caused mystery bugs later due to funky stubs loaded from that stub file.

So appreciate the context!

@KronicDeth KronicDeth self-assigned this Jun 17, 2022
@KronicDeth KronicDeth added this to the 13.1.1 milestone Jun 17, 2022
KronicDeth added a commit that referenced this issue Jun 17, 2022
Fixes #2698

Increased to cover the 15 impls of String.Chars in the geo hex package.
KronicDeth added a commit that referenced this issue Jun 17, 2022
Fixes #2698

Increased to cover the 15 impls of String.Chars in the geo hex package.
KronicDeth added a commit that referenced this issue Jun 17, 2022
Fixes #2698

Increased to cover the 15 impls of String.Chars in the geo hex package.
@cforcey
Copy link
Author

cforcey commented Jun 22, 2022

Thank you so much!!!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants