Fixed
Status Update
Comments
da...@google.com <da...@google.com> #2
Another instance: https://android-build.googleplex.com/builds/pending/P10986006/androidx_host_tests_max_dep_versions/latest/view/logs/build_error.log
which says:
The message received from the daemon indicates that the daemon has disappeared.
Build request sent: Build{id=0aba0dd6-d140-4723-8ae6-1c8cecbfba77, currentDir=/buildbot/src/android/androidx-master-dev}
Attempting to read last messages from the daemon log...
Daemon pid: 15649
log file: /buildbot/src/android/androidx-master-dev/out/.gradle/daemon/6.0/daemon-15649.out.log
----- Last 20 lines from daemon log file - daemon-15649.out.log -----
I/MonitoringInstr: Setting context classloader to 'org.robolectric.internal.AndroidSandbox$SdkSandboxClassLoader@18f946ad', Original: 'org.robolectric.internal.AndroidSandbox$SdkSandboxClassLoader@18f946ad'
androidx.camera.camera2.impl.Camera2CameraInfoImplTest > cameraInfo_canCalculateCorrectRelativeRotation_forBackCamera[22] STANDARD_OUT
[Robolectric] androidx.camera.camera2.impl.Camera2CameraInfoImplTest.cameraInfo_canCalculateCorrectRelativeRotation_forBackCamera: sdk=22; resources=BINARY
Gradle Test Executor 109 started executing tests.
Note: /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.
Stream closed
androidx.camera.camera2.impl.Camera2CameraInfoImplTest > cameraInfo_canCalculateCorrectRelativeRotation_forBackCamera[23] STANDARD_OUT
[Robolectric] androidx.camera.camera2.impl.Camera2CameraInfoImplTest.cameraInfo_canCalculateCorrectRelativeRotation_forBackCamera: sdk=23; resources=BINARY
androidx.camera.core.CameraCaptureResultsTest > canRetrieveCameraCaptureResult[27] STANDARD_OUT
androidx.enterprise.feedback.KeyedAppStatesServiceTest STANDARD_ERROR
[Robolectric] androidx.camera.core.CameraCaptureResultsTest.canRetrieveCameraCaptureResult: sdk=27; resources=BINARY
[Robolectric] WARN: Android SDK 10000 requires Java 9 (have Java 8). Tests won't be run on SDK 10000 unless explicitly requested.
I/MonitoringInstr: Instrumentation started!
I/MonitoringInstr: Setting context classloader to 'org.robolectric.internal.AndroidSandbox$SdkSandboxClassLoader@215389e1', Original: 'org.robolectric.internal.AndroidSandbox$SdkSandboxClassLoader@215389e1'
Created classpath snapshot for incremental compilation in 0.439 secs. 253 duplicate classes found in classpath (see all with --debug).
----- End of the daemon log -----
which says:
The message received from the daemon indicates that the daemon has disappeared.
Build request sent: Build{id=0aba0dd6-d140-4723-8ae6-1c8cecbfba77, currentDir=/buildbot/src/android/androidx-master-dev}
Attempting to read last messages from the daemon log...
Daemon pid: 15649
log file: /buildbot/src/android/androidx-master-dev/out/.gradle/daemon/6.0/daemon-15649.out.log
----- Last 20 lines from daemon log file - daemon-15649.out.log -----
I/MonitoringInstr: Setting context classloader to 'org.robolectric.internal.AndroidSandbox$SdkSandboxClassLoader@18f946ad', Original: 'org.robolectric.internal.AndroidSandbox$SdkSandboxClassLoader@18f946ad'
androidx.camera.camera2.impl.Camera2CameraInfoImplTest > cameraInfo_canCalculateCorrectRelativeRotation_forBackCamera[22] STANDARD_OUT
[Robolectric] androidx.camera.camera2.impl.Camera2CameraInfoImplTest.cameraInfo_canCalculateCorrectRelativeRotation_forBackCamera: sdk=22; resources=BINARY
Gradle Test Executor 109 started executing tests.
Note: /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.
Stream closed
androidx.camera.camera2.impl.Camera2CameraInfoImplTest > cameraInfo_canCalculateCorrectRelativeRotation_forBackCamera[23] STANDARD_OUT
[Robolectric] androidx.camera.camera2.impl.Camera2CameraInfoImplTest.cameraInfo_canCalculateCorrectRelativeRotation_forBackCamera: sdk=23; resources=BINARY
androidx.camera.core.CameraCaptureResultsTest > canRetrieveCameraCaptureResult[27] STANDARD_OUT
androidx.enterprise.feedback.KeyedAppStatesServiceTest STANDARD_ERROR
[Robolectric] androidx.camera.core.CameraCaptureResultsTest.canRetrieveCameraCaptureResult: sdk=27; resources=BINARY
[Robolectric] WARN: Android SDK 10000 requires Java 9 (have Java 8). Tests won't be run on SDK 10000 unless explicitly requested.
I/MonitoringInstr: Instrumentation started!
I/MonitoringInstr: Setting context classloader to 'org.robolectric.internal.AndroidSandbox$SdkSandboxClassLoader@215389e1', Original: 'org.robolectric.internal.AndroidSandbox$SdkSandboxClassLoader@215389e1'
Created classpath snapshot for incremental compilation in 0.439 secs. 253 duplicate classes found in classpath (see all with --debug).
----- End of the daemon log -----
ap...@google.com <ap...@google.com> #3
Hmm, it doesn't seem to be specific to the androidx_host_tests_max_dep_versions target though because these failed (in postsubmit) too:
https://android-build.googleplex.com/builds/submitted/6068752/androidx_max_dep_versions/latest/view/logs/build_error.log
https://android-build.googleplex.com/builds/submitted/6068534/androidx_test_dependent_apks/latest/view/logs/build_error.log
https://android-build.googleplex.com/builds/submitted/6068188/androidx_test_changed_apks/latest/view/logs/build_error.log
Each of these three seems to say the same thing, but it's different from the two above:
The message received from the daemon indicates that the daemon has disappeared.
Build request sent: Build{id=52088053-6fbd-4436-8aab-5e305f8428aa, currentDir=/usr/local/google/buildbot/src/android/androidx-master-dev}
Attempting to read last messages from the daemon log...
Daemon pid: 28679
log file: /usr/local/google/buildbot/src/android/androidx-master-dev/out/.gradle/daemon/6.0/daemon-28679.out.log
----- Last 20 lines from daemon log file - daemon-28679.out.log -----
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: 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. Seehttps://developer.android.com/reference/android/arch/persistence/room/Transaction.html for details.
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. Seehttps://developer.android.com/reference/android/arch/persistence/room/Transaction.html for details.
List<UserAndPet> getUsersWithPet();
^
2 warnings
Stream closed
----- End of the daemon log -----
Each of these three seems to say the same thing, but it's different from the two above:
The message received from the daemon indicates that the daemon has disappeared.
Build request sent: Build{id=52088053-6fbd-4436-8aab-5e305f8428aa, currentDir=/usr/local/google/buildbot/src/android/androidx-master-dev}
Attempting to read last messages from the daemon log...
Daemon pid: 28679
log file: /usr/local/google/buildbot/src/android/androidx-master-dev/out/.gradle/daemon/6.0/daemon-28679.out.log
----- Last 20 lines from daemon log file - daemon-28679.out.log -----
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: 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 -----
el...@google.com <el...@google.com>
ma...@justpinch.com <ma...@justpinch.com> #4
Hmm it looks like we only have a couple of types of messages that appear in the daemon log before the daemon dies
I wonder if we should disable a couple of these things (maybe BareRelationDatabaseTest?) until we can figure out the root cause?
I wonder if we should disable a couple of these things (maybe BareRelationDatabaseTest?) until we can figure out the root cause?
da...@google.com <da...@google.com> #5
ma...@justpinch.com <ma...@justpinch.com> #6
Project: platform/frameworks/support
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
https://android-review.googlesource.com/1196714
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
Description
Component used:androidx.room:room-*
Version used: 2.3.0, 2.4.0-alpha02
Devices/Android versions reproduced on: N/A -> code-gen error (kapt)
The documentation on states:
@Transaction
But unless I'm misunderstanding what this is trying to communicate, reality seems to be different.
Given the following dao:
Although implementations are generated, errors are thrown for the
@Transaction
annotated functions returningLiveData
andFlowable
:This seems to contradict the earlier statement from the documentation on
@Transaction
? Is there another way to use@Transaction
with a deferred/async return type?What's also interesting is that the
@Transaction
annotated function returning aFlow
does not yield any errors. Isn'tFlow
also a deferred/async return type? Does this mean that Room can in fact guarantee that all queries in the method are performed on the same thread? If so, how?The generated code looks like this:
This function is no longer deferred, because the transactional operations involve blocking I/O, and there are assertions in place that will fail if this is called from the main thread. And even if we were to make this function suspendable (we would then have a suspendable function returning a Flow?🤨), it would still not be main-safe.
In conclusion, I suspect:
@Transaction
is no longer accurate?@Transaction
annotation returning aFlow
should also yield a code-gen error?