Status Update
Comments
je...@google.com <je...@google.com> #2
This is a particularly hard device to come by - do you happen to have access to the device? If so could you provide us with the output of: adb shell dumpsys media.camera > info.txt
Thanks!
je...@google.com <je...@google.com> #3
Stacktrace:
Caused by: java.lang.IllegalArgumentException: Can not get supported output size under supported maximum for the format: 34
at androidx.camera.camera2.internal.SupportedSurfaceCombination.getSupportedOutputSizes(SupportedSurfaceCombination.java:355)
at androidx.camera.camera2.internal.SupportedSurfaceCombination.getSuggestedResolutions(SupportedSurfaceCombination.java:197)
at androidx.camera.camera2.internal.Camera2DeviceSurfaceManager.getSuggestedResolutions(Camera2DeviceSurfaceManager.java:198)
at androidx.camera.core.CameraX.calculateSuggestedResolutions(CameraX.java:943)
at androidx.camera.core.CameraX.bindToLifecycle(CameraX.java:293)
at androidx.camera.lifecycle.ProcessCameraProvider.bindToLifecycle(ProcessCameraProvider.java:227)
Below are some findings based on our debugging
When Dex is connected
previewConfig.getMaxResolution() is returning "731x411" as maxSize.
Inside Preview.Builder.build() -> Default_MAX_resolution is set to "CameraX.getSurfaceManager().getPreviewSize()" which is 731x411
this is being picked as maxSize.
While rendering maxSize is 731x411 and minSize is 640x480 and below are available outputSizes
0 = {Size@11860} "4032x3024"
1 = {Size@11861} "3984x2988"
2 = {Size@11862} "4032x2268"
3 = {Size@11863} "3024x3024"
4 = {Size@11864} "2976x2976"
5 = {Size@11865} "3840x2160"
6 = {Size@11866} "3264x2448"
7 = {Size@11867} "4032x1960"
8 = {Size@11868} "2880x2160"
9 = {Size@11869} "3264x1836"
10 = {Size@11870} "2160x2160"
11 = {Size@11871} "2560x1440"
12 = {Size@11872} "2224x1080"
13 = {Size@11873} "2048x1152"
14 = {Size@11874} "1920x1080"
15 = {Size@11875} "1440x1080"
16 = {Size@11876} "1088x1088"
17 = {Size@11877} "1280x720"
18 = {Size@11878} "1024x768"
19 = {Size@11879} "1056x704"
20 = {Size@11880} "960x720"
21 = {Size@11881} "960x540"
22 = {Size@11882} "720x720"
23 = {Size@11883} "800x450"
24 = {Size@11884} "720x480"
25 = {Size@11885} "640x480"
26 = {Size@11886} "352x288"
27 = {Size@11887} "320x240"
28 = {Size@11888} "256x144"
29 = {Size@11889} "176x144"
and couldn't find any size in this range.
When Dex not connected
minsize = 640x480
maxsize = 1920x1080
0 = {Size@11836} "4032x3024"
1 = {Size@11837} "3984x2988"
2 = {Size@11838} "4032x2268"
3 = {Size@11839} "3024x3024"
4 = {Size@11840} "2976x2976"
5 = {Size@11841} "3840x2160"
6 = {Size@11842} "3264x2448"
7 = {Size@11843} "4032x1960"
8 = {Size@11844} "2880x2160"
9 = {Size@11845} "3264x1836"
10 = {Size@11846} "2160x2160"
11 = {Size@11847} "2560x1440"
12 = {Size@11848} "2224x1080"
13 = {Size@11849} "2048x1152"
14 = {Size@11850} "1920x1080"
15 = {Size@11851} "1440x1080"
16 = {Size@11852} "1088x1088"
17 = {Size@11853} "1280x720"
18 = {Size@11854} "1024x768"
19 = {Size@11855} "1056x704"
20 = {Size@11856} "960x720"
21 = {Size@11857} "960x540"
22 = {Size@11858} "720x720"
23 = {Size@11859} "800x450"
24 = {Size@11860} "720x480"
25 = {Size@11861} "640x480"
26 = {Size@11862} "352x288"
27 = {Size@11863} "320x240"
28 = {Size@11864} "256x144"
29 = {Size@11865} "176x144"
and we have 12 available sizes in this range
Camera2DeviceSurfaceManager.java:: getPreviewSize()
mCameraSupportedSurfaceCombinationMap.get(cameraId).getSurfaceDefinition().getPreviewSize() = "1920x1080"
cameraId=0
je...@google.com <je...@google.com> #4
The issue root cause is that CameraX will default filter out sizes smaller than 640x480. For Preview, the max size will be limited to under display size. I checked the HW spec info for the issue related devices. Display size of FUJITSU F-04J/F-05J is 360x640. That will result int that no size exists in the conditions that is larger or equal to 640x480 and smaller or equal to 360x640.
A temporary workaround for this situation is to use Preview.Builder#setTargetResolution() to set a size smaller than 640x480 to bypass the problem.
For device FUJITSU arrowsM04, I checked its HW spec info and its display size I found is 1280x720. It seems that the problem should not exist in the device.
Could you confirm that the problem exist on arrowsM04 device? What will be the returned value when using Display#getRealSize to obtain the display size?
ra...@google.com <ra...@google.com> #5
> A temporary workaround for this situation is to use Preview.Builder#setTargetResolution() to set a size smaller than 640x480 to bypass the problem.
OK. I will try it.
> Could you confirm that the problem exist on arrowsM04 device?
We receive the crash report (Crashlytics) that this crash has occurred on arrowsM04.
We don't have this device so we can't confirm that the problem really exist on arrowsM04.
> What will be the returned value when using Display#getRealSize to obtain the display size?
We can't investigate it for the same reason.
Thank you.
ap...@google.com <ap...@google.com> #6
This issue happened on devices that the display size is smaller than 640x480. In original auto-resolution mechanism, supported sizes smaller than 640x480 will be default filter out.
The auto-resolution mechanism encodes the guaranteed configurations tables in CameraDevice#createCaptureSession(SessionConfiguration). It defines that the PREVIEW size is the small one of the device display size and 1080p. The PREVIEW size will be the maximal size limitation for Preview use case. The reason it limits the size to display size and 1080p is the stream output in display size or 1080p has been able to provide good enough preview quality. Therefore, auto-resolution mechanism will limit the selected size to be smaller than the small one of the device display size and 1080p.
With above two conditions, in this issue, all sizes smaller than 640x480 have been filter out, therefore, there is no size smaller than the display size 320x240 can be selected to use. And cause the exception.
Solution:
When the display size is smaller than 640x480, auto-resolution mechanism won't filter out those small sizes smaller than 640x480. This makes those small size be left and can be selected for the Preview use case on small display devices.
The solution has been merged and will be included in next CameraX release.
ap...@google.com <ap...@google.com> #7
Hello.
This crash still occurs.
- CAMERAX VERSION: 1.0.0-beta4
- ANDROID OS BUILD NUMBER: Android 7.1.1
- DEVICE NAME: FUJITSU F-02H
We receive following crash report from FUJITSU F-02H. So far We have received this crash report only from F-02H.
java.lang.IllegalArgumentException
Can not get supported output size under supported maximum for the format: 34
androidx.camera.camera2.internal.SupportedSurfaceCombination.getSupportedOutputSizes (SupportedSurfaceCombination.java:349)
androidx.camera.camera2.internal.SupportedSurfaceCombination.getSuggestedResolutions (SupportedSurfaceCombination.java:197)
androidx.camera.camera2.internal.Camera2DeviceSurfaceManager.getSuggestedResolutions (Camera2DeviceSurfaceManager.java:198)
androidx.camera.core.CameraX.calculateSuggestedResolutions (CameraX.java:949)
androidx.camera.core.CameraX.bindToLifecycle (CameraX.java:351)
androidx.camera.lifecycle.ProcessCameraProvider.bindToLifecycle (ProcessCameraProvider.java:230)
(our application's package name).CameraFragment.bindCameraUseCases (CameraFragment.java:174)
je...@google.com <je...@google.com> #8
Could you help to provide the following information to clarify the issue?
1. Is the full name of the device Fujitsu Arrows NX F-02H that has a 1440x2560 display?
2. Please help to provide the supported output sizes of ImageFormat.PRIVATE that is obtained by StreamConfigurationMap#getOutputSizes(int).
je...@google.com <je...@google.com> #9
- Is the full name of the device Fujitsu Arrows NX F-02H that has a 1440x2560 display?
Yes
- Please help to provide the supported output sizes of ImageFormat.PRIVATE that is obtained by StreamConfigurationMap#getOutputSizes(int).
Since we don't have this device, we'll try to collect this information in the next version of our app. The next version will be released later this month.
je...@google.com <je...@google.com> #10
Hello.
- Please help to provide the supported output sizes of ImageFormat.PRIVATE that is obtained by StreamConfigurationMap#getOutputSizes(int).
We have collected the output of the device where the crash occurs.
Device1
- Model : arrows Be F-05J
- Android Version : 7.1.1
- Supported output sizes of ImageFormat.PRIVATE
CameraId 0: 480x480
CameraId 1: 2048x1536 ,1920x1080 ,1280x720 ,960x720 ,640x480 ,320x240 ,176x144
Device2
- Model : Fujitsu arrows M04
- Android Version : 7.1.1
- Supported output sizes of ImageFormat.PRIVATE
CameraId 0: 480x480
CameraId 1: 2048x1536 ,1920x1080 ,1280x720 ,960x720 ,640x480 ,320x240 ,176x144
Additional Information
CameraX version : 1.0.0-beta04
We collect the supported output sizes by following code.
val errorString = buildString {
append("The supported output sizes of ImageFormat.PRIVATE: ")
(requireContext().getSystemService(Context.CAMERA_SERVICE) as CameraManager).apply {
cameraIdList.forEachIndexed { index, cameraId ->
val msg = if (VERSION.SDK_INT >= VERSION_CODES.M) {
val configurationMap =
getCameraCharacteristics(cameraId).get(CameraCharacteristics.SCALER_STREAM_CONFIGURATION_MAP)
val sizes = configurationMap?.getOutputSizes(ImageFormat.PRIVATE)
"CameraId $index: ${sizes?.joinToString(" ,")}"
} else {
"CameraId $index: This device version is under M."
}
append(msg)
}
}
}
au...@google.com <au...@google.com> #11
ap...@google.com <ap...@google.com> #12
I tried to find the device specs and both 720x1280
size display. For the camera id 0 device, it is a different case that the display size is larger than 640x480
but the device only supports a 480x480
size. The case also caused the same IllegalArgumentException and was also fixed by 1.0.0-beta04
release. Before 480x480
size would be filtered out and then caused the IllegalArgumentException. After it was merged, the 640x480
size threshold was removed and then the 480x480
size would be kept and selected to use.
It looks like 1.0.0-beta04
release had been used to collect the supported sizes information. But the issue should have been fixed by 1.0.0-beta04
release. Did you only check the device model name to collect the supported sizes information or collect the information when the IllegalArgumentException issue happens again?
CameraX's 1.0.0-beta04
version. Maybe you can also consider to upgrade to the latest 1.0.0-rc01
version for your application. Thanks.
je...@google.com <je...@google.com> #13
Did you only check the device model name to collect the supported sizes information or collect the information when the IllegalArgumentException issue happens again?
We collect informations only from the device on which IllegalArgumentException happened.
Our latest app uses CameraX version 1.0.0-beta10
and this issue still occurres.
However we don't receive crash report from Fujitsu arrows Be F-05J
or Fujitsu arrows M04
so far. (This doesn't mean this issue is fixed on these devices because our app is heavily rely on camera so these device's user wouldn't use our app anymore.)
Instead, we receive crash report from
- Model : Fujitsu F-03K
- Android Version : 7.1.2
- Supported output sizes of ImageFormat.PRIVATE
CameraId 0 : 480x480
CameraId 1 : 2048x1536 ,1920x1080 ,1280x720 ,960x720 ,640x480 ,320x240 ,176x144
je...@google.com <je...@google.com> #14
I missed some settings when I simulated the issue by robolectric test so that I was not able to reproduce it. Now, I can reproduce the issue if the device only supports one 480x480 resolution. I'm working on the solution and target to make it included in next release.
je...@google.com <je...@google.com> #15
Branch: androidx-main
commit 69d15dff7bb857ee33a0f643ff42a0f8bc475ab2
Author: charcoalchen <charcoalchen@google.com>
Date: Fri Jan 08 18:30:03 2021
Fixed IllegalArgumentException issue happened when all preview supported sizes are smaller than 640x480 and display size is larger than 640x480.
Do not filter out sizes smaller than 640x480 when all preview supported sizes are smaller than 640x480 and display size is larger than 640x480.
Relnote:"Fixed IllegalArgumentException issue happened when all preview supported sizes are smaller than 640x480 and display size is larger than 640x480."
Bug: 150506192
Test: SupportedSurfaceCombinationTest
Change-Id: I2a63ce8e2ad42a9cc060c8635ac3603bf440b1ec
M camera/camera-camera2/src/main/java/androidx/camera/camera2/internal/SupportedSurfaceCombination.java
M camera/camera-camera2/src/test/java/androidx/camera/camera2/internal/SupportedSurfaceCombinationTest.java
je...@google.com <je...@google.com> #16
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)