This test has always been flaky, and is not testing something super
valuable: we know that image creation succeeds throughout the rest of
the suite, so it's not very interesting to know that it can succeed in a
low-space scenario.
The inverse test is much more valuable, since we want the correct status
code when creation fails due to low space.
Bug: 240391002
Test: vts_libsnapshot_test
Merged-In: I6235d11033d2f30efe530077b877863ba2574810
Change-Id: I6235d11033d2f30efe530077b877863ba2574810
(cherry picked from commit 97e8a2f0e9)
Diagnosing DM_DEV_REMOVE failures in the test harness is quite
difficult, and it's not clear if failures are spurious or not. Instead
use SnapshotManager's helper function, which can retry on failure, and
will self-diagnose issues on legitimate failures.
Bug: N/A
Test: vts_libsnapshot_test
Change-Id: Ibcaa8406e8b1e8758b99a8e9b58c58d68ed57685
Merged-In: Ibcaa8406e8b1e8758b99a8e9b58c58d68ed57685
(cherry picked from commit e02ef9e9ce)
Due to how CF is built and tested, VABC is enabled even when not
supported by the kernel. To work around this add some logic in
libsnapshot and the test harness to recognize this situation and
silently flip off the VABC flag.
This also fixes the -force_mode option to vts_libsnapshot_test, so that
it will skip tests that aren't supported by the device.
Bug: 264279496
Test: vts_libsnapshot_test on android12-gsi with 11-5.4 kernel
Change-Id: I9279d8d400cac5cd504a7ae91f254aae57fa856d
am skip reason: skipped by user karthikmr
Original change: https://android-review.googlesource.com/c/platform/system/core/+/1915268
Change-Id: Ie20677cfa65ab6c79b8dce519d7b99c44c2b6ca0
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
am skip reason: skipped by user agowdra
Original change: https://android-review.googlesource.com/c/platform/system/core/+/1844795
Change-Id: I48d5f2e6c719becb87e174b21602b653401cfa1f
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
am skip reason: skipped by user karthikmr
Original change: https://android-review.googlesource.com/c/platform/system/core/+/1535382
Change-Id: I6bf7dbe3bde1ced95a10095ee8b8afb9cc80851c
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
am skip reason: Merged-In I971fd9e25741e18bf7f5907d562556b09db1d624 with SHA-1 0e743a25c9 is already in history
Original change: https://android-review.googlesource.com/c/platform/system/core/+/1364665
Change-Id: I534a29b1f75233c78af0563b1caebb38c98c9fae
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
am skip reason: Merged-In I971fd9e25741e18bf7f5907d562556b09db1d624 with SHA-1 0e743a25c9 is already in history
Original change: https://android-review.googlesource.com/c/platform/system/core/+/1364665
Change-Id: I60af1543461fa7debbcb1de4651b14ace0f10edf
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
am skip reason: Merged-In I00366b281eafa5677b0941419a86f2702fb3484b with SHA-1 019f731097 is already in history
Original change: https://android-review.googlesource.com/c/platform/system/core/+/1258132
Change-Id: I1a998e3a3ce3f7a0017acbe5f0824c03e82f2765
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
am skip reason: Merged-In I00366b281eafa5677b0941419a86f2702fb3484b with SHA-1 019f731097 is already in history
Original change: https://android-review.googlesource.com/c/platform/system/core/+/1258132
Change-Id: I7b9e23329f24b2e2b26e1a628b3b2ed8dad5c2ac
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
am skip reason: skipped by user dmulabagal
Original change: https://android-review.googlesource.com/c/platform/system/core/+/1239888
Change-Id: I0db8fc6b7a84a9cbfa8b4a0b1ab5f5c24ed8b427
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
am skip reason: skipped by user agowdra
Original change: https://android-review.googlesource.com/c/platform/system/core/+/1168004
Change-Id: If46801c1c8d7b2f4126b2c43d9ad90a8dd24f043
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
* changes:
Merge changes from topic "am-51ac8ff0e5ff4716aa187d26a93441df" into android12-tests-dev am: fe72948400
[automerger skipped] Merge "Fiemap tests should only run on API level >= 29." into android10-tests-dev am: dd948046ab -s ours am: a26b9ad1bd -s ours am: 2406c3cde1 -s ours
am skip reason: skipped by user dvander
Original change: https://android-review.googlesource.com/c/platform/system/core/+/1150077
Change-Id: I872517a7f6207ad1daeea0023ddc951f990d710b
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
am skip reason: skipped by user robinjacob
Original change: https://android-review.googlesource.com/c/platform/system/core/+/1146576
Change-Id: I851468a7b18906b2ad609d6d022c72f0c4619250
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This should be using unreserved free space, not total free space.
Bug: 223701928
Test: vts_libsnapshot_test
Change-Id: Ic0a657fe094b57734c93958d7e5da56fbfbada7f
(cherry picked from commit 15433b93ff)
This is a race between init process and bionic libc initialization of
snapuserd.
init->fork() ----------------> SecondStageMain() -> PropertyInit()
|
|
v
execveat ---> __libc_init_common() -> __system_properties_init()
(snapuserd)
When init process calls PropertyInit(), /dev/__properties__ directory
is created. When bionic libc of snapuserd daemon invokes __system_properties_init
_after_ init process PropertyInit() function is invoked, libc will
try to initialize the property by reading
/system/etc/selinux/plat_property_contexts. Since any reads on /system
has to be served by snapuserd, this specific read from libc cannot be
serviced leading to deadlock.
Reproduce the race by inducing a sleep of 1500ms just before execveat()
so that init process calls PropertyInit() before bionic libc
initialization. This leads to deadlock
immediately and with additional kernel instrumentation with debug
logs confirms the failure:
======================================================
init: Relaunched snapuserd with pid: 428
ext4_file_open: SNAPUSERD: path /system/etc/selinux/plat_property_contexts - Pid: 428 comm 8
ext4_file_read_iter: SNAPUSERD for path: /system/etc/selinux/plat_property_contexts pid: 428 comm 8
[ 25.418043][ T428] ext4_file_read_iter+0x3dc/0x3e0
[ 25.423000][ T428] vfs_read+0x2e0/0x354
[ 25.426986][ T428] ksys_read+0x7c/0xec
[ 25.430894][ T428] __arm64_sys_read+0x20/0x30
[ 25.435419][ T428] el0_svc_common.llvm.17612735770287389485+0xd0/0x1e0
[ 25.442095][ T428] do_el0_svc+0x28/0xa0
[ 25.446100][ T428] el0_svc+0x14/0x24
[ 25.449825][ T428] el0_sync_handler+0x88/0xec
[ 25.454343][ T428] el0_sync+0x1c0/0x200
=====================================================
Fix:
Before starting init second stage, we will wait
for snapuserd daemon to be up and running. We do a simple probe by
reading system partition. This read will eventually be serviced by
daemon confirming that daemon is up and running. Furthermore,
we are still in the kernel domain and sepolicy has not been enforced yet.
Thus, access to these device mapper block devices are ok even though
we may see audit logs.
Note that daemon will re-initialize the __system_property_init()
as part of WaitForSocket() call. This is subtle but important; since
bionic libc initialized had failed silently, it is important
that this re-initialization is done.
Bug: 207298357
Test: Induce the failure by explicitly delaying the call of execveat().
With fix, no issues observed.
Tested incremental OTA on pixel ~15 times.
Ignore-AOSP-First: cherry-pick from AOSP
Signed-off-by: Akilesh Kailash <akailash@google.com>
(cherry picked from commit 65f3d09445)
(cherry picked from commit 7043054dfe)
Merged-In: I86c2de977de052bfe9dcdc002dcbd9026601d0f3
Change-Id: I86c2de977de052bfe9dcdc002dcbd9026601d0f3
Using WriteStringToFile will hold kernfs_mutex which is a big lock,
so use WriteStringToFd instead. Besides, also support fd cache for it.
Bug: 206970384
Test: build pass
(cherry picked from commit e808841d72)
(cherry picked from commit b8d7ac60bd)
Merged-In: Id79f9e1095f52079393c58edb9a4d526f4cc6b5e
Change-Id: Id79f9e1095f52079393c58edb9a4d526f4cc6b5e
UserLifecycleTests test disables all Little cores in the course of the
test, which causes attempts to add a process into /dev/cpuset/restricted
cpuset cgroup to fail with ENOSPC error code, indicating that a process
is joining a cpuset cgroup with no online cpus. Current libprocessgroup
implementation will log an error on each such occurrence, which spams
the logs and makes it hard to analyze test results. Because this
situation does not happen in production environment (we do not offline
cpus), we can prevent flooding the logs by identifying this case,
logging an appropriate error one time and ignore all later similar errors.
Bug: 158766131
Test: adb shell "echo 0 > /sys/devices/system/cpu/cpu[0-3]/online"
Test: start some apps, observe libprocessgroup errors in the logcat
Signed-off-by: Suren Baghdasaryan <surenb@google.com>
(cherry picked from commit ae42d601d0)
(cherry picked from commit 48e692cecd)
Merged-In: Ia91d8839d86787569c255481bde077be51c43d93
Change-Id: Ia91d8839d86787569c255481bde077be51c43d93
This CHECK prevents a release build from resuming a two-phase merge if
the merge initially failed in the first pass.
Bug: 213031779
Bug: 213253413
Bug: 193549218
Ignore-AOSP-First: cherry-pick from AOSP
Test: vts_libsnapshot_test
Test: update_engine_unittests
Change-Id: I8bf00e3016546ef7039bb0b18eb977cc3dc1066a
Merged-In: I8bf00e3016546ef7039bb0b18eb977cc3dc1066a
If a merge fails we write a new snapshot status indicating that the merge
failed. If this happens to occur during the second merge phase, we fail
to propagate the phase counter to the new status. This means the merge
is unlikely to make progress and succeed later.
Bug: 213031779
Bug: 213253413
Bug: 193549218
Ignore-AOSP-First: cherry-pick from AOSP
Test: inject transient failure into CheckMergeConsistency, apply OTA,
reboot and complete merge.
Change-Id: I31fdae6bde48e3a71b6f3fcc663541257f7ebd8f
Merged-In: I31fdae6bde48e3a71b6f3fcc663541257f7ebd8f