Assigned
Status Update
Comments
dt...@google.com <dt...@google.com> #2
Linking failed
Execution failed for task ':app:processDebugResources'.
> Android resource linking failed
/<Stripped Path>/app/src/main/res/layout/activity_main.xml:9: AAPT: error: attribute layout_behaviour (aka com.example.testlayout:layout_behaviour) not found.
error: failed linking file resources.
Execution failed for task ':app:processDebugResources'.
> Android resource linking failed
/<Stripped Path>/app/src/main/res/layout/activity_main.xml:9: AAPT: error: attribute layout_behaviour (aka com.example.testlayout:layout_behaviour) not found.
error: failed linking file resources.
ry...@google.com <ry...@google.com> #3
If it's Gradle issuse, then I tried with 5.2.1-all and same happens.
gu...@google.com <gu...@google.com> #4
it's an issue with your application, looks like you are referencing @string/appbar_scrolling_view_behavior but do not define it in your resources.
ap...@google.com <ap...@google.com> #5
No, the resource is within Android Library itself, and we implement it in xml by app:layout_behavior="@string/appbar_scrolling_view_behavior". But as of Android Studio 3.4-RC1, it seems to be fixed.:)
ap...@google.com <ap...@google.com> #6
I'm sorry but it seems to persist. I'm posting a xml layout:
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android "
xmlns:app="http://schemas.android.com/apk/res-auto "
xmlns:tools="http://schemas.android.com/tools ">
<androidx.coordinatorlayout.widget.CoordinatorLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<com.google.android.material.appbar.AppBarLayout
android:id="@+id/appbar"
style="@style/AppTheme.AppBarStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/AppTheme.AppBarOverlay">
<androidx.appcompat.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_scrollFlags="scroll|enterAlways|snap"
tools:title="@string/app_name" />
</com.google.android.material.appbar.AppBarLayout>
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/message_recyclerView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:contentDescription="@string/message_selection_view"
android:shadowColor="@color/grey_800"
app:layout_behavior="@string/appbar_scrolling_view_behavior" />
<com.google.android.material.floatingactionbutton.FloatingActionButton
android:id="@+id/fab"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|end"
android:layout_margin="@dimen/dp_16"
android:visibility="invisible"
app:backgroundTint="@color/white"
app:rippleColor="?attr/colorControlHighlight"
app:srcCompat="@drawable/ic_cloud_upload"
app:tint="@color/colorAccent" />
</androidx.coordinatorlayout.widget.CoordinatorLayout>
</layout>
As you can see within the RecyclerView that I've used the string resource and it's giving me the error.
Gradle: gradle-5.2.1-all.zip
Project level:
buildscript {
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.4.0-rc01'
}
}
Modules:
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation 'androidx.appcompat:appcompat:1.1.0-alpha02'
implementation 'com.google.android.material:material:1.1.0-alpha04'
implementation 'androidx.constraintlayout:constraintlayout:2.0.0-alpha3'
implementation 'androidx.recyclerview:recyclerview:1.1.0-alpha02'
...
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="
xmlns:app="
xmlns:tools="
<androidx.coordinatorlayout.widget.CoordinatorLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<com.google.android.material.appbar.AppBarLayout
android:id="@+id/appbar"
style="@style/AppTheme.AppBarStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/AppTheme.AppBarOverlay">
<androidx.appcompat.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_scrollFlags="scroll|enterAlways|snap"
tools:title="@string/app_name" />
</com.google.android.material.appbar.AppBarLayout>
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/message_recyclerView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:contentDescription="@string/message_selection_view"
android:shadowColor="@color/grey_800"
app:layout_behavior="@string/appbar_scrolling_view_behavior" />
<com.google.android.material.floatingactionbutton.FloatingActionButton
android:id="@+id/fab"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|end"
android:layout_margin="@dimen/dp_16"
android:visibility="invisible"
app:backgroundTint="@color/white"
app:rippleColor="?attr/colorControlHighlight"
app:srcCompat="@drawable/ic_cloud_upload"
app:tint="@color/colorAccent" />
</androidx.coordinatorlayout.widget.CoordinatorLayout>
</layout>
As you can see within the RecyclerView that I've used the string resource and it's giving me the error.
Gradle: gradle-5.2.1-all.zip
Project level:
buildscript {
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.4.0-rc01'
}
}
Modules:
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation 'androidx.appcompat:appcompat:1.1.0-alpha02'
implementation 'com.google.android.material:material:1.1.0-alpha04'
implementation 'androidx.constraintlayout:constraintlayout:2.0.0-alpha3'
implementation 'androidx.recyclerview:recyclerview:1.1.0-alpha02'
...
ap...@google.com <ap...@google.com> #7
Another example of AS 3.4 RC 1:
<androidx.core.widget.ContentLoadingProgressBar
android:id="@+id/progress_bar"
style="@style/Widget.MaterialProgressBar.ProgressBar.Horizontal.NoPadding"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:max="100"
android:progress="1"
android:progressTint="@color/colorPrimary" />
Error I'm getting: Can't resolve symbol '@style/Widget.MaterialProgressBar.ProgressBar.Horizontal.NoPadding'
Gradle: gradle-5.1.1-all
Dependencies are same as above. While with latest AS 3.3.2, I'm getting no such error and clicking it, takes me to Android's resource file of values.xml.
P.S. "looks like you are referencing @string/appbar_scrolling_view_behavior but do not define it in your resources.", I would like to add that it compiles perfectly!
<androidx.core.widget.ContentLoadingProgressBar
android:id="@+id/progress_bar"
style="@style/Widget.MaterialProgressBar.ProgressBar.Horizontal.NoPadding"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:max="100"
android:progress="1"
android:progressTint="@color/colorPrimary" />
Error I'm getting: Can't resolve symbol '@style/Widget.MaterialProgressBar.ProgressBar.Horizontal.NoPadding'
Gradle: gradle-5.1.1-all
Dependencies are same as above. While with latest AS 3.3.2, I'm getting no such error and clicking it, takes me to Android's resource file of values.xml.
P.S. "looks like you are referencing @string/appbar_scrolling_view_behavior but do not define it in your resources.", I would like to add that it compiles perfectly!
ap...@google.com <ap...@google.com> #8
Let's track this in the other bug.
ap...@google.com <ap...@google.com> #9
Project: chromiumos/platform/crosvm
Branch: chromeos
commit daf81c42d713a6590cb9303dfadcf6909d5c4194
Author: crosvm-luci-ci-builder <crosvm-luci-ci-builder@crosvm-infra.iam.gserviceaccount.com>
Date: Wed Jul 05 04:00:40 2023
Merge with upstream 2023-07-05 2/2
cdb8906ee devices: fs: Fix parsing privileged_quota_uids
bf5283602 rutabaga_gfx: make protocol change backwards compatible
5006e9601 swap: Truncate the swap file gradually
5b031ce8b base: Introduce TimerTrait
d118a09d1 devices: virtio: fs: Support negative_timeout
b3b0e3dad devices: replace usb_debug macro with cros_tracing
8b38ed76f config: Use anyhow for parsing --shard-dir flag
a852b8487 devices: fs: Use serde_keyvalue for config parsing
5b8087fc1 crosvm: config: Add unit test for parsing virtiofs cache policy
442fbdef2 Roll recipe dependencies (trivial).
487082ea5 Roll recipe dependencies (trivial).
4b67b10d5 crosvm: config: Move SharedDir to Unix-specfic directory
3aa0da5f6 devices: passthrough: Separate file for Config
https://chromium.googlesource.com/crosvm/crosvm/+log/a10fda813551b0048de5b49e534d10269e8b775c..cdb8906eeef808803ced21654486cd256541a341
BUG=b:285101684
BUG=b:283033495
BUG=b:286382050
BUG=b:259268477
BUG=b:288989607
Change-Id: Icba6834098ffcb9e44a69b8bf43d3093844947f6
https://chromium-review.googlesource.com/4664792
Branch: chromeos
commit daf81c42d713a6590cb9303dfadcf6909d5c4194
Author: crosvm-luci-ci-builder <crosvm-luci-ci-builder@crosvm-infra.iam.gserviceaccount.com>
Date: Wed Jul 05 04:00:40 2023
Merge with upstream 2023-07-05 2/2
cdb8906ee devices: fs: Fix parsing privileged_quota_uids
bf5283602 rutabaga_gfx: make protocol change backwards compatible
5006e9601 swap: Truncate the swap file gradually
5b031ce8b base: Introduce TimerTrait
d118a09d1 devices: virtio: fs: Support negative_timeout
b3b0e3dad devices: replace usb_debug macro with cros_tracing
8b38ed76f config: Use anyhow for parsing --shard-dir flag
a852b8487 devices: fs: Use serde_keyvalue for config parsing
5b8087fc1 crosvm: config: Add unit test for parsing virtiofs cache policy
442fbdef2 Roll recipe dependencies (trivial).
487082ea5 Roll recipe dependencies (trivial).
4b67b10d5 crosvm: config: Move SharedDir to Unix-specfic directory
3aa0da5f6 devices: passthrough: Separate file for Config
BUG=b:285101684
BUG=b:283033495
BUG=b:286382050
BUG=b:259268477
BUG=b:288989607
Change-Id: Icba6834098ffcb9e44a69b8bf43d3093844947f6
ap...@google.com <ap...@google.com> #10
Project: chromiumos/platform/crosvm
Branch: chromeos
commit 611db5a31c0b3c88aad8e207eb75140469f434b1
Author: crosvm-luci-ci-builder <crosvm-luci-ci-builder@crosvm-infra.iam.gserviceaccount.com>
Date: Wed Jul 05 04:00:40 2023
Merge with upstream 2023-07-05 1/2
a10fda813 Roll recipe dependencies (trivial).
5078192ea Roll recipe dependencies (nontrivial).
3014b1b15 Merge "rutabaga_gfx: simplify cross-domain teardown" into main
67c3d3e95 Merge "rutabaga_gfx: separate namespace for Wayland read pipes" into main
10094180f Merge "rutabaga_gfx: fix race between Wayland data and pipe data" into main
665c43197 Merge "rutabaga_gfx: fix race between CrossDomainWorker" into main
a36bbe970 Merge "vhost-user gpu: Stop non queue workers on sleep" into main
0da69ccb4 rutabaga_gfx: simplify cross-domain teardown
77217157d rutabaga_gfx: separate namespace for Wayland read pipes
b8928d0ba rutabaga_gfx: fix race between Wayland data and pipe data
d5dee55a5 rutabaga_gfx: fix race between CrossDomainWorker
fef1a7de1 balloon: wss_num_bins is u8
bf1ab23a8 Roll recipe dependencies (trivial).
20dace756 Roll recipe dependencies (trivial).
9628d6683 devices: virtio: Merge attr_timeout and entry_out
3d0ce0c70 devices: virtio: Renamequeue.rs to queue/split_queue.rs
0859f08d6 docs: Update network testing docs for sshing
fd92a14d0 vhost-user gpu: Stop non queue workers on sleep
314a06d76 devices: debugcon: add snapshot/restore to debugcon
https://chromium.googlesource.com/crosvm/crosvm/+log/983228e99fa7a3654915e18750d47d9e5be27a96..a10fda813551b0048de5b49e534d10269e8b775c
BUG=b:286382050
BUG=b:173630595
BUG=b:259268477
BUG=b:266513980
BUG=b:289274256
BUG=b:243621596
BUG=b:273973298
Change-Id: I7d888b24463319556f8335b52f6bd7360829e712
https://chromium-review.googlesource.com/4664791
Branch: chromeos
commit 611db5a31c0b3c88aad8e207eb75140469f434b1
Author: crosvm-luci-ci-builder <crosvm-luci-ci-builder@crosvm-infra.iam.gserviceaccount.com>
Date: Wed Jul 05 04:00:40 2023
Merge with upstream 2023-07-05 1/2
a10fda813 Roll recipe dependencies (trivial).
5078192ea Roll recipe dependencies (nontrivial).
3014b1b15 Merge "rutabaga_gfx: simplify cross-domain teardown" into main
67c3d3e95 Merge "rutabaga_gfx: separate namespace for Wayland read pipes" into main
10094180f Merge "rutabaga_gfx: fix race between Wayland data and pipe data" into main
665c43197 Merge "rutabaga_gfx: fix race between CrossDomainWorker" into main
a36bbe970 Merge "vhost-user gpu: Stop non queue workers on sleep" into main
0da69ccb4 rutabaga_gfx: simplify cross-domain teardown
77217157d rutabaga_gfx: separate namespace for Wayland read pipes
b8928d0ba rutabaga_gfx: fix race between Wayland data and pipe data
d5dee55a5 rutabaga_gfx: fix race between CrossDomainWorker
fef1a7de1 balloon: wss_num_bins is u8
bf1ab23a8 Roll recipe dependencies (trivial).
20dace756 Roll recipe dependencies (trivial).
9628d6683 devices: virtio: Merge attr_timeout and entry_out
3d0ce0c70 devices: virtio: Rename
0859f08d6 docs: Update network testing docs for sshing
fd92a14d0 vhost-user gpu: Stop non queue workers on sleep
314a06d76 devices: debugcon: add snapshot/restore to debugcon
BUG=b:286382050
BUG=b:173630595
BUG=b:259268477
BUG=b:266513980
BUG=b:289274256
BUG=b:243621596
BUG=b:273973298
Change-Id: I7d888b24463319556f8335b52f6bd7360829e712
ap...@google.com <ap...@google.com> #11
Project: chromiumos/platform2
Branch: main
commit 98ce391132ae5fd97a3627ba05a6de71aa948f44
Author: Gurchetan Singh <gurchetansingh@chromium.org>
Date: Tue Jun 27 15:57:31 2023
vm_tools/sommelier: separate namespace for Wayland read pipes
talex5@ reports:
"When sending a pipe, the guest has to know what ID the host will
assign to it. The guest guesses, by adding 2 to the last ID it knows
about, and the host checks its guess. If it was wrong
(e.g. because the host created a new ID at the same time) then
you get a protocol error."
A solution is a separate namespace for Wayland read pipes.
BUG=b:259268477
TEST= copy+paste still works
Change-Id: I996b56a38b4794a252829cf48d85e1ead58dee8b
Reviewed-on:https://chromium-review.googlesource.com/c/chromiumos/platform2/+/4653983
Tested-by: Gurchetan Singh <gurchetansingh@chromium.org>
Reviewed-by: Fergus Dall <sidereal@google.com>
Commit-Queue: Gurchetan Singh <gurchetansingh@chromium.org>
Auto-Submit: Gurchetan Singh <gurchetansingh@chromium.org>
M vm_tools/sommelier/virtualization/virtgpu_channel.cc
M vm_tools/sommelier/virtualization/virtgpu_cross_domain_protocol.h
M vm_tools/sommelier/virtualization/wayland_channel.h
https://chromium-review.googlesource.com/4653983
Branch: main
commit 98ce391132ae5fd97a3627ba05a6de71aa948f44
Author: Gurchetan Singh <gurchetansingh@chromium.org>
Date: Tue Jun 27 15:57:31 2023
vm_tools/sommelier: separate namespace for Wayland read pipes
talex5@ reports:
"When sending a pipe, the guest has to know what ID the host will
assign to it. The guest guesses, by adding 2 to the last ID it knows
about, and the host checks its guess. If it was wrong
(e.g. because the host created a new ID at the same time) then
you get a protocol error."
A solution is a separate namespace for Wayland read pipes.
BUG=b:259268477
TEST= copy+paste still works
Change-Id: I996b56a38b4794a252829cf48d85e1ead58dee8b
Reviewed-on:
Tested-by: Gurchetan Singh <gurchetansingh@chromium.org>
Reviewed-by: Fergus Dall <sidereal@google.com>
Commit-Queue: Gurchetan Singh <gurchetansingh@chromium.org>
Auto-Submit: Gurchetan Singh <gurchetansingh@chromium.org>
M vm_tools/sommelier/virtualization/virtgpu_channel.cc
M vm_tools/sommelier/virtualization/virtgpu_cross_domain_protocol.h
M vm_tools/sommelier/virtualization/wayland_channel.h
ap...@google.com <ap...@google.com> #12
Project: chromiumos/platform2
Branch: main
commit b851e4ae14b7c7d146c7772df1f10cd7c876c52d
Author: Gurchetan Singh <gurchetansingh@chromium.org>
Date: Fri Jun 09 09:33:32 2023
vm_tools/sommelier: fix race between queries and channel polls
talex5@ reports:
"CROSS_DOMAIN_CMD_GET_IMAGE_REQUIREMENTS writes to the shared ring
immediately, and thus races with any Wayland data being written to
it. To avoid this, I open the device file twice, using one for
images and the other for Wayland protocol data."
A solution is just to have them use different pieces of memory.
BUG=b:259268477
TEST=run cross-domain, observe no crash between image requirements
and wayland data
Change-Id: Ib558ce649653d2c0d4a8860cf314a5187653d5e3
Reviewed-on:https://chromium-review.googlesource.com/c/chromiumos/platform2/+/4605854
Commit-Queue: Gurchetan Singh <gurchetansingh@chromium.org>
Auto-Submit: Gurchetan Singh <gurchetansingh@chromium.org>
Tested-by: Gurchetan Singh <gurchetansingh@chromium.org>
Reviewed-by: Fergus Dall <sidereal@google.com>
M vm_tools/sommelier/virtualization/virtgpu_channel.cc
M vm_tools/sommelier/virtualization/virtgpu_cross_domain_protocol.h
M vm_tools/sommelier/virtualization/wayland_channel.h
https://chromium-review.googlesource.com/4605854
Branch: main
commit b851e4ae14b7c7d146c7772df1f10cd7c876c52d
Author: Gurchetan Singh <gurchetansingh@chromium.org>
Date: Fri Jun 09 09:33:32 2023
vm_tools/sommelier: fix race between queries and channel polls
talex5@ reports:
"CROSS_DOMAIN_CMD_GET_IMAGE_REQUIREMENTS writes to the shared ring
immediately, and thus races with any Wayland data being written to
it. To avoid this, I open the device file twice, using one for
images and the other for Wayland protocol data."
A solution is just to have them use different pieces of memory.
BUG=b:259268477
TEST=run cross-domain, observe no crash between image requirements
and wayland data
Change-Id: Ib558ce649653d2c0d4a8860cf314a5187653d5e3
Reviewed-on:
Commit-Queue: Gurchetan Singh <gurchetansingh@chromium.org>
Auto-Submit: Gurchetan Singh <gurchetansingh@chromium.org>
Tested-by: Gurchetan Singh <gurchetansingh@chromium.org>
Reviewed-by: Fergus Dall <sidereal@google.com>
M vm_tools/sommelier/virtualization/virtgpu_channel.cc
M vm_tools/sommelier/virtualization/virtgpu_cross_domain_protocol.h
M vm_tools/sommelier/virtualization/wayland_channel.h
Description
CrossDomainWorker::handle_fence
processes all ready events together. However,ContextChannel
andWaylandReadPipe
events both write to the shared page ("ring"), and this means that one will overwrite the other's message.The visible effect of this is that paste operations frequently fail. In particular, the close event is frequently lost, causing the receiving application to hang.
To make the bug easier to see, you can add this to the end of the
run
function's loop, so that events are more likely to be processed together.Here is a hacky fix that solved the problem for me:https://gitlab.com/talex5/crosvm/-/commit/854971404634be44c47aeeff3ae2ca5b46ddd5cd
(tested using my branch of crosvm, which is based on release-R104-14909.B-chromeos plus a few other fixes I need for my system, and usinghttps://github.com/talex5/wayland-proxy-virtwl as the Wayland proxy in the VM)