Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0a430c10 authored by alukin's avatar alukin
Browse files

Extend the watchdog timeout when calling #partition operation

Bug: 300196400
Test: verified manually + atest FileUtilsTest
Change-Id: I1629d0e6d803e677e7f0baa731ca44a0a399c81d
parent c6b82720
Loading
Loading
Loading
Loading
+13 −2
Original line number Diff line number Diff line
@@ -217,6 +217,9 @@ class StorageManagerService extends IStorageManager.Stub
    /** Extended timeout for the system server watchdog. */
    private static final int SLOW_OPERATION_WATCHDOG_TIMEOUT_MS = 60 * 1000;

    /** Extended timeout for the system server watchdog for vold#partition operation. */
    private static final int PARTITION_OPERATION_WATCHDOG_TIMEOUT_MS = 3 * 60 * 1000;

    @GuardedBy("mLock")
    private final Set<Integer> mFuseMountedUser = new ArraySet<>();

@@ -2463,10 +2466,12 @@ class StorageManagerService extends IStorageManager.Stub
    @android.annotation.EnforcePermission(android.Manifest.permission.MOUNT_FORMAT_FILESYSTEMS)
    @Override
    public void partitionPublic(String diskId) {

        super.partitionPublic_enforcePermission();

        final CountDownLatch latch = findOrCreateDiskScanLatch(diskId);

        Watchdog.getInstance().setOneOffTimeoutForMonitors(
                PARTITION_OPERATION_WATCHDOG_TIMEOUT_MS, "#partition might be very slow");
        try {
            mVold.partition(diskId, IVold.PARTITION_TYPE_PUBLIC, -1);
            waitForLatch(latch, "partitionPublic", 3 * DateUtils.MINUTE_IN_MILLIS);
@@ -2483,6 +2488,9 @@ class StorageManagerService extends IStorageManager.Stub
        enforceAdminUser();

        final CountDownLatch latch = findOrCreateDiskScanLatch(diskId);

        Watchdog.getInstance().setOneOffTimeoutForMonitors(
                PARTITION_OPERATION_WATCHDOG_TIMEOUT_MS, "#partition might be very slow");
        try {
            mVold.partition(diskId, IVold.PARTITION_TYPE_PRIVATE, -1);
            waitForLatch(latch, "partitionPrivate", 3 * DateUtils.MINUTE_IN_MILLIS);
@@ -2499,6 +2507,9 @@ class StorageManagerService extends IStorageManager.Stub
        enforceAdminUser();

        final CountDownLatch latch = findOrCreateDiskScanLatch(diskId);

        Watchdog.getInstance().setOneOffTimeoutForMonitors(
                PARTITION_OPERATION_WATCHDOG_TIMEOUT_MS, "#partition might be very slow");
        try {
            mVold.partition(diskId, IVold.PARTITION_TYPE_MIXED, ratio);
            waitForLatch(latch, "partitionMixed", 3 * DateUtils.MINUTE_IN_MILLIS);