No description
Find a file
Akilesh Kailash cffa413de4 snapuserd: I/O request on overlapping blocks during snapshot-merge.
This fixes the case when all the following conditions are true:

1: Incremental OTA
2: When there are sequence of overlapping COPY operations within one merge-window
   (510 blocks)
3: Device is rebooted when snapshot-merge is in-progress of this
   merge-window. When device reboots, the state of merge-window (of 510 blocks) was
   merge-in-progress (aka - only partial set of blocks were merged in
   this window thereby the state of the base device is in-complete for
   this window)
4: During the next boot, if there any I/O request from the filesystem
   which maps to the merge-window in (3):
   	a: The data has to be retrieved from the scratch space of the
	COW until the snapshot-merge for that window is completed.

	b: Once the snapshot-merge is complete for that window, data
	has to be retrieved from base device.

The bug was in step 4(a) wherein I/O request was getting routed to base
device.

This patch addresses the above flow by fixing step 4(a).

A new vts test has been added to explicitly track this issue.

Additionally, there is no need to re-scan the partition if partition is in merge resume path. This should cut down the overhead of the scan.

Bug: 275296365
Test: 1: 100 iterations of ./vts_snapuserd_test --gtest_filter=SnapuserdTest.Snapshot_COPY_Overlap_Merge_Resume_IO_Validate_TEST
2: Incremental OTA on Pixel 6 Pro with multiple iterations of device
   reboot when merge is in progress

Change-Id: Ib53be7f07ff192a84ec7f7049b2c6be01dad1041
Signed-off-by: Akilesh Kailash <akailash@google.com>
2023-10-05 05:32:31 +00:00
bootstat Remove references to the pdk product variable 2023-08-03 10:54:59 -07:00
cli-test [LSC] Add LOCAL_LICENSE_KINDS to system/core 2021-02-19 12:59:05 -08:00
code_coverage Disable code_coverage.other for riscv64 2022-10-13 13:49:10 -07:00
debuggerd Add the missing copyright headers to the .S files. 2023-09-28 10:41:21 -07:00
diagnose_usb Support building diagnose_usb against musl 2021-12-16 14:04:06 -08:00
fastboot Change source to be a unique_ptr. 2023-10-02 17:02:51 -07:00
fs_mgr snapuserd: I/O request on overlapping blocks during snapshot-merge. 2023-10-05 05:32:31 +00:00
gatekeeperd Check AServiceManager_isDeclared before AServiceManager_getService 2023-06-14 02:43:54 +00:00
healthd Don't depend on String8 cast to C string 2023-09-20 15:11:54 +00:00
include Remove include/backtrace symlink. 2020-10-20 12:46:14 -07:00
init Remove obsolete <linux/capabilities.h> workarounds. 2023-09-29 22:45:59 +00:00
janitors Add myself to janitor owners. 2022-12-02 12:50:43 -08:00
libappfuse [LSC] Add LOCAL_LICENSE_KINDS to system/core 2021-02-19 12:59:05 -08:00
libasyncio Set min_sdk_version 2021-12-02 09:23:42 +09:00
libcrypto_utils Set min_sdk_version 2021-12-02 09:23:42 +09:00
libcutils Merge "Stop duplicating <linux/capabilities.h>." into main 2023-09-26 17:59:53 +00:00
libgrallocusage Make apex_available explicit 2022-02-09 11:37:19 -08:00
libkeyutils Make libfs_mgr dependencies vendor_ramdisk_available. 2021-07-23 16:50:06 -07:00
libmodprobe Merge "libmodprobe: LPM: Cleanup of redundant check" 2023-06-29 17:21:18 +00:00
libnetutils add 'nodad' support to ifc_add_address() 2023-06-30 16:36:21 +00:00
libpackagelistparser Promote HWASan tests to presubmit. 2022-06-17 22:18:49 +00:00
libprocessgroup libprocessgroup: optimize SetAttributeAction::ExecuteForProcess performance 2023-07-27 21:55:48 +00:00
libsparse Make simg2img host-only 2023-08-28 09:53:30 -07:00
libstats Add safety comments. 2023-07-21 19:13:48 +01:00
libsuspend libsuspend: vendor_available. 2021-11-02 13:52:40 -07:00
libsync Declare the headers of the ndk_library 2022-09-08 21:59:20 +00:00
libsystem Add COLOR_MODE_DISPLAY_BT2020 to graphics header. 2022-12-01 22:25:40 -08:00
libsysutils NetlinkEvent: trivial simplification. 2023-07-10 22:46:12 +00:00
libusbhost libusbhost: factor out frameworks descriptors -> byte[] code. 2022-01-24 13:35:20 -08:00
libutils Merge "Revert "Revert "Lock down String8|16.string() usage""" into main 2023-09-27 15:06:23 +00:00
libvndksupport Replace #apex with #systemapi 2022-07-17 17:43:24 +09:00
llkd llkd: Disable in userdebug builds by default 2021-11-04 16:21:46 -07:00
mini_keyctl Merge "Make libmini_keyctl_static available in recovery" 2021-11-23 17:54:31 +00:00
mkbootfs mkbootfs: consistency. 2023-01-12 04:34:15 +00:00
property_service Remove dalvik.vm.usejitprofiles system property. 2022-11-25 12:27:37 +00:00
reboot [LSC] Add LOCAL_LICENSE_KINDS to system/core 2021-02-19 12:59:05 -08:00
rootdir Merge "Remove libbinder_rpc_unstable from system required libs" into main 2023-10-05 03:54:36 +00:00
run-as [LSC] Add LOCAL_LICENSE_KINDS to system/core 2021-02-19 12:59:05 -08:00
sdcard [LSC] Add LOCAL_LICENSE_KINDS to system/core 2021-02-19 12:59:05 -08:00
shell_and_utilities Update shell_and_utilities docs for U. 2023-03-01 22:05:37 +00:00
storaged Added defaults for storaged fuzzers 2023-05-05 23:55:27 +00:00
toolbox Remove stray newline from err() call. 2023-09-07 19:30:31 +00:00
trusty Remove ambgiuity in format specifier 2023-09-27 12:29:07 +00:00
usbd usb: migration to USB gadget AIDL 2023-01-10 11:24:36 +08:00
watchdogd [LSC] Add LOCAL_LICENSE_KINDS to system/core 2021-02-19 12:59:05 -08:00
.clang-format
.clang-format-2 Move clang-formats to build. 2019-01-18 14:26:33 -08:00
.clang-format-4 Move clang-formats to build. 2019-01-18 14:26:33 -08:00
.gitignore
CleanSpec.mk snapshotctl don't auto-merge. 2020-03-03 13:19:49 -08:00
METADATA Add METADATA to system/core: Apache2+BSD=NOTICE 2020-04-29 13:16:41 -07:00
MODULE_LICENSE_APACHE2
OWNERS Add bug component to system/core 2023-07-26 07:57:58 -07:00
PREUPLOAD.cfg Configure rustfmt for preupload hook 2022-04-06 21:11:09 +00:00
rustfmt.toml Configure rustfmt for preupload hook 2022-04-06 21:11:09 +00:00