Status Update
Comments
ra...@google.com <ra...@google.com>
sp...@google.com <sp...@google.com>
sp...@google.com <sp...@google.com> #2
za...@gmail.com <za...@gmail.com> #3
From the log:
2024-08-23 08:24:16,009 [70180461] INFO - sun.awt.AWTThreading - InvocationEvent has timed out (awaiting 2000 ms). Originated at java.desktop/sun.lwawt.macosx.CAccessibility.getAccessibleRole(Unknown Source)
2024-08-23 08:24:16,423 [70180875] WARN - #c.i.d.PerformanceWatcherImpl - UI was frozen for 7314ms, details saved to /Users/bhergert/Library/Logs/Google/AndroidStudio2024.1/threadDumps-freeze-20240823-082414-AI-241.18034.62.2412.12169539-ComponentManagerImpl$getComponentAdapter$1.invoke-7sec
2024-08-23 08:24:21,005 [70185457] INFO - sun.awt.AWTThreading - InvocationEvent has timed out (awaiting 1023 ms). Originated at java.desktop/sun.lwawt.macosx.CAccessibility.accessibilityHitTest(Unknown Source)
2024-08-23 08:24:23,000 [70187452] INFO - sun.awt.AWTThreading - InvocationEvent has timed out (awaiting 1995 ms). Originated at java.desktop/sun.lwawt.macosx.CAccessibility.getAccessibleRole(Unknown Source)
2024-08-23 08:24:25,005 [70189457] INFO - sun.awt.AWTThreading - InvocationEvent has timed out (awaiting 2002 ms). Originated at java.desktop/sun.lwawt.macosx.CAccessibility.accessibilityHitTest(Unknown Source)
2024-08-23 08:24:25,256 [70189708] WARN - #c.i.d.PerformanceWatcherImpl - UI was frozen for 8741ms, details saved to /Users/bhergert/Library/Logs/Google/AndroidStudio2024.1/threadDumps-freeze-20240823-082421-AI-241.18034.62.2412.12169539-AndroidPsiTreeChangeListener.computeModulesToInvalidateAttributeDefinitions-8sec
2024-08-23 08:24:28,006 [70192458] INFO - sun.awt.AWTThreading - InvocationEvent has timed out (awaiting 1245 ms). Originated at java.desktop/sun.lwawt.macosx.CAccessibility.accessibilityHitTest(Unknown Source)
2024-08-23 08:24:30,003 [70194455] INFO - sun.awt.AWTThreading - InvocationEvent has timed out (awaiting 1997 ms). Originated at java.desktop/sun.lwawt.macosx.CAccessibility.getAccessibleRole(Unknown Source)
2024-08-23 08:24:32,004 [70196456] INFO - sun.awt.AWTThreading - InvocationEvent has timed out (awaiting 1999 ms). Originated at java.desktop/sun.lwawt.macosx.CAccessibility.accessibilityHitTest(Unknown Source)
2024-08-23 08:24:33,614 [70198066] WARN - #c.i.d.PerformanceWatcherImpl - UI was frozen for 8220ms, details saved to /Users/bhergert/Library/Logs/Google/AndroidStudio2024.1/threadDumps-freeze-20240823-082430-AI-241.18034.62.2412.12169539-HashMap.putVal-8sec
Do you still have the thread dumps in ~/Library/Logs/Google/AndroidStudio2024.1/
? If yes, can you please attach them?
Also, do you have any accessibility features enabled? Because I see various calls to java.desktop/sun.lwawt.macosx.CAccessibility
flagged for timeouts.
sp...@google.com <sp...@google.com> #4
za...@gmail.com <za...@gmail.com> #5
I checked under Settings > Appearance > Accessibility and nothing is enabled. Is there anywhere else I should check?
za...@gmail.com <za...@gmail.com> #6
I'm not sure, I just can't get to reach the CAccessibility.accessibilityHitTest
method (running under a debugger). But in any case, it doesn't seem like it is causing the freeze, quite the opposite: it's giving up posting the AWT event because the UI is frozen.
All three freeze reports point to similar stacks in the AWT thread:
at java.base@17.0.11/java.util.HashSet.add(Unknown Source)
at com.intellij.util.graph.impl.GraphAlgorithmsImpl.collectOutsRecursively(GraphAlgorithmsImpl.java:141)
at org.jetbrains.android.util.AndroidUtils.getSetWithBackwardDependencies(AndroidUtils.java:603)
at com.android.tools.idea.res.AndroidPsiTreeChangeListener.computeModulesToInvalidateAttributeDefinitions(AndroidPsiTreeChangeListener.kt:228)
at com.android.tools.idea.res.AndroidPsiTreeChangeListener.childrenChanged(AndroidPsiTreeChangeListener.kt:151)
at com.intellij.psi.impl.PsiManagerImpl.notifyPsiTreeChangeListener(PsiManagerImpl.java:414)
at com.intellij.psi.impl.PsiManagerImpl.fireEvent(PsiManagerImpl.java:357)
at com.intellij.psi.impl.PsiManagerImpl.childrenChanged(PsiManagerImpl.java:306)
at com.intellij.pom.tree.events.impl.ChangeInfoImpl.childrenChanged(ChangeInfoImpl.java:122)
at com.intellij.pom.tree.events.impl.ChangeInfoImpl.fireEvent(ChangeInfoImpl.java:72)
at com.intellij.pom.tree.events.impl.TreeChangeImpl.fireEvents(TreeChangeImpl.java:143)
at com.intellij.pom.tree.events.impl.TreeChangeEventImpl.fireEvents(TreeChangeEventImpl.java:130)
at com.intellij.pom.wrappers.PsiEventWrapperAspect.update(PsiEventWrapperAspect.java:32)
at com.intellij.pom.core.impl.PomModelImpl.updateDependentAspects(PomModelImpl.java:167)
[...]
(corresponding internal
There were two more freeze reports in the attached archive (thanks!) which point to
za...@gmail.com <za...@gmail.com> #8
sp...@google.com <sp...@google.com> #9
Thank you for your patience while our engineering team worked to resolve this issue. A fix for this issue is now available in:
- Android Studio Ladybug Feature Drop | 2024.2.2 Canary 3
- Android Gradle Plugin 8.8.0-alpha03
We encourage you to try the latest update.
If you notice further issues or have questions, please file a new bug report.
Thank you for taking the time to submit feedback — we really appreciate it!
an...@google.com <an...@google.com> #10
Thank you for your patience while our engineering team worked to resolve this issue. A fix for this issue is now available in:
- Android Studio Ladybug Feature Drop | 2024.2.2 Canary 2
- Android Gradle Plugin 8.8.0-alpha02
We encourage you to try the latest update.
If you notice further issues or have questions, please file a new bug report.
Thank you for taking the time to submit feedback — we really appreciate it!
ju...@yahooinc.com <ju...@yahooinc.com> #11
sp...@google.com <sp...@google.com> #12
Was a resolution ever found to the MissingValueException? I am seeing the same issue
Not that I know of.
Are you hitting that after trying the workaround from #4?
If so, does using AGP 8.8.0-alpha02 or newer fix the original problem for you?
ju...@yahooinc.com <ju...@yahooinc.com> #13
Are you hitting that after trying the workaround from #4?
No, I am seeing the issue from #8 without having hit the original issue. I've been attempting to debug myself, but as the original reporter said, it can be frustrating to debug configuration internals in gradle.
However I have managed to work around it. As the original reporter said, I believe there is somewhere where AGP is setting a provider value on kapt stub gen KotlinCompile tasks with
I acknowledge that you were unable to find a location where this occurs, so possible this is being performed in kapt library. But the project I am working on uses freeCompilerArgs minimally, and I don't believe we are causing this ourselves.
Avoid the e via the following setup in the applicable areas where freeCompilerArgs are being set (simplified for sharing purposes):
android {
kotlin {
compilerOptions {
jvmTarget.set(JvmTarget.JVM_17)
try {
freeCompilerArgs.appendAll(
"-opt-in=kotlin.RequiresOptIn",
"-opt-in=kotlinx.coroutines.ExperimentalCoroutinesApi",
)
} catch (e: MissingValueException) {
freeCompilerArgs.set(mutableListOf())
freeCompilerArgs.appendAll(
"-opt-in=kotlin.RequiresOptIn",
"-opt-in=kotlinx.coroutines.ExperimentalCoroutinesApi",
)
}
}
}
}
sp...@google.com <sp...@google.com> #14
Thanks for the info!
If you use AGP 8.8.0-alpha02 or newer, do you still need the workaround in #13?
ju...@yahooinc.com <ju...@yahooinc.com> #15
sp...@google.com <sp...@google.com> #16
Thanks for the info. Any chance you can create a repro project hitting the MissingValueException
? I wasn't able to repro it on my side previously.
ju...@yahooinc.com <ju...@yahooinc.com> #17
Any chance you can create a repro project hitting the MissingValueException? I wasn't able to repro it on my side previously.
Apologies, this would not be something I would have the chance to do with my current workload.
I did note though, that when swapping freeCompilerArgs.append/appendAll
for freeCompilerArgs.add/addAll
the failure re-emerged. This is of interest to me since append* gets removed in Gradle 8.8:
ju...@yahooinc.com <ju...@yahooinc.com> #18
Update:
The issue did lie in our usage of freeCompilerArgs
. Traced the issue back to the following format in root build.gradle.kts
. This setup had worked prior to upgrading to 2.0.0. Was able to work around the issue once I was aware of what caused it.
subprojects {
tasks.withType<org.jetbrains.kotlin.gradle.tasks.KotlinCompile>().configureEach {
compilerOptions {
freeCompilerArgs.add(*any arg here*)
}
}
}
You should be able to reproduce now with this setup in any project.
sp...@google.com <sp...@google.com> #19
Thanks for the update! I filed
Description
I've been trying out kotlin test fixtures in AGP 8.5 was surprised to find that classes compiled by these tasks were using the jvm-target of our running JDK (22) in our case, and not the one our convention plugin sets for all KotlinCompile tasks (17).
After some digging and disallowChanges use to track down who was overriding this, it looks like AGP sources kotlinOptions from
android.kotlinOptions
? tbh I didn't realize this DSL still existed, and kinda wonder why. Is this intentional? Confirmed that if I manually set these values separately, it works as expected.Could these be deduped (or at least source from the same convention as other KGP tasks?). The reason I ask is because this means to use testFixtures, our convention plugin would have to add a separate, somewhat duplicate code path to configure kotlin options just for AGP test fixtures that uses legacy APIs (i.e.
kotlinOptions
and not the new property-basedcompilerOptions
).