Status Update
Comments
je...@google.com <je...@google.com> #2
For Kotlin 2.0 and KSP 2.0 the Cannot change attributes of configuration ':composeApp:debugFrameworkIosX64' after it has been locked for mutation
really seems like a KSP issue. You should file a bug in their repository with a sample app if possible.
If you downgrade to Kotlin 1.9 then things 'should' work, there are example apps out there with such configuration, like the following one:
je...@google.com <je...@google.com> #3
Will try to use the example provided by you to check if it fixes the issue.
je...@google.com <je...@google.com> #4
Note that this issue happens when applying the Compose, KSP and Room Plugin together in Kotlin 2.0.x, the workaround for now is to not use the Room Gradle Plugin and instead specify the schema location vis KSP arguments:
// In the build.gradle
ksp {
arg("room.schemaLocation", "${projectDir}/schemas")
}
ra...@google.com <ra...@google.com> #5
Hi, I encountered a similar problem and was able to resolve it by updating the dependencies
room = "2.7.0-alpha08"
ksp = "2.0.20-1.0.25"
compose-plugin = "1.6.11"
kotlin = "2.0.20"
ap...@google.com <ap...@google.com> #6
Branch: androidx-master-dev
commit e72d230e942687e5d09637c24005a0b2916cdc7c
Author: Jeff Gaston <jeffrygaston@google.com>
Date: Thu Dec 19 18:32:31 2019
Telling Gradle to initially request all of the memory that it will ever request
(only when DIST_DIR is set)
to rule out the possibility that the Gradle daemon might be unable to acquire more memory from the host system in the middle of the build and then crashing with an out-of-memory error.
Also, in cases where Gradle does eventually use as much memory as allowed, this should slightly improve performance.
Bug: 146217083
Test: DIST_DIR=../../out/dist ./gradlew --no-daemon projects # and see that it doesn't take any more time to run with this change vs without
Test: ./gradlew --no-daemon projects
Test: DIST_DIR=../../out/dist ./gradlew --no-daemon --info 2>&1 | grep -i Xmx | head -n 1 | grep Xms
Test: ./gradlew --no-daemon --info 2>&1 | grep -i Xmx | head -n 1 | grep Xms # and see there are no matches
Change-Id: Id6c0c45c375a3f1a836af0d473f9146f3f99d103
M gradle.properties
M gradlew
M ui/gradle.properties
ap...@google.com <ap...@google.com> #7
Branch: androidx-master-dev
commit 142922509089a6c77a00c98d8d05cedd9ea4a603
Author: Jeff Gaston <jeffrygaston@google.com>
Date: Tue Jan 07 11:54:44 2020
Moving org.gradle.jvmargs back into gradle.properties where Studio can find them
Bug: 146217083
Test: DIST_DIR=../../out/dist ./gradlew --no-daemon projects # and see that it doesn't take any more time to run with this change vs without
Test: ./gradlew --no-daemon projects
Test: ./gradlew studio
Change-Id: I451b93441bf89d6e4d0dcf6a2398669d0a640494
M gradle.properties
M gradlew
M ui/gradle.properties
je...@google.com <je...@google.com> #8
which says this:
----- Last 20 lines from daemon log file - daemon-3895.out.log -----
Note: Recompile with -Xlint:deprecation for details.
Note: Some input files use unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
/usr/local/google/buildbot/src/android/androidx-master-dev/out/androidx/benchmark/integration-tests/startup-benchmark/build/intermediates/tmp/manifest/androidTest/release/manifestMerger888282319339507581.xml:32:5-38:19 Warning:
application@android:debuggable was tagged at manifestMerger888282319339507581.xml:32 to replace other declarations but no other declaration present
/usr/local/google/buildbot/src/android/androidx-master-dev/out/androidx/benchmark/integration-tests/dry-run-benchmark/build/intermediates/tmp/manifest/androidTest/release/manifestMerger4233420038045179579.xml:32:5-38:19 Warning:
application@android:debuggable was tagged at manifestMerger4233420038045179579.xml:32 to replace other declarations but no other declaration present
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: /usr/local/google/buildbot/src/android/androidx-master-dev/frameworks/support/lifecycle/integration-tests/testapp/src/main/java/androidx/lifecycle/testapp/FrameworkLifecycleRegistryActivity.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: /usr/local/google/buildbot/src/android/androidx-master-dev/frameworks/support/lifecycle/integration-tests/testapp/src/androidTest/java/androidx/lifecycle/SynchronousActivityLifecycleTest.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: Some input files use unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
Stream closed
----- End of the daemon log -----
je...@google.com <je...@google.com> #9
which says this:
/usr/local/google/buildbot/src/android/androidx-master-dev/frameworks/support/room/integration-tests/noappcompattestapp/src/androidTest/java/androidx/room/integration/noappcompat/BareRelationDatabaseTest.java:98: warning: The return value includes a POJO with a @Relation. It is usually desired to annotate this method with @Transaction to avoid possibility of inconsistent results between the POJO and its relations. See
List<UserAndPet> getUsersWithPet();
^
2 warnings
Stream closed
The message received from the daemon indicates that the daemon has disappeared.
Build request sent: Build{id=6cad0004-a32e-4007-9eb5-255b297bbd9c, currentDir=/usr/local/google/buildbot/src/android/androidx-master-dev}
Attempting to read last messages from the daemon log...
Daemon pid: 8314
log file: /usr/local/google/buildbot/src/android/androidx-master-dev/out/.gradle/daemon/6.1/daemon-8314.out.log
----- Last 20 lines from daemon log file - daemon-8314.out.log -----
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: /usr/local/google/buildbot/src/android/androidx-master-dev/frameworks/support/transition/transition/src/androidTest/java/androidx/transition/TransitionActivity.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: /usr/local/google/buildbot/src/android/androidx-master-dev/frameworks/support/lifecycle/integration-tests/testapp/src/main/java/androidx/lifecycle/testapp/FrameworkLifecycleRegistryActivity.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: Some input files use unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
Note: /usr/local/google/buildbot/src/android/androidx-master-dev/frameworks/support/lifecycle/integration-tests/testapp/src/androidTest/java/androidx/lifecycle/SynchronousActivityLifecycleTest.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
/usr/local/google/buildbot/src/android/androidx-master-dev/frameworks/support/room/integration-tests/noappcompattestapp/src/androidTest/java/androidx/room/integration/noappcompat/BareRelationDatabaseTest.java:95: warning: The return value includes a POJO with a @Relation. It is usually desired to annotate this method with @Transaction to avoid possibility of inconsistent results between the POJO and its relations. See
UserAndPets getUserWithPets(long id);
^
/usr/local/google/buildbot/src/android/androidx-master-dev/frameworks/support/room/integration-tests/noappcompattestapp/src/androidTest/java/androidx/room/integration/noappcompat/BareRelationDatabaseTest.java:98: warning: The return value includes a POJO with a @Relation. It is usually desired to annotate this method with @Transaction to avoid possibility of inconsistent results between the POJO and its relations. See
List<UserAndPet> getUsersWithPet();
^
2 warnings
Stream closed
----- End of the daemon log -----
je...@google.com <je...@google.com> #10
which says this:
DIST_DIR=/buildbot/dist_dirs/aosp-androidx-master-dev-linux-androidx_host_tests/P11716787/0 frameworks/support/busytown/androidx_host_tests.sh
gcc (Ubuntu 4.8.4-2ubuntu1~14.04.4) 4.8.4 Copyright (C) 2013 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
openjdk version "1.8.0_45-internal" OpenJDK Runtime Environment (build 1.8.0_45-internal-b14) OpenJDK 64-Bit Server VM (build 25.45-b02, mixed mode)
aidl E 01-24 23:30:57 58074 58074 aidl.cpp:581] refusing to generate code from aidl file defining parcelable
The message received from the daemon indicates that the daemon has disappeared.
Build request sent: Build{id=a3b590ad-6a71-4ebf-bacd-116b899d30b1, currentDir=/usr/local/google/buildbot/src/android/androidx-master-dev}
Attempting to read last messages from the daemon log...
Daemon pid: 57670
log file: /usr/local/google/buildbot/src/android/androidx-master-dev/out/.gradle/daemon/6.1/daemon-57670.out.log
----- Last 20 lines from daemon log file - daemon-57670.out.log -----
Gradle Test Executor 104 started executing tests.
Note: /usr/local/google/buildbot/src/android/androidx-master-dev/frameworks/support/work/integration-tests/testapp/src/main/java/androidx/work/integration/testapp/sherlockholmes/TextReducingWorker.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
androidx.biometric.DeviceCredentialHandlerBridgeTest > testCallbacks_CanSetAndGet STANDARD_OUT
[Robolectric] androidx.biometric.DeviceCredentialHandlerBridgeTest.testCallbacks_CanSetAndGet: sdk=16; resources=LEGACY
[Robolectric] NOTICE: legacy resources mode is deprecated; see
Stream closed
androidx.biometric.DeviceCredentialHandlerBridgeTest > testIgnoreNextReset_PreventsReset_OnceOnly STANDARD_OUT
[Robolectric] androidx.biometric.DeviceCredentialHandlerBridgeTest.testIgnoreNextReset_PreventsReset_OnceOnly: sdk=16; resources=LEGACY
[Robolectric] NOTICE: legacy resources mode is deprecated; see
androidx.biometric.DeviceCredentialHandlerBridgeTest > testConfirmingDeviceCredential_CanSetAndGet STANDARD_OUT
[Robolectric] androidx.biometric.DeviceCredentialHandlerBridgeTest.testConfirmingDeviceCredential_CanSetAndGet: sdk=16; resources=LEGACY
[Robolectric] NOTICE: legacy resources mode is deprecated; see
androidx.biometric.DeviceCredentialHandlerBridgeTest > testStartIgnoringReset_OverridesIgnoreNextReset STANDARD_OUT
[Robolectric] androidx.biometric.DeviceCredentialHandlerBridgeTest.testStartIgnoringReset_OverridesIgnoreNextReset: sdk=16; resources=LEGACY
[Robolectric] NOTICE: legacy resources mode is deprecated; see
----- End of the daemon log -----
au...@google.com <au...@google.com> #11
Do we have an easy way to copy the log from /usr/local/google/buildbot/src/android/androidx-master-dev/out/.gradle/daemon/6.0/daemon-5071.out.log
when this happens?
ap...@google.com <ap...@google.com> #12
Branch: androidx-master-dev
commit 18c47d315a0f2f59749f1533fc98b45427215c99
Author: Jeff Gaston <jeffrygaston@google.com>
Date: Mon Jan 27 18:00:28 2020
Some more diagnostics when the build fails
In case it helps us to diagnose why daemons are sometimes dying
Bug: 146217083
Test: rm ../../out -rf; (OUT_DIR=../../out DIST_DIR=../../out/dist ./gradlew buildOnServer &); sleep 10; killall java; ls ../../out/dist/gradle-daemon/6.1 # and also notice that java processes were listed in stdout
Change-Id: I8772de53bdb45aa51a2e7393f3054a98d8263acb
M gradlew
je...@google.com <je...@google.com> #13
It's interesting that this java process was running when our gradle daemon crashed (from
android+ 226901 1 0 2019 ? 01:44:39 /usr/local/google/buildbot/src/googleplex-android/studio-master-dev/prebuilts/studio/jdk/linux/jre/bin/java -Dorg.gradle.appname=gradlew -classpath /usr/local/google/buildbot/src/googleplex-android/studio-master-dev/tools/data-binding/compilationTests/build/build-test/testInvalidSetterBinding-useV2_false-androidx-databinding-compilationTest-SimpleCompilationTest-9b0ae610/gradle/wrapper/gradle-wrapper.jar org.gradle.wrapper.GradleWrapperMain --project-cache-dir=/usr/local/google/buildbot/src/googleplex-android/studio-master-dev/tools/data-binding/compilationTests/build/build-test/testInvalidSetterBinding-useV2_false-androidx-databinding-compilationTest-SimpleCompilationTest-9b0ae610/../out/.gradle -Pandroid.injected.invoked.from.ide=true -Pandroid.databinding.enableV2=false -Pandroid.useAndroidX=true --no-daemon assembleDebug'
je...@google.com <je...@google.com> #14
It's interesting that the corresponding build.log for this build also mentions a couple of java processes that aren't coming from androidx-master-dev :
/tmp/failures/a $ tail -n 20 build.log | grep java | grep -v androidx-master-dev | grep --color java
Current java processes: 'android+ 15804 1 0 Jan24 ? 00:13:34 /buildbot/src/googleplex-android/studio-master-dev/prebuilts/studio/jdk/linux/jre/bin/java -Dorg.gradle.appname=gradlew -classpath /buildbot/src/googleplex-android/studio-master-dev/tools/data-binding/compilationTests/build/build-test/testMultipleLayoutFilesVariableMismatch-androidx-databinding-compilationTest-MultiLayoutVerificationTest-8c1909db/gradle/wrapper/gradle-wrapper.jar org.gradle.wrapper.GradleWrapperMain --project-cache-dir=/buildbot/src/googleplex-android/studio-master-dev/tools/data-binding/compilationTests/build/build-test/testMultipleLayoutFilesVariableMismatch-androidx-databinding-compilationTest-MultiLayoutVerificationTest-8c1909db/../out/.gradle -Pandroid.injected.invoked.from.ide=true -Pandroid.useAndroidX=true --no-daemon assembleDebug
android+ 22457 1 0 2019 ? 03:11:06 /buildbot/src/googleplex-android/studio-master-dev/prebuilts/studio/jdk/linux/jre/bin/java -Dorg.gradle.appname=gradlew -classpath /buildbot/src/googleplex-android/studio-master-dev/tools/data-binding/compilationTests/build/build-test/testDependantDoesNotExist-useV2_false-androidx-databinding-compilationTest-SimpleCompilationTest-315e07ae/gradle/wrapper/gradle-wrapper.jar org.gradle.wrapper.GradleWrapperMain --project-cache-dir=/buildbot/src/googleplex-android/studio-master-dev/tools/data-binding/compilationTests/build/build-test/testDependantDoesNotExist-useV2_false-androidx-databinding-compilationTest-SimpleCompilationTest-315e07ae/../out/.gradle -Pandroid.injected.invoked.from.ide=true -Pandroid.databinding.enableV2=false -Pandroid.useAndroidX=true --no-daemon assembleDebug
android+ 48932 48930 0 00:11 ? 00:00:00 grep java'
je...@google.com <je...@google.com> #15
The corresponding build.log for this failure also mentions a few java processes that aren't coming from androidx-master-dev :
android+ 52774 1 0 2019 ? 02:09:11 /buildbot/src/googleplex-android/studio-master-dev/prebuilts/studio/jdk/linux/jre/bin/java -Dorg.gradle.appname=gradlew -classpath /buildbot/src/googleplex-android/studio-master-dev/tools/data-binding/compilationTests/build/build-test/testConflictingIds_includeVsView-useV2_false-androidx-databinding-compilationTest-SimpleCompilationTest-1948ff87/gradle/wrapper/gradle-wrapper.jar org.gradle.wrapper.GradleWrapperMain --project-cache-dir=/buildbot/src/googleplex-android/studio-master-dev/tools/data-binding/compilationTests/build/build-test/testConflictingIds_includeVsView-useV2_false-androidx-databinding-compilationTest-SimpleCompilationTest-1948ff87/../out/.gradle -Pandroid.injected.invoked.from.ide=true -Pandroid.databinding.enableV2=false -Pandroid.useAndroidX=true --no-daemon assembleDebug
android+ 55342 1 0 2019 ? 01:46:05 /buildbot/src/googleplex-android/studio-master-dev/prebuilts/studio/jdk/linux/jre/bin/java -Dorg.gradle.appname=gradlew -classpath /buildbot/src/googleplex-android/studio-master-dev/tools/data-binding/compilationTests/build/build-test/testDependantDoesNotExist-useV2_true-androidx-databinding-compilationTest-SimpleCompilationTest-0bc0e006/gradle/wrapper/gradle-wrapper.jar org.gradle.wrapper.GradleWrapperMain --project-cache-dir=/buildbot/src/googleplex-android/studio-master-dev/tools/data-binding/compilationTests/build/build-test/testDependantDoesNotExist-useV2_true-androidx-databinding-compilationTest-SimpleCompilationTest-0bc0e006/../out/.gradle -Pandroid.injected.invoked.from.ide=true -Pandroid.databinding.enableV2=true -Pandroid.useAndroidX=true --no-daemon assembleDebug
android+ 60788 1 0 Jan16 ? 00:34:39 /buildbot/src/googleplex-android/studio-master-dev/prebuilts/studio/jdk/linux/jre/bin/java -Dorg.gradle.appname=gradlew -classpath /buildbot/src/googleplex-android/studio-master-dev/tools/data-binding/compilationTests/build/build-test/testDependantDoesNotExist-useV2_true-androidx-databinding-compilationTest-SimpleCompilationTest-835b0946/gradle/wrapper/gradle-wrapper.jar org.gradle.wrapper.GradleWrapperMain --project-cache-dir=/buildbot/src/googleplex-android/studio-master-dev/tools/data-binding/compilationTests/build/build-test/testDependantDoesNotExist-useV2_true-androidx-databinding-compilationTest-SimpleCompilationTest-835b0946/../out/.gradle -Pandroid.injected.invoked.from.ide=true -Pandroid.databinding.enableV2=true -Pandroid.useAndroidX=true --no-daemon assembleDebug'
je...@google.com <je...@google.com> #16
I'm going to see about swapping the order of the two builds and seeing if that causes the UI build to fail instead, to get more of an idea of whether the build bot may be running out of resources or whether there's something special about the androidx build
ap...@google.com <ap...@google.com> #17
Branch: androidx-master-dev
commit f951f1b925a9f7568e8ee243ba785c40508f6fc1
Author: Jeff Gaston <jeffrygaston@google.com>
Date: Thu Jan 30 11:29:14 2020
On build failure on build server, now also showing start times of other processes
Bug: 146217083
Change-Id: I9b4602eca569b09e6bd6ad093c7c1136a1951eed
M gradlew
ap...@google.com <ap...@google.com> #18
Branch: androidx-master-dev
commit 316917412ed2694bcd3d6be55dc5e0a59b5b95cd
Author: Jeff Gaston <jeffrygaston@google.com>
Date: Thu Jan 30 14:03:34 2020
Swapping the order of the ui and androidx builds
Some Gradle daemons have been dying on the build servers, but the daemons have always been dying in the androidx build rather than the ui build.
Perhaps by swapping the order of the two builds we can get an idea of whether it is more likely that this is:
a resource limitation problem (in which case perhaps the ui build will start failing due to being first), or
a specific problem in the androidx build (in which case perhaps the gradle daemon will continue only to die in the androidx build)
Bug: 146217083
Test: Treehugger runs androidx.sh
Change-Id: I80ef23b3f800249005c97494638cbe8520620ef6
M busytown/impl/build.sh
je...@google.com <je...@google.com> #19
and
(note that I'm still linking to build_error.log because it's shorter, but build.log is what contains the information about the fact that the ui builds finished) :
which increases the probability that there's something special/wrong about the androidx build rather than just that the build bots are running out of resources (memory) during the build
ap...@google.com <ap...@google.com> #20
Branch: androidx-master-dev
commit 1965b01730af670017b8faeea17b6388a172e87d
Author: Jeff Gaston <jeffrygaston@google.com>
Date: Mon Feb 03 14:01:43 2020
Telling the build server to kill java processes from other builds before starting the androidx builds
In case persistent processes from other builds are interfering with our builds
Bug: 146217083
Bug: 148598093
Test: Treehugger busytown/*.sh
Change-Id: I6d668106868abc7daa9f643cfac55f7bca0d8de4
M busytown/impl/build.sh
je...@google.com <je...@google.com> #21
Interestingly enough, except for the few Robolectric errors in comments #1 , #2 , and #10 , all of the daemon-dying build failures I've noticed have mentioned room at the bottom of them, of which most of those have looked like
je...@google.com <je...@google.com> #22
Running tasks from
Interestingly enough, there's no one task that shows up in all three of the failures
Also interesting is that of these these failures, the longest common prefix that appears in each of them appears to be ":room:integration-tests:room-testapp"
au...@google.com <au...@google.com> #23
I'm not sure if we can blame :room:integration-tests:room-testapp
without more evidence. It might just show up as it is a fairly large project that depends on leaf node projects.
je...@google.com <je...@google.com> #24
ow...@google.com <ow...@google.com> #25
Room seems to concurrently start up a sqlite server or something, flakily. I tend to blame all flakes on concurrency, so it seems plausible that another flaky concurrent thing room is doing could be related to this.
je...@google.com <je...@google.com> #26
and according to
je...@google.com <je...@google.com> #27
ap...@google.com <ap...@google.com> #28
Branch: androidx-master-dev
commit 061234a6803c5e8561e5fa0455db9cb19e3f9d88
Author: Jeff Gaston <jeffrygaston@google.com>
Date: Wed Feb 05 16:53:30 2020
Hopefully copying hs_err_pid files into the dist dir when the Gradle daemon dies
In case these files exist and have any helpful information
Bug: 146217083
Change-Id: Icd0903bd6d0fa8b2eadc4a1990c637199c31a3e0
M gradlew
ap...@google.com <ap...@google.com> #29
Branch: androidx-master-dev
commit aa8a55ab9ff6f5ed30db4a3afd4ceedfed8fe488
Author: Jeff Gaston <jeffrygaston@google.com>
Date: Thu Feb 06 15:29:08 2020
Showing the contents of the out/ dir in build server builds
To rule out the possibility of any files in it persisting across builds
Bug: 146217083
Bug: 148102969
Test: DIST_DIR=../../out/dist ./busytown/androidx.sh # and see that the contents of the out/ dir are displayed
Change-Id: Ic0656682358c015bee9a894850dcd906f3873608
M busytown/impl/build.sh
ap...@google.com <ap...@google.com> #30
Branch: androidx-master-dev
commit 2f1967d22757ae11cc0283cc1bfcbf1a4c5df9e0
Author: Jeff Gaston <jeffrygaston@google.com>
Date: Thu Feb 06 17:55:53 2020
Checking for system messages when the gradle daemon dies
In case the daemon is being killed by something
Bug: 146217083
Change-Id: Ibfdb818bf8fbf42ffcaa08e3a5cd01226f35a1c4
M gradlew
ap...@google.com <ap...@google.com> #31
Branch: androidx-master-dev
commit f27b98274038ccb5b1ec32f0945331893a5c4efe
Author: Jeff Gaston <jeffrygaston@google.com>
Date: Mon Feb 10 15:51:34 2020
Increasing javac verbosity on build server in room projects
in an effort to identify why the gradle daemon has been crashing more often recently
Bug: 146217083
Test: ./gradlew :room:integration-tests:room-testapp-noappcompat:mergeDebugAndroidTestNativeLibs # see that no extra output is shown
Test: DIST_DIR=../../out/dist ./gradlew :room:integration-tests:room-testapp-noappcompat:mergeDebugAndroidTestNativeLibs # see that extra output is shown
Change-Id: Ie11e35b669508d6cf82c6e159db793d299fbdbd1
M buildSrc/src/main/kotlin/androidx/build/AndroidXPlugin.kt
je...@google.com <je...@google.com> #32
If anybody has any ideas that would be great (it looks suspicious to me that I see the text "last round: false" in the javac output and don't see a subsequent "last round: true", but I'm not sure if that's just an indication that Gradle crashed while it happened to be compiling)
Otherwise I think my plan is to wait for a couple days (to see if this lower error rate persists) and then maybe try forking those javac invocations (
yb...@google.com <yb...@google.com> #33
do we have the daemon logs as well from those machines?
/buildbot/src/android/androidx-master-dev/out/.gradle/daemon/6.1/daemon-21733.out.log
je...@google.com <je...@google.com> #34
That is, for build_error of
the daemon log is
and for build_error of
the daemon log is
yb...@google.com <yb...@google.com> #36
Both of those seems to have crashed after compilation finished.
[wrote RegularFileObject[/buildbot/src/android/androidx-master-dev/out/androidx/room/integration-tests/room-testapp-noappcompat/build/intermediates/javac/debugAndroidTest/classes/androidx/room/integration/noappcompat/BareRelationDatabaseTest_RelationDatabase_Impl.class]]
[total 5402ms]
2 warnings
Stream closed
[wrote RegularFileObject[/buildbot/src/android/androidx-master-dev/out/androidx/room/integration-tests/room-testapp-noappcompat/build/intermediates/javac/debugAndroidTest/classes/androidx/room/integration/noappcompat/BareRelationDatabaseTest_RelationDatabase_Impl.class]]
[total 1853ms]
2 warnings
Stream closed
Unfortunately this does not say much.
Daemons were created with:
2020-02-10T21:04:19.191+0000 [DEBUG] [org.gradle.launcher.daemon.bootstrap.DaemonMain] Assuming the daemon was started with following jvm opts: [-Xms8g, -Xmx8g, -Dfile.encoding=UTF-8, -Djava.io.tmpdir=/buildbot/src/android/androidx-master-dev/out, -Duser.country=US, -Duser.language=en, -Duser.variant]
2020-02-10T21:04:19.446+0000 [INFO] [org.gradle.launcher.daemon.server.Daemon] start() called on daemon - DefaultDaemonContext[uid=a344b928-f14a-43b3-93dd-f3e50070e0ca,javaHome=/buildbot/src/android/androidx-master-dev/prebuilts/jdk/jdk8/linux-x86,daemonRegistryDir=/buildbot/src/android/androidx-master-dev/out/.gradle/daemon,pid=21733,idleTimeout=120000,priority=NORMAL,daemonOpts=-Xms8g,-Xmx8g,-Dfile.encoding=UTF-8,-Djava.io.tmpdir=/buildbot/src/android/androidx-master-dev/out,-Duser.country=US,-Duser.language=en,-Duser.variant]
Maybe there is a way to make it have more verbose logging as well?
je...@google.com <je...@google.com> #37
je...@google.com <je...@google.com> #38
ap...@google.com <ap...@google.com> #39
Branch: androidx-master-dev
commit d54930d757b136c0b20118dd0d96b14ea696d51e
Author: Jeff Gaston <jeffrygaston@google.com>
Date: Thu Feb 13 17:25:02 2020
Fixing copying hs_err_pid files when Gradle crashes
Bug: 146217083
Change-Id: Ic80f6421877380bc8ac002f5756503eec3d2bbd6
M gradlew
je...@google.com <je...@google.com> #40
I see a line that says:
androidx.room.verifier.DatabaseVerifier$Companion.create
but I don't also notice anything nearby about libzip.so , so maybe the error we're getting on the build servers is different than
Yigit, do you have any ideas based on this hs_err_pid file?
yb...@google.com <yb...@google.com> #41
It is when we try to open a connection to SQLite which requires loadinga native library.
java.lang.System.load(Ljava/lang/String;)V+7
Btw, there are 800+ threads in that dump, is that normal? may this be something leaking and creating more pressure on the system and maybe we just crash when we fail to allocate native memory? I know this is a super un-founded guess but seeing a memory dump might help us understand it better?
je...@google.com <je...@google.com> #42
Also interesting is when I run `./androidx.sh` and wait for the androidx build to be running, and then run `pstree -l -a $gradlePid` several times, it seems to me that the number of threads maxes out at higher than 834 threads spawned by the Gradle Daemon, judging by the output at the bottom of this comment.
I can look into getting a memory dump anyway
pstree output:
java -DLINT_API_DATABASE=/usr/local/google/workspace/aosp-androidx-git/frameworks/support/../../prebuilts/fullsdk-linux/platform-tools/api/api-versions.xml -Dorg.gradle.appname=gradlew -Djava.io.tmpdir=/usr/local/google/workspace/aosp-androidx-git/out -classpath /usr/local/google/workspace/aosp-androidx-git/frameworks/support/gradle/wrapper/gradle-wrapper.jar org.gradle.wrapper.GradleWrapperMain -Duser.home=/usr/local/google/workspace/aosp-androidx-git/out/.gradle -Djava.io.tmpdir=/usr/local/google/workspace/aosp-androidx-git/out -Dorg.gradle.jvmargs=-Xms8g -Xmx8g -p frameworks/support --no-daemon buildOnServer -PverifyUpToDate --profile
āājava -Xms8g -Xmx8g -Dfile.encoding=UTF-8 -Djava.io.tmpdir=/usr/local/google/workspace/aosp-androidx-git/out -Duser.country=US -Duser.language=en -Duser.variant -cp /usr/local/google/workspace/aosp-androidx-git/out/.gradle/wrapper/dists/gradle-6.1-bin/cg7pocs5by3iq3djslf99cdom/gradle-6.1/lib/gradle-launcher-6.1.jar org.gradle.launcher.daemon.bootstrap.GradleDaemon 6.1
ā āāaapt2 m
ā āāaapt2 m
ā āāaapt2 m
ā āāaapt2 m
ā āāaapt2 m
ā āāaapt2 m
ā āāaapt2 m
ā āāaapt2 m
ā āāaapt2 m
ā āāaapt2 m
ā āāaapt2 m
ā āāaapt2 m
ā āāaapt2 m
ā āāaapt2 m
ā āāaapt2 m
ā āāaapt2 m
ā āāaapt2 m
ā āāaapt2 m
ā āāaapt2 m
ā āāaapt2 m
ā āāaapt2 m
ā āāaapt2 m
ā āāaapt2 m
ā āāaapt2 m
ā āājava -cp /usr/local/google/workspace/aosp-androidx-git/prebuilts/androidx/external/org/jetbrains/kotlin/kotlin-compiler-embeddable/1.3.60/kotlin-compiler-embeddable-1.3.60.jar:/usr/local/google/workspace/aosp-androidx-git/prebuilts/androidx/external/org/jetbrains/kotlin/kotlin-reflect/1.3.60/kotlin-reflect-1.3.60.jar:/usr/local/google/workspace/aosp-androidx-git/prebuilts/androidx/external/org/jetbrains/kotlin/kotlin-stdlib/1.3.60/kotlin-stdlib-1.3.60.jar:/usr/local/google/workspace/aosp-androidx-git/prebuilts/androidx/external/org/jetbrains/kotlin/kotlin-script-runtime/1.3.60/kotlin-script-runtime-1.3.60.jar:/usr/local/google/workspace/aosp-androidx-git/prebuilts/androidx/external/org/jetbrains/kotlin/kotlin-daemon-embeddable/1.3.60/kotlin-daemon-embeddable-1.3.60.jar:/usr/local/google/workspace/aosp-androidx-git/prebuilts/androidx/external/org/jetbrains/intellij/deps/trove4j/1.0.20181211/trove4j-1.0.20181211.jar:/usr/local/google/workspace/aosp-androidx-git/prebuilts/androidx/external/org/jetbrains/kotlin/kotlin-stdlib-common/1.3.60/kotlin-stdlib-common-1.3.60.jar:/usr/local/google/workspace/aosp-androidx-git/prebuilts/androidx/external/org/jetbrains/annotations/13.0/annotations-13.0.jar:/usr/local/google/workspace/aosp-androidx-git/prebuilts/jdk/jdk8/linux-x86/lib/tools.jar -Djava.awt.headless=true -Djava.rmi.server.hostname=127.0.0.1 -Xmx8g -Dkotlin.environment.keepalive -ea org.jetbrains.kotlin.daemon.KotlinCompileDaemon --daemon-runFilesPath /usr/local/google/workspace/aosp-androidx-git/out/.gradle/.kotlin/daemon --daemon-autoshutdownIdleSeconds=7200 --daemon-compilerClasspath /usr/local/google/workspace/aosp-androidx-git/prebuilts/androidx/external/org/jetbrains/kotlin/kotlin-compiler-embeddable/1.3.60/kotlin-compiler-embeddable-1.3.60.jar:/usr/local/google/workspace/aosp-androidx-git/prebuilts/androidx/external/org/jetbrains/kotlin/kotlin-reflect/1.3.60/kotlin-reflect-1.3.60.jar:/usr/local/google/workspace/aosp-androidx-git/prebuilts/androidx/external/org/jetbrains/kotlin/kotlin-stdlib/1.3.60/kotlin-stdlib-1.3.60.jar:/usr/local/google/workspace/aosp-androidx-git/prebuilts/androidx/external/org/jetbrains/kotlin/kotlin-script-runtime/1.3.60/kotlin-script-runtime-1.3.60.jar:/usr/local/google/workspace/aosp-androidx-git/prebuilts/androidx/external/org/jetbrains/kotlin/kotlin-daemon-embeddable/1.3.60/kotlin-daemon-embeddable-1.3.60.jar:/usr/local/google/workspace/aosp-androidx-git/prebuilts/androidx/external/org/jetbrains/intellij/deps/trove4j/1.0.20181211/trove4j-1.0.20181211.jar:/usr/local/google/workspace/aosp-androidx-git/prebuilts/androidx/external/org/jetbrains/kotlin/kotlin-stdlib-common/1.3.60/kotlin-stdlib-common-1.3.60.jar:/usr/local/google/workspace/aosp-androidx-git/prebuilts/androidx/external/org/jetbrains/annotations/13.0/annotations-13.0.jar:/usr/local/google/workspace/aosp-androidx-git/prebuilts/jdk/jdk8/linux-x86/lib/tools.jar
ā ā āā184*[{java}]
ā āājava -Djava.security.manager=worker.org.gradle.process.internal.worker.child.BootstrapSecurityManager -Xmx512m -Dfile.encoding=UTF-8 -Duser.country=US -Duser.language=en -Duser.variant -cp /usr/local/google/workspace/aosp-androidx-git/out/.gradle/caches/6.1/workerMain/gradle-worker.jar worker.org.gradle.process.internal.worker.GradleWorkerMain 'Gradle Worker Daemon 1'
ā ā āā64*[{java}]
ā āājava -Djava.security.manager=worker.org.gradle.process.internal.worker.child.BootstrapSecurityManager -Xmx512m -Dfile.encoding=UTF-8 -Duser.country=US -Duser.language=en -Duser.variant -cp /usr/local/google/workspace/aosp-androidx-git/out/.gradle/caches/6.1/workerMain/gradle-worker.jar worker.org.gradle.process.internal.worker.GradleWorkerMain 'Gradle Worker Daemon 2'
ā ā āā64*[{java}]
ā āājava -Djava.security.manager=worker.org.gradle.process.internal.worker.child.BootstrapSecurityManager -Xmx512m -Dfile.encoding=UTF-8 -Duser.country=US -Duser.language=en -Duser.variant -cp /usr/local/google/workspace/aosp-androidx-git/out/.gradle/caches/6.1/workerMain/gradle-worker.jar worker.org.gradle.process.internal.worker.GradleWorkerMain 'Gradle Worker Daemon 3'
ā ā āā64*[{java}]
ā āājava -Djava.security.manager=worker.org.gradle.process.internal.worker.child.BootstrapSecurityManager -Xmx512m -Dfile.encoding=UTF-8 -Duser.country=US -Duser.language=en -Duser.variant -cp /usr/local/google/workspace/aosp-androidx-git/out/.gradle/caches/6.1/workerMain/gradle-worker.jar worker.org.gradle.process.internal.worker.GradleWorkerMain 'Gradle Worker Daemon 4'
ā ā āā64*[{java}]
ā āājava -Dfile.encoding=UTF-8 -Duser.country=US -Duser.language=en -Duser.variant -cp /usr/local/google/workspace/aosp-androidx-git/prebuilts/androidx/external/com/android/metalava/1.3.0/metalava-1.3.0-shadow.jar com.android.tools.metalava.Driver --no-banner --hide HiddenSuperclass --classpath /usr/local/google/workspace/aosp-androidx-git/prebuilts/fullsdk-linux/platforms/android-29/android.jar:/usr/local/google/workspace/aosp-androidx-git/out/androidx/collection/collection/build/libs/collection-1.2.0-alpha01.jar:/usr/local/google/workspace/aosp-androidx-git/prebuilts/androidx/internal/androidx/annotation/annotation/1.1.0/annotation-1.1.0.jar --source-path /usr/local/google/workspace/aosp-androidx-git/frameworks/support/remotecallback/src/main/java --format=v3 --output-kotlin-nulls=yes --api /usr/local/google/workspace/aosp-androidx-git/out/androidx/remotecallback/build/api/current.txt --hide-annotation androidx.annotation.experimental.Experimental --hide-annotation kotlin.Experimental --hide-meta-annotation androidx.annotation.experimental.Experimental --hide-meta-annotation kotlin.Experimental --hide-annotation androidx.annotation.RestrictTo --show-unannotated --api-lint --hide Enum, CallbackInterface, ProtectedMember, ManagerLookup, ManagerConstructor, RethrowRemoteException, PackageLayering, UserHandle, ParcelableList, GetterSetterNames, StaticUtils, AllUpper, StartWithLower, BuilderSetStyle, ExecutorRegistration, NotCloseable, UseIcu, SamShouldBeLast, MissingJvmStatic, IntentBuilderName, OnNameExpected, UserHandleName --error MinMaxConstant, TopLevelBuilder, MissingBuild, SetterReturnsThis, OverlappingConstants, IllegalStateException, ListenerLast, StreamFiles, AbstractInner, ArrayReturn, MethodNameTense, NoByteOrShort, CommonArgsFirst --baseline /usr/local/google/workspace/aosp-androidx-git/frameworks/support/remotecallback/api/api_lint.ignore --error DeprecationMismatch --error ReferencesDeprecated
ā ā āā61*[{java}]
ā āājava -Dfile.encoding=UTF-8 -Duser.country=US -Duser.language=en -Duser.variant -cp /usr/local/google/workspace/aosp-androidx-git/prebuilts/androidx/external/com/android/metalava/1.3.0/metalava-1.3.0-shadow.jar com.android.tools.metalava.Driver --no-banner --hide HiddenSuperclass --classpath /usr/local/google/workspace/aosp-androidx-git/prebuilts/fullsdk-linux/platforms/android-29/android.jar:/usr/local/google/workspace/aosp-androidx-git/out/androidx/collection/collection/build/libs/collection-1.2.0-alpha01.jar:/usr/local/google/workspace/aosp-androidx-git/prebuilts/androidx/internal/androidx/annotation/annotation/1.1.0/annotation-1.1.0.jar --source-path /usr/local/google/workspace/aosp-androidx-git/frameworks/support/remotecallback/src/main/java --format=v3 --output-kotlin-nulls=yes --api /usr/local/google/workspace/aosp-androidx-git/out/androidx/remotecallback/build/api/restricted_current.txt --show-annotation androidx.annotation.RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) --show-unannotated --hide-annotation androidx.annotation.RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) --hide-annotation androidx.annotation.experimental.Experimental --hide-annotation kotlin.Experimental --hide-meta-annotation androidx.annotation.experimental.Experimental --hide-meta-annotation kotlin.Experimental --hide DeprecationMismatch --hide UnhiddenSystemApi --hide ReferencesHidden --hide ReferencesDeprecated
ā ā āā61*[{java}]
ā āājava -Dfile.encoding=UTF-8 -Duser.country=US -Duser.language=en -Duser.variant -cp /usr/local/google/workspace/aosp-androidx-git/prebuilts/androidx/external/com/android/metalava/1.3.0/metalava-1.3.0-shadow.jar com.android.tools.metalava.Driver --no-banner --hide HiddenSuperclass --classpath /usr/local/google/workspace/aosp-androidx-git/prebuilts/fullsdk-linux/platforms/android-29/android.jar:/usr/local/google/workspace/aosp-androidx-git/out/androidx/collection/collection/build/libs/collection-1.2.0-alpha01.jar:/usr/local/google/workspace/aosp-androidx-git/prebuilts/androidx/internal/androidx/annotation/annotation/1.1.0/annotation-1.1.0.jar --source-path /usr/local/google/workspace/aosp-androidx-git/frameworks/support/remotecallback/src/main/java --format=v3 --output-kotlin-nulls=yes --api /usr/local/google/workspace/aosp-androidx-git/out/androidx/remotecallback/build/api/public_plus_experimental_current.txt --api-lint --hide Enum, CallbackInterface, ProtectedMember, ManagerLookup, ManagerConstructor, RethrowRemoteException, PackageLayering, UserHandle, ParcelableList, GetterSetterNames, StaticUtils, AllUpper, StartWithLower, BuilderSetStyle, ExecutorRegistration, NotCloseable, UseIcu, SamShouldBeLast, MissingJvmStatic, IntentBuilderName, OnNameExpected, UserHandleName --error MinMaxConstant, TopLevelBuilder, MissingBuild, SetterReturnsThis, OverlappingConstants, IllegalStateException, ListenerLast, StreamFiles, AbstractInner, ArrayReturn, MethodNameTense, NoByteOrShort, CommonArgsFirst --baseline /usr/local/google/workspace/aosp-androidx-git/frameworks/support/remotecallback/api/api_lint.ignore --error DeprecationMismatch --error ReferencesDeprecated
ā ā āā61*[{java}]
ā āājavadoc @/usr/local/google/workspace/aosp-androidx-git/out/androidx/build/tmp/publicDocsTask/javadoc.options -J-Xmx1280m
ā ā āā60*[{javadoc}]
ā āā834*[{java}]
āā64*[{java}]
je...@google.com <je...@google.com> #43
It does seem believable to me that calling DatabaseVerifier$Companion.create from multiple threads at once (in particular, multiple Gradle projects) could cause multiple parallel calls to System.load or to JDBC.createConnection
Do we have an idea of whether these methods and/or DatabaseVerifier are threadsafe? I wonder if that relates to
yb...@google.com <yb...@google.com> #45
i'm not sure how the isolation work for native code in JVM / gradle but a processor would never call this in parallel. I wonder if this could be related to multiple parallel compilations running on the same JVM.
Another possibility is that, we use tmp folder for the iso file. Could it be the OS somehow thinking that it is not used anymore and delete it?
Nevertheless, since there is an effort to move to Java11, should we wait for it first ?
je...@google.com <je...@google.com> #46
Alternatively it also seems reasonable to me to add some logging around copyNativeLibs to see if it's getting called. It does look to me like multiple compilations within the same JVM can cause the value of sqliteNativeLibDir to be modified while other compilations are using it:
Is room-compiler a jar that might be used by client applications? Is it possible for this error to affect them too?
If we think that the only place where this occurs is in building AndroidX itself then waiting for the upgrade to Java11 and then reevaluating does seem acceptable to me now that the crash rate is lower ( also
yb...@google.com <yb...@google.com> #47
we've not recently seen this being an issue. like a year ago or so, we had a similar problem which why we have the reloading logic in database verifier. we've not heard back any issues after that.
ow...@google.com <ow...@google.com> #48
I don't think this is exclusive to androidx.
I have been seeing
This error pops up in room test apps, which are client applications of room. It seems like if you simultaneously compile multiple client apps of room, they can cause SQLite connection failures. It is possible though unlikely for external clients to do this.
ap...@google.com <ap...@google.com> #49
Branch: androidx-master-dev
commit 4c6402f2509972b7332e0091528cadade07121bc
Author: Jeff Gaston <jeffrygaston@google.com>
Date: Tue Feb 25 13:45:46 2020
Sychronizing DatabaseVerifier.copyNativeLibs
To avoid one DatabaseVerifier modifying org.sqlite.tmpdir while another one is using sqlite
Bug: 146217083
Test: Comment out the added synchronization and the calls to "reusePreviousSqliteTempdir" and run this a couple of times:
./gradlew --rerun-tasks :room:integration-tests:room-testapp:assembleAndroidTest \
:room:integration-tests:room-testapp-noappcompat:assembleAndroidTest \
:room:integration-tests:room-testapp-autovalue:assembleAndroidTest \
:room:integration-tests:room-testapp:assembleAndroidTest \
:room:integration-tests:room-testapp-kotlin:assembleAndroidTest
and observe that ConcurrentModificationException often gets thrown
Change-Id: I9f8b0d42021e75289f9e56c65076e048353df1b5
M room/compiler/src/main/kotlin/androidx/room/verifier/DatabaseVerifier.kt
au...@google.com <au...@google.com> #50
Can we now follow up and remove most of the debug statements we left behind in gradlew and other places?
je...@google.com <je...@google.com> #51
Also interesting is that the debug statements themselves seem to lower the error rate (
ap...@google.com <ap...@google.com> #52
Branch: androidx-master-dev
commit d998b6d4f5b8fc053a8de290b310e62c9da1bae1
Author: Jeff Gaston <jeffrygaston@google.com>
Date: Tue Feb 25 17:36:14 2020
Synchronizing DatabaseVerifier.copyNativeLibs on System.getProperties()
It seems that each DatabaseVerifier.companion has its own classloader and isn't sufficient to use for synchronization
Bug: 146217083
Test: add "Thread.sleep(10000L)" into copyNativeLibs and run this:
./gradlew --rerun-tasks :room:integration-tests:room-testapp:assembleAndroidTest \
:room:integration-tests:room-testapp-noappcompat:assembleAndroidTest \
:room:integration-tests:room-testapp-autovalue:assembleAndroidTest \
:room:integration-tests:room-testapp:assembleAndroidTest \
:room:integration-tests:room-testapp-kotlin:assembleAndroidTest
and see that this still passes
Test: ./room/stress-test-room.sh
Change-Id: I0f074d7ca03a0773d8a687d036d1656122b255e9
M room/compiler/src/main/kotlin/androidx/room/verifier/DatabaseVerifier.kt
ap...@google.com <ap...@google.com> #53
Branch: androidx-master-dev
commit 464b672f035155dfff241f5df4d48bafcf2de223
Author: Jeff Gaston <jeffrygaston@google.com>
Date: Tue Feb 25 18:49:34 2020
Synchronizing DatabaseVerifier's calls to JDBC.createConnection
Our hs_err_pid files are indicating that System.loadLibrary is not threadsafe.
Presumably JDBC.createConnection is calling System.loadLibrary and is also not threadsafe.
Note that when we synchronize these calls, JDBC.createConnection seems to stop throwing UnsatisfiedLinkError
Bug: 146217083
Test: ./room/stress-test-room.sh
Test: Comment out the catch blocks "unsatisfied: UnsatisfiedLinkError" and "ex: Exception" and run:
./room/stress-test-room.sh
and see that even without those catches enabled, the stress test still passes
Change-Id: I14ec25d3266135fe14638ce30156d4e3207c17fe
M room/compiler/src/main/kotlin/androidx/room/verifier/DatabaseVerifier.kt
ya...@google.com <ya...@google.com> #54
Is it related to this issue?
The error log is here.
--- LOG ---
Caused by: java.lang.UnsatisfiedLinkError: Native Library /buildbot/src/android/androidx-master-dev/out/room-9c489b03-ce24-4b34-8846-142719f950a6/
at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1907)
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1824)
at java.lang.Runtime.load0(Runtime.java:809)
at java.lang.System.load(System.java:1086)
at androidx.room.verifier.DatabaseVerifier$Companion.create(DatabaseVerifier.kt:109)
...
je...@google.com <je...@google.com> #55
ya...@google.com <ya...@google.com> #56
yb...@google.com <yb...@google.com> #57
I've already commented on the CL but i don't think
ya...@google.com <ya...@google.com> #58
il...@google.com <il...@google.com> #59
Looks like all of the recent builds of go/ab/aosp-androidx-master-dev have been failing with this error.
ni...@google.com <ni...@google.com> #60
Started today at ab/6238666
ap...@google.com <ap...@google.com> #61
Branch: androidx-master-dev
commit cb263614074e9df530535eb2c00693946f474ede
Author: Daniel Santiago Rivera <danysantiago@google.com>
Date: Wed Feb 26 11:32:09 2020
Use System.class as mutex
Use a bootstrap loaded class such as System.class as mutex for loading
the sqlite jdbc native library since the Properties instance be swapped
via System.setProperties()
Bug: 146217083
Test: Hopefully androidx.sh will succeed on the build servers.
Change-Id: I9e7d0d6711ec1ad796aa9ca299e9fea2f32d2627
M room/compiler/src/main/kotlin/androidx/room/verifier/DatabaseVerifier.kt
ap...@google.com <ap...@google.com> #62
Branch: androidx-master-dev
commit b818451a8d5037a4bade810ec7fa2591483d6b90
Author: Jeff Gaston <jeffrygaston@google.com>
Date: Wed Feb 26 14:16:57 2020
Temporarily disabling DatabaseVerifier's check for concurrent changes to com.sqlite.tmpdir
This check has been triggering a bunch lately
Disabling it for now should help to unblock people
Bug: 146217083
Test: hopefully androidx.sh will succeed on the build servers more often
Change-Id: I2a94ee9eb41eafb547fc4fee4b2ec03598bb51d4
M room/compiler/src/main/kotlin/androidx/room/verifier/DatabaseVerifier.kt
ap...@google.com <ap...@google.com> #63
Branch: androidx-master-dev
commit 38f16b8e3a6aa2679044f2a8df8d435e4eb9b898
Author: Daniel Santiago Rivera <danysantiago@google.com>
Date: Thu Feb 27 14:07:58 2020
Refactor DatabaseVerifier native library load logic.
This CL goes back to basics and removes the various workarounds
that have been placed around for loading the native sqlite lib.
Specifically, it removes the retry logic and the manual load call.
The SQLite JDBC library used (
already has logic in SQLiteJDBCLoader to avoid multiple class loader
conflicts and has processor isolation by extracting the library using
a filename that is versioned, contains a UUID and a platform prefix.
The SQLiteJDBCLoader static methods that perform the loading are
synchronized and use the class instance as mutex but the Gradle
daemon will parallelize workers along with javac invocations and
these use isolated class loaders, meaning the SQLiteJDBCLoader.class
is not safe across threads doing other javac work and running Room.
To avoid the issues above Room will synchronize using the
java.lang.System class that should be loaded by the bootstrap class
loader and is shared across all other class loaders. Additionally,
Room will avoid manipulating the System properties and instead will
just verify them, erroring if they are not suitable for Room. More
specifically, checking for a valid temp folder.
Bug: 146217083
Test: ./room/stress-test-room.sh
Change-Id: I063043e148ada1ac69bcefd9cfca0134a9f9200d
M room/compiler/src/main/kotlin/androidx/room/verifier/DatabaseVerifier.kt
M room/stress-test-room.sh
an...@google.com <an...@google.com> #64
Release Track: (
Created: 2020-03-02 21:32:38.901846+00:00
Changes: aosp/1244048, aosp/1246567, aosp/1244606, aosp/1242998, aosp/1244049, aosp/1244546
ap...@google.com <ap...@google.com> #65
Branch: androidx-master-dev
commit c16c45fb0ca4b92ef3db660b512e450131ca7fc3
Author: Daniel Santiago Rivera <danysantiago@google.com>
Date: Tue Mar 03 08:52:57 2020
Import Room 2.2.5
Bug: 146217083
Test: n/a
Change-Id: I00b061b36d95f54a72e23d01c220daa37a87a553
A androidx/room/room-common/2.2.5/room-common-2.2.5-sources.jar
A androidx/room/room-common/2.2.5/room-common-2.2.5-sources.jar.md5
A androidx/room/room-common/2.2.5/room-common-2.2.5-sources.jar.sha1
A androidx/room/room-common/2.2.5/room-common-2.2.5.jar
A androidx/room/room-common/2.2.5/room-common-2.2.5.jar.md5
A androidx/room/room-common/2.2.5/room-common-2.2.5.jar.sha1
A androidx/room/room-common/2.2.5/room-common-2.2.5.pom
A androidx/room/room-common/2.2.5/room-common-2.2.5.pom.md5
A androidx/room/room-common/2.2.5/room-common-2.2.5.pom.sha1
A androidx/room/room-compiler/2.2.5/room-compiler-2.2.5-sources.jar
A androidx/room/room-compiler/2.2.5/room-compiler-2.2.5-sources.jar.md5
A androidx/room/room-compiler/2.2.5/room-compiler-2.2.5-sources.jar.sha1
A androidx/room/room-compiler/2.2.5/room-compiler-2.2.5.jar
A androidx/room/room-compiler/2.2.5/room-compiler-2.2.5.jar.md5
A androidx/room/room-compiler/2.2.5/room-compiler-2.2.5.jar.sha1
A androidx/room/room-compiler/2.2.5/room-compiler-2.2.5.pom
A androidx/room/room-compiler/2.2.5/room-compiler-2.2.5.pom.md5
A androidx/room/room-compiler/2.2.5/room-compiler-2.2.5.pom.sha1
A androidx/room/room-guava/2.2.5/room-guava-2.2.5-sources.jar
A androidx/room/room-guava/2.2.5/room-guava-2.2.5-sources.jar.md5
A androidx/room/room-guava/2.2.5/room-guava-2.2.5-sources.jar.sha1
A androidx/room/room-guava/2.2.5/room-guava-2.2.5.aar
A androidx/room/room-guava/2.2.5/room-guava-2.2.5.aar.md5
A androidx/room/room-guava/2.2.5/room-guava-2.2.5.aar.sha1
A androidx/room/room-guava/2.2.5/room-guava-2.2.5.pom
A androidx/room/room-guava/2.2.5/room-guava-2.2.5.pom.md5
A androidx/room/room-guava/2.2.5/room-guava-2.2.5.pom.sha1
A androidx/room/room-ktx/2.2.5/room-ktx-2.2.5-sources.jar
A androidx/room/room-ktx/2.2.5/room-ktx-2.2.5-sources.jar.md5
A androidx/room/room-ktx/2.2.5/room-ktx-2.2.5-sources.jar.sha1
A androidx/room/room-ktx/2.2.5/room-ktx-2.2.5.aar
A androidx/room/room-ktx/2.2.5/room-ktx-2.2.5.aar.md5
A androidx/room/room-ktx/2.2.5/room-ktx-2.2.5.aar.sha1
A androidx/room/room-ktx/2.2.5/room-ktx-2.2.5.pom
A androidx/room/room-ktx/2.2.5/room-ktx-2.2.5.pom.md5
A androidx/room/room-ktx/2.2.5/room-ktx-2.2.5.pom.sha1
A androidx/room/room-migration/2.2.5/room-migration-2.2.5-sources.jar
A androidx/room/room-migration/2.2.5/room-migration-2.2.5-sources.jar.md5
A androidx/room/room-migration/2.2.5/room-migration-2.2.5-sources.jar.sha1
A androidx/room/room-migration/2.2.5/room-migration-2.2.5.jar
A androidx/room/room-migration/2.2.5/room-migration-2.2.5.jar.md5
A androidx/room/room-migration/2.2.5/room-migration-2.2.5.jar.sha1
A androidx/room/room-migration/2.2.5/room-migration-2.2.5.pom
A androidx/room/room-migration/2.2.5/room-migration-2.2.5.pom.md5
A androidx/room/room-migration/2.2.5/room-migration-2.2.5.pom.sha1
A androidx/room/room-runtime/2.2.5/room-runtime-2.2.5-sources.jar
A androidx/room/room-runtime/2.2.5/room-runtime-2.2.5-sources.jar.md5
A androidx/room/room-runtime/2.2.5/room-runtime-2.2.5-sources.jar.sha1
A androidx/room/room-runtime/2.2.5/room-runtime-2.2.5.aar
A androidx/room/room-runtime/2.2.5/room-runtime-2.2.5.aar.md5
A androidx/room/room-runtime/2.2.5/room-runtime-2.2.5.aar.sha1
A androidx/room/room-runtime/2.2.5/room-runtime-2.2.5.pom
A androidx/room/room-runtime/2.2.5/room-runtime-2.2.5.pom.md5
A androidx/room/room-runtime/2.2.5/room-runtime-2.2.5.pom.sha1
A androidx/room/room-rxjava2/2.2.5/room-rxjava2-2.2.5-sources.jar
A androidx/room/room-rxjava2/2.2.5/room-rxjava2-2.2.5-sources.jar.md5
A androidx/room/room-rxjava2/2.2.5/room-rxjava2-2.2.5-sources.jar.sha1
A androidx/room/room-rxjava2/2.2.5/room-rxjava2-2.2.5.aar
A androidx/room/room-rxjava2/2.2.5/room-rxjava2-2.2.5.aar.md5
A androidx/room/room-rxjava2/2.2.5/room-rxjava2-2.2.5.aar.sha1
A androidx/room/room-rxjava2/2.2.5/room-rxjava2-2.2.5.pom
A androidx/room/room-rxjava2/2.2.5/room-rxjava2-2.2.5.pom.md5
A androidx/room/room-rxjava2/2.2.5/room-rxjava2-2.2.5.pom.sha1
A androidx/room/room-testing/2.2.5/room-testing-2.2.5-sources.jar
A androidx/room/room-testing/2.2.5/room-testing-2.2.5-sources.jar.md5
A androidx/room/room-testing/2.2.5/room-testing-2.2.5-sources.jar.sha1
A androidx/room/room-testing/2.2.5/room-testing-2.2.5.aar
A androidx/room/room-testing/2.2.5/room-testing-2.2.5.aar.md5
A androidx/room/room-testing/2.2.5/room-testing-2.2.5.aar.sha1
A androidx/room/room-testing/2.2.5/room-testing-2.2.5.pom
A androidx/room/room-testing/2.2.5/room-testing-2.2.5.pom.md5
A androidx/room/room-testing/2.2.5/room-testing-2.2.5.pom.sha1
ap...@google.com <ap...@google.com> #66
Branch: androidx-master-dev
commit 7ce837660c516cc73e0253696458c29cf9452def
Author: Daniel Santiago Rivera <danysantiago@google.com>
Date: Tue Mar 03 09:01:51 2020
Import Room 2.2.5
This version includes fixes for parallel builds in androidx.
Bug: 146217083
Test: n/a
Change-Id: If25fb963e9aa3328bd7f860c5953fd830216d219
M paging/integration-tests/testapp/build.gradle
M work/integration-tests/testapp/build.gradle
M work/workmanager-gcm/build.gradle
M work/workmanager/build.gradle
ap...@google.com <ap...@google.com> #67
Branch: androidx-master-dev
commit fb21fa7e96cda2dec50c3028efb0ed9f9e343801
Author: Jeff Gaston <jeffrygaston@google.com>
Date: Tue Mar 03 11:50:20 2020
Revert "Increasing javac verbosity on build server in room projects"
This reverts commit f27b98274038ccb5b1ec32f0945331893a5c4efe.
We haven't been observing the Gradle Daemon to be dying recently, so we probably don't need this extra logging anymore
Bug: 146217083
Test: Treehugger runs busytown/androidx.sh
Change-Id: I0f3773dd5a49aa9c1adf50e9ca6dc1c9db724d69
M buildSrc/src/main/kotlin/androidx/build/AndroidXPlugin.kt
ap...@google.com <ap...@google.com> #68
Branch: androidx-master-dev
commit 1971cc5104921a879c373640cfcb829974ab3d4b
Author: Jeff Gaston <jeffrygaston@google.com>
Date: Tue Mar 03 11:54:03 2020
Removing dmesg and ps diagnostics after build server build failure
We haven't been observing the Gradle Daemon to be dying recently, so we probably don't need this extra logging anymore
Bug: 146217083
Test: ./busytown/androidx.sh nonexistentTask # and see that no output from dmesg or ps gets displayed
Change-Id: I47342de71fa4f149d61c89844033d9e3f2f36c96
M gradlew
ap...@google.com <ap...@google.com> #69
Branch: androidx-master-dev
commit 564a16b6fd004103b6bd8e96de6124add37d31f5
Author: Jeff Gaston <jeffrygaston@google.com>
Date: Mon Mar 09 20:55:00 2020
Revert "Telling the build server to kill java processes from other builds before starting the androidx builds"
This reverts commit 1965b01730af670017b8faeea17b6388a172e87d.
Reason for revert: Not needed anymore now that the builds are passing
Bug: 146217083
Test: treehugger runs busytown/androidx.sh
Change-Id: Idc035deb00a76d19be51cbf2d816517bf192eda2
M busytown/impl/build.sh
ap...@google.com <ap...@google.com> #70
Branch: androidx-master-dev
commit 04bf7dec2446480e85efb6b7baf42ccdd9a969b8
Author: Jeff Gaston <jeffrygaston@google.com>
Date: Thu Feb 13 19:21:09 2020
Adding --no-daemon into validateRefactor.sh to make extra sure to avoid sharing state
Leaving the daemon running seems to be causing errors reading zip files
Bug: 146217083
Bug: 148450617
Test: BUILD_DOKKA=true ./development/validateRefactor.sh external/dokka:HEAD^
Change-Id: I24b78d49f5f6a863e16568aa30a0ae44317baa52
M development/validateRefactor.sh
je...@google.com <je...@google.com> #71
hu...@google.com <hu...@google.com> #72
Hi Jeff, can you maybe sum up 1 or 2 key takeaways from this (regarding the root cause, any mistakes, any lessons)? That'll benefit us all when we run into this problem again (not just this specific issue but the generic "Gradle build daemon disappear unexpectedly" issue). Thanks!
je...@google.com <je...@google.com> #73
Now with
I also compiled a longer summary of the story of this bug into go/diagnosing-androidx-gradle-daemon-disappearing but I forgot to mention it on this bug, sorry about that.
Thanks
ap...@google.com <ap...@google.com> #74
Branch: androidx-master-dev
commit fc943b6962353e2200f0c3a8835e5b39bf69dc47
Author: Jeff Gaston <jeffrygaston@google.com>
Date: Fri Aug 28 09:28:59 2020
No longer having the build server builds list their out/ dirs
We're no longer having confusing problems where we need to rule out the possibility of inconsistent starting state
Now this is unneeded and a little distracting
Bug: 146217083
Bug: 140635374
Change-Id: Ie83ccab6c2b016dc723ebd866ff2d23dd23cf882
M busytown/impl/build.sh
ap...@google.com <ap...@google.com> #75
Branch: androidx-main
commit 449de9fe40ce40a2d8374b6428a2dc4799c892ee
Author: Jeff Gaston <jeffrygaston@google.com>
Date: Tue May 18 15:41:15 2021
no longer copying daemon logs on failure
We haven't been observing daemons dying in a while
Bug: 146217083
Test: Treehugger runs busytown/*.sh
Change-Id: I31250a6c484f415efc6e133531fd380e3363dc13
M gradlew
Description
Note: /usr/local/google/buildbot/src/android/androidx-master-dev/frameworks/support/recommendation/src/main/java/androidx/recommendation/app/ContentRecommendation.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: /usr/local/google/buildbot/src/android/androidx-master-dev/frameworks/support/recyclerview/recyclerview/src/main/java/androidx/recyclerview/widget/PagerSnapHelper.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: /usr/local/google/buildbot/src/android/androidx-master-dev/frameworks/support/samples/SupportAnimationDemos/src/main/java/com/example/android/support/animation/SpringView.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: /usr/local/google/buildbot/src/android/androidx-master-dev/frameworks/support/customview/src/main/java/androidx/customview/widget/ExploreByTouchHelper.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
aidl E 12-11 21:06:47 6654 6654 aidl.cpp:581] refusing to generate code from aidl file defining parcelable
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
The message received from the daemon indicates that the daemon has disappeared.
Build request sent: Build{id=8ff58aac-ca83-408e-8ee2-d0ffd3158072, currentDir=/usr/local/google/buildbot/src/android/androidx-master-dev}
Attempting to read last messages from the daemon log...
Note: /usr/local/google/buildbot/src/android/androidx-master-dev/frameworks/support/browser/src/test/java/androidx/browser/customtabs/CustomTabsIntentTest.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: /usr/local/google/buildbot/src/android/androidx-master-dev/frameworks/support/enterprise/feedback/src/test/java/androidx/enterprise/feedback/DefaultKeyedAppStatesReporterTest.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Daemon pid: 5071
log file: /usr/local/google/buildbot/src/android/androidx-master-dev/out/.gradle/daemon/6.0/daemon-5071.out.log
----- Last 20 lines from daemon log file - daemon-5071.out.log -----
androidx.enterprise.feedback.KeyedAppStateTest > fromBundle_invalidBundle_throwsIllegalArgumentException[22] STANDARD_OUT
[Robolectric] androidx.enterprise.feedback.KeyedAppStateTest.fromBundle_invalidBundle_throwsIllegalArgumentException: sdk=22; resources=BINARY
Invalidating in-memory cache of /usr/local/google/buildbot/src/android/androidx-master-dev/out/.gradle/caches/6.0/javaCompile/jarAnalysis.bin
androidx.enterprise.feedback.KeyedAppStateTest > fromBundle_invalidBundle_throwsIllegalArgumentException[23] STANDARD_OUT
[Robolectric] androidx.enterprise.feedback.KeyedAppStateTest.fromBundle_invalidBundle_throwsIllegalArgumentException: sdk=23; resources=BINARY
androidx.camera.core.OptionTest > canCreateOption_fromGenericClass_andAssignFromNarrowClass[27] STANDARD_OUT
[Robolectric] androidx.camera.core.OptionTest.canCreateOption_fromGenericClass_andAssignFromNarrowClass: sdk=27; resources=BINARY
Created classpath snapshot for incremental compilation in 0.095 secs. 181 duplicate classes found in classpath (see all with --debug).
androidx.enterprise.feedback.KeyedAppStateTest > fromBundle_invalidBundle_throwsIllegalArgumentException[24] STANDARD_OUT
[Robolectric] androidx.enterprise.feedback.KeyedAppStateTest.fromBundle_invalidBundle_throwsIllegalArgumentException: sdk=24; resources=BINARY
Invalidating in-memory cache of /usr/local/google/buildbot/src/android/androidx-master-dev/out/.gradle/caches/journal-1/file-access.bin
Stored cache entry for task ':room:integration-tests:room-testapp:compileReleaseJavaWithJavac' with cache key 725e0d0f6c0b11c03357636d17b80034
Task :room:integration-tests:room-testapp:compileReleaseJavaWithJavac in ads-identifier Finished
:room:integration-tests:room-testapp:compileReleaseJavaWithJavac (Thread[Execution worker for ':' Thread 2,5,main]) completed. Took 2.393 secs.
:room:integration-tests:room-testapp:javaPreCompileReleaseUnitTest (Thread[Execution worker for ':' Thread 2,5,main]) started.
Task :room:integration-tests:room-testapp:javaPreCompileReleaseUnitTest in ads-identifier Starting
----- End of the daemon log -----
FAILURE: Build failed with an exception.
* What went wrong:
Gradle build daemon disappeared unexpectedly (it may have been killed or may have crashed)