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

Instrumentation fails with thread death exception on SparseImmutableTable class #131

Open
EgorkaKulikov opened this issue Nov 22, 2023 · 0 comments
Assignees
Labels
bug Something isn't working

Comments

@EgorkaKulikov
Copy link
Collaborator

Run ContestEstimator with the following settings:

timeLimit = 120
methodFilter = "com.google.common.collect.SparseImmutableTable.*"
projectFilter = listOf("guava")

There are no generated executions because instrumentation failed with a thread death.
NOTE that actual problem is not in thread death itself. but that instrumentation works much longer that it's timeout.

ERROR | executor.execute((id:21)com.google.common.collect.SparseImmutableTable#getValue(int)) failed
com.google.common.util.concurrent.ExecutionError: java.lang.ThreadDeath
	at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2084) ~[guava-32.1.2-jre.jar:?]
	at com.google.common.cache.LocalCache.get(LocalCache.java:4012) ~[guava-32.1.2-jre.jar:?]
	at com.google.common.cache.LocalCache$LocalManualCache.get(LocalCache.java:4922) ~[guava-32.1.2-jre.jar:?]
	at org.jacodb.impl.storage.AbstractJcDatabasePersistenceImpl.findBytecode(AbstractJcDatabasePersistenceImpl.kt:86) ~[jacodb-core-1.4.1.jar:1.4.1]
	at org.jacodb.impl.fs.PersistenceClassSource$byteCode$2.invoke(ClassSource.kt:60) ~[jacodb-core-1.4.1.jar:1.4.1]
	at org.jacodb.impl.fs.PersistenceClassSource$byteCode$2.invoke(ClassSource.kt:59) ~[jacodb-core-1.4.1.jar:1.4.1]
	at kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:74) ~[kotlin-stdlib-1.8.22.jar:1.8.22-release-407(1.8.22)]
	at org.jacodb.impl.fs.PersistenceClassSource.getByteCode(ClassSource.kt:59) ~[jacodb-core-1.4.1.jar:1.4.1]
	at org.jacodb.impl.fs.ByteCodeConverterKt.newClassNode(ByteCodeConverter.kt:172) ~[jacodb-core-1.4.1.jar:1.4.1]
	at org.jacodb.impl.fs.ByteCodeConverterKt.getInfo(ByteCodeConverter.kt:153) ~[jacodb-core-1.4.1.jar:1.4.1]
	at org.jacodb.impl.bytecode.JcClassOrInterfaceImpl$info$2.invoke(JcClassOrInterfaceImpl.kt:59) ~[jacodb-core-1.4.1.jar:1.4.1]
	at org.jacodb.impl.bytecode.JcClassOrInterfaceImpl$info$2.invoke(JcClassOrInterfaceImpl.kt:59) ~[jacodb-core-1.4.1.jar:1.4.1]
	at kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:74) ~[kotlin-stdlib-1.8.22.jar:1.8.22-release-407(1.8.22)]
	at org.jacodb.impl.bytecode.JcClassOrInterfaceImpl.getInfo(JcClassOrInterfaceImpl.kt:59) ~[jacodb-core-1.4.1.jar:1.4.1]
	at org.jacodb.impl.bytecode.JcClassOrInterfaceImpl.getOuterClass(JcClassOrInterfaceImpl.kt:88) ~[jacodb-core-1.4.1.jar:1.4.1]
	at org.jacodb.impl.JcClasspathImpl.typeOf(JcClasspathImpl.kt:78) ~[jacodb-core-1.4.1.jar:1.4.1]
	at org.jacodb.api.JcClasspath.typeOf$default(JcClasspath.kt:66) ~[jacodb-api-1.4.1.jar:1.4.1]
	at org.jacodb.api.ext.JcClasses.toType(JcClasses.kt:50) ~[jacodb-api-1.4.1.jar:1.4.1]
	at org.usvm.machine.JcTypeSystem$findSubtypes$2.invoke(JcTypeSystem.kt:106) ~[usvm-jvm-comp-231122-1058.jar:?]
	at org.usvm.machine.JcTypeSystem$findSubtypes$2.invoke(JcTypeSystem.kt:106) ~[usvm-jvm-comp-231122-1058.jar:?]
	at kotlin.sequences.TransformingSequence$iterator$1.next(Sequences.kt:210) ~[kotlin-stdlib-1.8.22.jar:1.8.22-release-407(1.8.22)]
	at kotlin.sequences.TransformingSequence$iterator$1.next(Sequences.kt:210) ~[kotlin-stdlib-1.8.22.jar:1.8.22-release-407(1.8.22)]
	at kotlin.sequences.TransformingSequence$iterator$1.next(Sequences.kt:210) ~[kotlin-stdlib-1.8.22.jar:1.8.22-release-407(1.8.22)]
	at kotlin.sequences.TransformingSequence$iterator$1.next(Sequences.kt:210) ~[kotlin-stdlib-1.8.22.jar:1.8.22-release-407(1.8.22)]
	at kotlin.sequences.TransformingSequence$iterator$1.next(Sequences.kt:210) ~[kotlin-stdlib-1.8.22.jar:1.8.22-release-407(1.8.22)]
	at org.usvm.algorithms.DfsIterator.calcNext(GraphIterators.kt:57) ~[usvm-util-comp-231122-1058.jar:?]
	at org.usvm.algorithms.GraphIterator.hasNext(GraphIterators.kt:17) ~[usvm-util-comp-231122-1058.jar:?]
	at org.usvm.algorithms.CachingSequence$CachingIterator.hasNext(CachingSequence.kt:30) ~[usvm-util-comp-231122-1058.jar:?]
	at kotlin.sequences.FilteringSequence$iterator$1.calcNext(Sequences.kt:169) ~[kotlin-stdlib-1.8.22.jar:1.8.22-release-407(1.8.22)]
	at kotlin.sequences.FilteringSequence$iterator$1.hasNext(Sequences.kt:194) ~[kotlin-stdlib-1.8.22.jar:1.8.22-release-407(1.8.22)]
	at org.usvm.algorithms.CachingSequence$CachingIterator.hasNext(CachingSequence.kt:30) ~[usvm-util-comp-231122-1058.jar:?]
	at kotlin.sequences.FilteringSequence$iterator$1.calcNext(Sequences.kt:169) ~[kotlin-stdlib-1.8.22.jar:1.8.22-release-407(1.8.22)]
	at kotlin.sequences.FilteringSequence$iterator$1.hasNext(Sequences.kt:194) ~[kotlin-stdlib-1.8.22.jar:1.8.22-release-407(1.8.22)]
	at org.usvm.algorithms.CachingSequence$CachingIterator.hasNext(CachingSequence.kt:30) ~[usvm-util-comp-231122-1058.jar:?]
	at org.usvm.util.TimeLimitedIterator.hasNext(TimeLimitedIterator.kt:17) ~[usvm-util-comp-231122-1058.jar:?]
	at org.usvm.types.USupportTypeStream.take(SupportTypeStream.kt:92) ~[usvm-core-comp-231122-1058.jar:?]
	at org.usvm.types.TypeStreamKt.firstOrNull(TypeStream.kt:121) ~[usvm-core-comp-231122-1058.jar:?]
	at org.utbot.contest.usvm.jc.JcTestExecutor$MemoryScope.resolveReference(JcTestExecutor.kt:185) ~[main/:?]
	at org.utbot.contest.usvm.jc.JcTestExecutor$MemoryScope.resolveExpr(JcTestExecutor.kt:118) ~[main/:?]
	at org.utbot.contest.usvm.jc.JcTestExecutor$MemoryScope.resolveLValue(JcTestExecutor.kt:112) ~[main/:?]
	at org.utbot.contest.usvm.jc.JcTestExecutor$MemoryScope.resolveArray$resolveElement(JcTestExecutor.kt:218) ~[main/:?]
	at org.utbot.contest.usvm.jc.JcTestExecutor$MemoryScope.resolveArray(JcTestExecutor.kt:225) ~[main/:?]
	at org.utbot.contest.usvm.jc.JcTestExecutor$MemoryScope.resolveReference(JcTestExecutor.kt:193) ~[main/:?]
	at org.utbot.contest.usvm.jc.JcTestExecutor$MemoryScope.resolveExpr(JcTestExecutor.kt:118) ~[main/:?]
	at org.utbot.contest.usvm.jc.JcTestExecutor$MemoryScope.resolveLValue(JcTestExecutor.kt:112) ~[main/:?]
	at org.utbot.contest.usvm.jc.JcTestExecutor$MemoryScope.resolveArray$resolveElement(JcTestExecutor.kt:218) ~[main/:?]
	at org.utbot.contest.usvm.jc.JcTestExecutor$MemoryScope.resolveArray(JcTestExecutor.kt:225) ~[main/:?]
	at org.utbot.contest.usvm.jc.JcTestExecutor$MemoryScope.resolveReference(JcTestExecutor.kt:193) ~[main/:?]
	at org.utbot.contest.usvm.jc.JcTestExecutor$MemoryScope.resolveExpr(JcTestExecutor.kt:118) ~[main/:?]
	at org.utbot.contest.usvm.jc.JcTestExecutor$MemoryScope.resolveLValue(JcTestExecutor.kt:112) ~[main/:?]
	at org.utbot.contest.usvm.jc.JcTestExecutor$MemoryScope.resolveObject(JcTestExecutor.kt:272) ~[main/:?]
	at org.utbot.contest.usvm.jc.JcTestExecutor$MemoryScope.resolveReference(JcTestExecutor.kt:194) ~[main/:?]
	at org.utbot.contest.usvm.jc.JcTestExecutor$MemoryScope.resolveExpr(JcTestExecutor.kt:118) ~[main/:?]
	at org.utbot.contest.usvm.jc.JcTestExecutor$MemoryScope.resolveLValue(JcTestExecutor.kt:112) ~[main/:?]
	at org.utbot.contest.usvm.jc.JcTestExecutor$MemoryScope.resolveObject(JcTestExecutor.kt:272) ~[main/:?]
	at org.utbot.contest.usvm.jc.JcTestExecutor$MemoryScope.resolveReference(JcTestExecutor.kt:194) ~[main/:?]
	at org.utbot.contest.usvm.jc.JcTestExecutor$MemoryScope.resolveExpr(JcTestExecutor.kt:118) ~[main/:?]
	at org.utbot.contest.usvm.jc.JcTestExecutor$MemoryScope.resolveLValue(JcTestExecutor.kt:112) ~[main/:?]
	at org.utbot.contest.usvm.jc.JcTestExecutor$MemoryScope.resolveObject(JcTestExecutor.kt:272) ~[main/:?]
	at org.utbot.contest.usvm.jc.JcTestExecutor$MemoryScope.resolveReference(JcTestExecutor.kt:194) ~[main/:?]
	at org.utbot.contest.usvm.jc.JcTestExecutor$MemoryScope.resolveExpr(JcTestExecutor.kt:118) ~[main/:?]
	at org.utbot.contest.usvm.jc.JcTestExecutor$MemoryScope.resolveLValue(JcTestExecutor.kt:112) ~[main/:?]
	at org.utbot.contest.usvm.jc.JcTestExecutor$MemoryScope.resolveObject(JcTestExecutor.kt:272) ~[main/:?]
	at org.utbot.contest.usvm.jc.JcTestExecutor$MemoryScope.resolveReference(JcTestExecutor.kt:194) ~[main/:?]
	at org.utbot.contest.usvm.jc.JcTestExecutor$MemoryScope.resolveExpr(JcTestExecutor.kt:118) ~[main/:?]
	at org.utbot.contest.usvm.jc.JcTestExecutor$MemoryScope.resolveLValue(JcTestExecutor.kt:112) ~[main/:?]
	at org.utbot.contest.usvm.jc.JcTestExecutor$MemoryScope.createUTest(JcTestExecutor.kt:90) ~[main/:?]
	at org.utbot.contest.usvm.jc.JcTestExecutor.execute(JcTestExecutor.kt:55) ~[main/:?]
	at org.utbot.contest.usvm.ContestUsvmKt$runUsvmGeneration$1$9$5.invoke(ContestUsvm.kt:173) [main/:?]
	at org.utbot.contest.usvm.ContestUsvmKt$runUsvmGeneration$1$9$5.invoke(ContestUsvm.kt:166) [main/:?]
	at org.utbot.contest.usvm.ContestUsvmKt$analyzeAsync$1$1$1.addState(ContestUsvm.kt:273) [main/:?]
	at org.utbot.contest.usvm.ContestUsvmKt$analyzeAsync$1$1$1.addState(ContestUsvm.kt:267) [main/:?]
	at org.usvm.statistics.collectors.CoveredNewStatesCollector.onStateTerminated(CoveredNewStatesCollector.kt:26) [usvm-core-comp-231122-1058.jar:?]
	at org.usvm.statistics.CompositeUMachineObserver.onStateTerminated(UMachineObserver.kt:48) [usvm-core-comp-231122-1058.jar:?]
	at org.usvm.UMachine.run(Machine.kt:66) [usvm-core-comp-231122-1058.jar:?]
	at org.usvm.machine.JcMachine.analyze(JcMachine.kt:191) [usvm-jvm-comp-231122-1058.jar:?]
	at org.utbot.contest.usvm.ContestUsvmKt$analyzeAsync$1.invoke(ContestUsvm.kt:265) [main/:?]
	at org.utbot.contest.usvm.ContestUsvmKt$analyzeAsync$1.invoke(ContestUsvm.kt:263) [main/:?]
	at org.utbot.common.ThreadBasedExecutor$invokeWithTimeout$1.invoke(ThreadUtil.kt:75) [utbot-core-2023.11-SNAPSHOT.jar:?]
	at org.utbot.common.ThreadBasedExecutor$ensureThreadIsAlive$1.invoke(ThreadUtil.kt:129) [utbot-core-2023.11-SNAPSHOT.jar:?]
	at org.utbot.common.ThreadBasedExecutor$ensureThreadIsAlive$1.invoke(ThreadUtil.kt:125) [utbot-core-2023.11-SNAPSHOT.jar:?]
	at kotlin.concurrent.ThreadsKt$thread$thread$1.run(Thread.kt:30) [kotlin-stdlib-1.8.22.jar:1.8.22-release-407(1.8.22)]
Caused by: java.lang.ThreadDeath
	at java.lang.Thread.stop(Thread.java:858) ~[?:1.8.0_382]
	at org.utbot.common.ThreadBasedExecutor.invokeWithTimeout-rL6R5X8(ThreadUtil.kt:100) ~[utbot-core-2023.11-SNAPSHOT.jar:?]
	at org.utbot.common.ThreadBasedExecutor.invokeWithTimeout-rL6R5X8$default(ThreadUtil.kt:64) ~[utbot-core-2023.11-SNAPSHOT.jar:?]
	at org.utbot.contest.usvm.ContestUsvmKt.analyzeAsync(ContestUsvm.kt:263) ~[main/:?]
	at org.utbot.contest.usvm.ContestUsvmKt$runUsvmGeneration$1.invokeSuspend(ContestUsvm.kt:166) ~[main/:?]
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33) ~[kotlin-stdlib-1.8.22.jar:1.8.22-release-407(1.8.22)]
	at kotlinx.coroutines.DispatchedTaskKt.resume(DispatchedTask.kt:234) ~[kotlinx-coroutines-core-jvm-1.6.4.jar:?]
	at kotlinx.coroutines.DispatchedTaskKt.dispatch(DispatchedTask.kt:166) ~[kotlinx-coroutines-core-jvm-1.6.4.jar:?]
	at kotlinx.coroutines.CancellableContinuationImpl.dispatchResume(CancellableContinuationImpl.kt:397) ~[kotlinx-coroutines-core-jvm-1.6.4.jar:?]
	at kotlinx.coroutines.CancellableContinuationImpl.resumeImpl(CancellableContinuationImpl.kt:431) ~[kotlinx-coroutines-core-jvm-1.6.4.jar:?]
	at kotlinx.coroutines.CancellableContinuationImpl.resumeImpl$default(CancellableContinuationImpl.kt:420) ~[kotlinx-coroutines-core-jvm-1.6.4.jar:?]
	at kotlinx.coroutines.CancellableContinuationImpl.resumeUndispatched(CancellableContinuationImpl.kt:518) ~[kotlinx-coroutines-core-jvm-1.6.4.jar:?]
	at kotlinx.coroutines.EventLoopImplBase$DelayedResumeTask.run(EventLoop.common.kt:500) ~[kotlinx-coroutines-core-jvm-1.6.4.jar:?]
	at kotlinx.coroutines.EventLoopImplBase.processNextEvent(EventLoop.common.kt:284) ~[kotlinx-coroutines-core-jvm-1.6.4.jar:?]
	at kotlinx.coroutines.BlockingCoroutine.joinBlocking(Builders.kt:85) ~[kotlinx-coroutines-core-jvm-1.6.4.jar:?]
	at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking(Builders.kt:59) ~[kotlinx-coroutines-core-jvm-1.6.4.jar:?]
	at kotlinx.coroutines.BuildersKt.runBlocking(Unknown Source) ~[kotlinx-coroutines-core-jvm-1.6.4.jar:?]
	at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking$default(Builders.kt:38) ~[kotlinx-coroutines-core-jvm-1.6.4.jar:?]
	at kotlinx.coroutines.BuildersKt.runBlocking$default(Unknown Source) ~[kotlinx-coroutines-core-jvm-1.6.4.jar:?]
	at org.utbot.contest.usvm.ContestUsvmKt.runUsvmGeneration(ContestUsvm.kt:66) ~[main/:?]
	at org.utbot.contest.Tool$USVM.runGeneration(ContestEstimator.kt:257) ~[main/:?]
	at org.utbot.contest.Tool$UtBotBasedTool.run(ContestEstimator.kt:156) ~[main/:?]
	at org.utbot.contest.ContestEstimatorKt.runEstimator(ContestEstimator.kt:549) ~[main/:?]
	at org.utbot.contest.ContestEstimatorKt.main(ContestEstimator.kt:425) ~[main/:?]
@EgorkaKulikov EgorkaKulikov added the bug Something isn't working label Nov 22, 2023
@Damtev Damtev assigned Damtev and unassigned DaniilStepanov Nov 22, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

3 participants