I'm also still having problems with <https://githu...
# ksp
r
I'm also still having problems with https://github.com/google/ksp/issues/1854 after upgrading to 1.0.27, when I try to use my processor in a project together with koin-annotations processor.
The stacktrace contains some Koin classes:
Copy code
Caused by: ksp.org.jetbrains.kotlin.analysis.api.lifetime.KaInvalidLifetimeOwnerAccessException: Access to invalid ksp.org.jetbrains.kotlin.analysis.api.platform.lifetime.KotlinAlwaysAccessibleLifetimeToken@6022cf20: PSI has changed since creation
        at ksp.org.jetbrains.kotlin.analysis.api.fir.annotations.KaFirAnnotationListForDeclaration.iterator(KaFirAnnotationListForDeclaration.kt:138)
        at com.google.devtools.ksp.impl.symbol.kotlin.UtilKt$annotations$3$1.invoke(util.kt:942)
        at com.google.devtools.ksp.impl.symbol.kotlin.UtilKt$annotations$3$1.invoke(util.kt:366)
        at com.google.devtools.ksp.impl.symbol.kotlin.KSAnnotationImpl$annotationApplication$2.invoke(KSAnnotationImpl.kt:55)
        at com.google.devtools.ksp.impl.symbol.kotlin.KSAnnotationImpl$annotationApplication$2.invoke(KSAnnotationImpl.kt:54)
        at kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:83)
        at com.google.devtools.ksp.impl.symbol.kotlin.KSAnnotationImpl.getAnnotationApplication(KSAnnotationImpl.kt:54)
        at com.google.devtools.ksp.impl.symbol.kotlin.KSAnnotationImpl.access$getAnnotationApplication(KSAnnotationImpl.kt:38)
        at com.google.devtools.ksp.impl.symbol.kotlin.KSAnnotationImpl$arguments$2.invoke(KSAnnotationImpl.kt:70)
        at com.google.devtools.ksp.impl.symbol.kotlin.KSAnnotationImpl$arguments$2.invoke(KSAnnotationImpl.kt:69)
        at kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:83)
        at com.google.devtools.ksp.impl.symbol.kotlin.KSAnnotationImpl.getArguments(KSAnnotationImpl.kt:69)
        at org.koin.compiler.metadata.AnnotationMetadataKt.includedModules(AnnotationMetadata.kt:81)
        at org.koin.compiler.scanner.ModuleScanner.getIncludedModules(ModuleScanner.kt:69)
        at org.koin.compiler.scanner.ModuleScanner.createClassModule(ModuleScanner.kt:32)
        at org.koin.compiler.scanner.KoinMetaDataScanner.scanClassModules(KoinMetaDataScanner.kt:130)
        at org.koin.compiler.scanner.KoinMetaDataScanner.scanKoinModules(KoinMetaDataScanner.kt:76)
        at org.koin.compiler.BuilderProcessor.process(BuilderProcessor.kt:57)
        at com.google.devtools.ksp.impl.KotlinSymbolProcessing$execute$1$1.invoke(KotlinSymbolProcessing.kt:552)
        at com.google.devtools.ksp.impl.KotlinSymbolProcessing$execute$1$1.invoke(KotlinSymbolProcessing.kt:550)
        at ksp.com.google.devtools.ksp.common.IncrementalContextBase.closeFilesOnException(IncrementalContextBase.kt:409)
        at com.google.devtools.ksp.impl.KotlinSymbolProcessing.execute(KotlinSymbolProcessing.kt:550)
        at com.google.devtools.ksp.impl.KSPLoader$Companion.loadAndRunKSP(KSPLoader.kt:37)
        at com.google.devtools.ksp.impl.KSPLoader.loadAndRunKSP(KSPLoader.kt)
Is this a Koin issue or still a KSP issue?
This is also on KSP2 (KSP1 works without problems)
It's already reported in koin-annotations project https://github.com/InsertKoinIO/koin-annotations/issues/132
t
It's hard to say whether it's KSP's caching bug or Koin accidentally used the elements from previous rounds without using a debugger to see where and when the out-dated element was obtained. Can you share a repro project? Alternatively, if you'd like to investigate, try breaking at
Copy code
com.google.devtools.ksp.impl.symbol.kotlin.KSAnnotationImpl$annotationApplication$2.invoke(KSAnnotationImpl.kt:54)
and see which object is offending. The last stop before the exception is the offending one. Once you know the offending object, try breaking at the following to see how it is created.
Copy code
com.google.devtools.ksp.impl.symbol.kotlin.UtilKt$annotations$3$1.invoke(util.kt:366)