Fixed
Status Update
Comments
ze...@google.com <ze...@google.com> #2
I gather that by not reproducible, you can't reliably get the same error again?
retraced at 2.0.74:
~/.gradle/caches/transforms-2/files-2.1/99a06b4b028d9265de10c97aa4597a8e/jetified-kotlin-reflect-1.3.72.jar: R8: com.android.tools.r8.errors.CompilationError
at com.android.tools.r8.utils.ExceptionUtils.withOriginAttachmentHandler(ExceptionUtils.java:145)
at com.android.tools.r8.ir.conversion.IRConverter.rewriteCode(IRConverter.java:1068)
at com.android.tools.r8.ir.conversion.IRConverter.processMethod(IRConverter.java:1050)
at com.android.tools.r8.ir.conversion.IRConverter.lambda$optimize$4(IRConverter.java:672)
at com.android.tools.r8.utils.ThreadUtils.lambda$processItems$0(ThreadUtils.java:25)
at java.base/java.util.concurrent.ForkJoinTask$AdaptedCallable.exec(ForkJoinTask.java:1448)
at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:290)
at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1020)
at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1656)
at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1594)
at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:177)
Suppressed: java.util.concurrent.ExecutionException: com.android.tools.r8.errors.CompilationError
at java.base/java.util.concurrent.ForkJoinTask.get(ForkJoinTask.java:1006)
at com.android.tools.r8.utils.ThreadUtils.awaitFutures(ThreadUtils.java:37)
at com.android.tools.r8.utils.ThreadUtils.processItems(ThreadUtils.java:29)
at com.android.tools.r8.ir.conversion.PrimaryMethodProcessor.forEachMethod(PrimaryMethodProcessor.java:147)
at com.android.tools.r8.ir.conversion.IRConverter.optimize(IRConverter.java:671)
at com.android.tools.r8.R8.run(R8.java:514)
at com.android.tools.r8.R8.run(R8.java:242)
at com.android.tools.r8.R8.lambda$runForTesting$1(R8.java:233)
at com.android.tools.r8.utils.ExceptionUtils.withCompilationHandler(ExceptionUtils.java:69)
at com.android.tools.r8.utils.ExceptionUtils.withR8CompilationHandler(ExceptionUtils.java:57)
at com.android.tools.r8.R8.runForTesting(R8.java:229)
at com.android.tools.r8.R8.run(R8.java:164)
at com.android.builder.dexing.R8Tool.runR8(r8Tool.kt:247)
<snip>
[CIRCULAR REFERENCE:com.android.tools.r8.errors.a]
Caused by: java.util.ConcurrentModificationException
at java.base/java.util.TreeMap$PrivateEntryIterator.nextEntry(TreeMap.java:1208)
at java.base/java.util.TreeMap$KeyIterator.next(TreeMap.java:1262)
at com.android.tools.r8.graph.AppInfoWithSubtyping.computeMayHaveFinalizeMethodDirectlyOrIndirectlyIfAbsent(AppInfoWithSubtyping.java:765)
at com.android.tools.r8.graph.AppInfoWithSubtyping.mayHaveFinalizeMethodDirectlyOrIndirectly(AppInfoWithSubtyping.java:733)
at com.android.tools.r8.ir.code.FieldInstruction.isStoringObjectWithFinalizer(FieldInstruction.java:202)
at com.android.tools.r8.ir.code.InstancePut.instructionMayHaveSideEffects(InstancePut.java:114)
at com.android.tools.r8.ir.code.InstancePut.canBeDeadCode(InstancePut.java:129)
at com.android.tools.r8.ir.optimize.DeadCodeRemover.removeDeadInstructions(DeadCodeRemover.java:102)
at com.android.tools.r8.ir.optimize.DeadCodeRemover.run(DeadCodeRemover.java:47)
at com.android.tools.r8.ir.conversion.IRConverter.optimize(IRConverter.java:1291)
at com.android.tools.r8.ir.conversion.IRConverter.rewriteCodeInternal(IRConverter.java:1100)
at com.android.tools.r8.ir.conversion.IRConverter.lambda$rewriteCode$12(IRConverter.java:1072)
at com.android.tools.r8.utils.ExceptionUtils.withOriginAttachmentHandler(ExceptionUtils.java:141)
at com.android.tools.r8.ir.conversion.IRConverter.rewriteCode(IRConverter.java:1068)
... 9 more
retraced at 2.0.74:
~/.gradle/caches/transforms-2/files-2.1/99a06b4b028d9265de10c97aa4597a8e/jetified-kotlin-reflect-1.3.72.jar: R8: com.android.tools.r8.errors.CompilationError
at com.android.tools.r8.utils.ExceptionUtils.withOriginAttachmentHandler(ExceptionUtils.java:145)
at com.android.tools.r8.ir.conversion.IRConverter.rewriteCode(IRConverter.java:1068)
at com.android.tools.r8.ir.conversion.IRConverter.processMethod(IRConverter.java:1050)
at com.android.tools.r8.ir.conversion.IRConverter.lambda$optimize$4(IRConverter.java:672)
at com.android.tools.r8.utils.ThreadUtils.lambda$processItems$0(ThreadUtils.java:25)
at java.base/java.util.concurrent.ForkJoinTask$AdaptedCallable.exec(ForkJoinTask.java:1448)
at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:290)
at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1020)
at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1656)
at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1594)
at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:177)
Suppressed: java.util.concurrent.ExecutionException: com.android.tools.r8.errors.CompilationError
at java.base/java.util.concurrent.ForkJoinTask.get(ForkJoinTask.java:1006)
at com.android.tools.r8.utils.ThreadUtils.awaitFutures(ThreadUtils.java:37)
at com.android.tools.r8.utils.ThreadUtils.processItems(ThreadUtils.java:29)
at com.android.tools.r8.ir.conversion.PrimaryMethodProcessor.forEachMethod(PrimaryMethodProcessor.java:147)
at com.android.tools.r8.ir.conversion.IRConverter.optimize(IRConverter.java:671)
at com.android.tools.r8.R8.run(R8.java:514)
at com.android.tools.r8.R8.run(R8.java:242)
at com.android.tools.r8.R8.lambda$runForTesting$1(R8.java:233)
at com.android.tools.r8.utils.ExceptionUtils.withCompilationHandler(ExceptionUtils.java:69)
at com.android.tools.r8.utils.ExceptionUtils.withR8CompilationHandler(ExceptionUtils.java:57)
at com.android.tools.r8.R8.runForTesting(R8.java:229)
at com.android.tools.r8.R8.run(R8.java:164)
at com.android.builder.dexing.R8Tool.runR8(r8Tool.kt:247)
<snip>
[CIRCULAR REFERENCE:com.android.tools.r8.errors.a]
Caused by: java.util.ConcurrentModificationException
at java.base/java.util.TreeMap$PrivateEntryIterator.nextEntry(TreeMap.java:1208)
at java.base/java.util.TreeMap$KeyIterator.next(TreeMap.java:1262)
at com.android.tools.r8.graph.AppInfoWithSubtyping.computeMayHaveFinalizeMethodDirectlyOrIndirectlyIfAbsent(AppInfoWithSubtyping.java:765)
at com.android.tools.r8.graph.AppInfoWithSubtyping.mayHaveFinalizeMethodDirectlyOrIndirectly(AppInfoWithSubtyping.java:733)
at com.android.tools.r8.ir.code.FieldInstruction.isStoringObjectWithFinalizer(FieldInstruction.java:202)
at com.android.tools.r8.ir.code.InstancePut.instructionMayHaveSideEffects(InstancePut.java:114)
at com.android.tools.r8.ir.code.InstancePut.canBeDeadCode(InstancePut.java:129)
at com.android.tools.r8.ir.optimize.DeadCodeRemover.removeDeadInstructions(DeadCodeRemover.java:102)
at com.android.tools.r8.ir.optimize.DeadCodeRemover.run(DeadCodeRemover.java:47)
at com.android.tools.r8.ir.conversion.IRConverter.optimize(IRConverter.java:1291)
at com.android.tools.r8.ir.conversion.IRConverter.rewriteCodeInternal(IRConverter.java:1100)
at com.android.tools.r8.ir.conversion.IRConverter.lambda$rewriteCode$12(IRConverter.java:1072)
at com.android.tools.r8.utils.ExceptionUtils.withOriginAttachmentHandler(ExceptionUtils.java:141)
at com.android.tools.r8.ir.conversion.IRConverter.rewriteCode(IRConverter.java:1068)
... 9 more
yo...@gmail.com <yo...@gmail.com> #3
Yeah, happened once on a CI build, but passed the next time
ri...@google.com <ri...@google.com>
ap...@google.com <ap...@google.com> #4
Project: r8
Branch: 2.0
commit 8f22291dc66be5e8a603fde5343df520bc638f18
Author: Rico Wind <ricow@google.com>
Date: Thu Jul 09 08:34:34 2020
Version 2.0.95
This is not a cherry pick since this class is no longer available on
master.
Make iteration of directSubtypes thread safe
If we are synthesizing a class and adding it while iterating
the directSubtypes collection we might mutate the collection
concurrently.
Bug: 160769273
Change-Id: I97f1021747b7466df979ad624e38684c3d949aa2
M src/main/java/com/android/tools/r8/Version.java
M src/main/java/com/android/tools/r8/graph/AppInfoWithSubtyping.java
https://r8-review.googlesource.com/52520
Branch: 2.0
commit 8f22291dc66be5e8a603fde5343df520bc638f18
Author: Rico Wind <ricow@google.com>
Date: Thu Jul 09 08:34:34 2020
Version 2.0.95
This is not a cherry pick since this class is no longer available on
master.
Make iteration of directSubtypes thread safe
If we are synthesizing a class and adding it while iterating
the directSubtypes collection we might mutate the collection
concurrently.
Bug: 160769273
Change-Id: I97f1021747b7466df979ad624e38684c3d949aa2
M src/main/java/com/android/tools/r8/Version.java
M src/main/java/com/android/tools/r8/graph/AppInfoWithSubtyping.java
ri...@google.com <ri...@google.com> #5
This is a problem that only exists on the R8 2.0 branch (and earlier) which is what is used for AGP 4.0
I landed a fix on our branch, but this might not make it into any 4.0 release before 4.1 goes stable.
4.1 has a different version of R8 that does not have this issue.
I landed a fix on our branch, but this might not make it into any 4.0 release before 4.1 goes stable.
4.1 has a different version of R8 that does not have this issue.
Description
AGP 4.0.0 JDK 11.0.7 Gradle 6.5
Not reproducible...