Merge "Increase timeout waiting for ExternalStorageService to bind." into rvc-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
c817e215f9
@@ -52,7 +52,6 @@ import static com.android.internal.util.XmlUtils.readStringAttribute;
|
|||||||
import static com.android.internal.util.XmlUtils.writeIntAttribute;
|
import static com.android.internal.util.XmlUtils.writeIntAttribute;
|
||||||
import static com.android.internal.util.XmlUtils.writeLongAttribute;
|
import static com.android.internal.util.XmlUtils.writeLongAttribute;
|
||||||
import static com.android.internal.util.XmlUtils.writeStringAttribute;
|
import static com.android.internal.util.XmlUtils.writeStringAttribute;
|
||||||
import static com.android.server.storage.StorageUserConnection.REMOTE_TIMEOUT_SECONDS;
|
|
||||||
|
|
||||||
import static org.xmlpull.v1.XmlPullParser.END_DOCUMENT;
|
import static org.xmlpull.v1.XmlPullParser.END_DOCUMENT;
|
||||||
import static org.xmlpull.v1.XmlPullParser.START_TAG;
|
import static org.xmlpull.v1.XmlPullParser.START_TAG;
|
||||||
@@ -224,6 +223,9 @@ class StorageManagerService extends IStorageManager.Stub
|
|||||||
private static final String ANDROID_VOLD_APP_DATA_ISOLATION_ENABLED_PROPERTY =
|
private static final String ANDROID_VOLD_APP_DATA_ISOLATION_ENABLED_PROPERTY =
|
||||||
"persist.sys.vold_app_data_isolation_enabled";
|
"persist.sys.vold_app_data_isolation_enabled";
|
||||||
|
|
||||||
|
// How long we wait to reset storage, if we failed to call onMount on the
|
||||||
|
// external storage service.
|
||||||
|
public static final int FAILED_MOUNT_RESET_TIMEOUT_SECONDS = 10;
|
||||||
/**
|
/**
|
||||||
* If {@code 1}, enables the isolated storage feature. If {@code -1},
|
* If {@code 1}, enables the isolated storage feature. If {@code -1},
|
||||||
* disables the isolated storage feature. If {@code 0}, uses the default
|
* disables the isolated storage feature. If {@code 0}, uses the default
|
||||||
@@ -2202,7 +2204,7 @@ class StorageManagerService extends IStorageManager.Stub
|
|||||||
} catch (ExternalStorageServiceException e) {
|
} catch (ExternalStorageServiceException e) {
|
||||||
Slog.e(TAG, "Failed to mount volume " + vol, e);
|
Slog.e(TAG, "Failed to mount volume " + vol, e);
|
||||||
|
|
||||||
int nextResetSeconds = REMOTE_TIMEOUT_SECONDS * 2;
|
int nextResetSeconds = FAILED_MOUNT_RESET_TIMEOUT_SECONDS;
|
||||||
Slog.i(TAG, "Scheduling reset in " + nextResetSeconds + "s");
|
Slog.i(TAG, "Scheduling reset in " + nextResetSeconds + "s");
|
||||||
mHandler.removeMessages(H_RESET);
|
mHandler.removeMessages(H_RESET);
|
||||||
mHandler.sendMessageDelayed(mHandler.obtainMessage(H_RESET),
|
mHandler.sendMessageDelayed(mHandler.obtainMessage(H_RESET),
|
||||||
|
|||||||
@@ -62,7 +62,7 @@ import java.util.concurrent.TimeoutException;
|
|||||||
public final class StorageUserConnection {
|
public final class StorageUserConnection {
|
||||||
private static final String TAG = "StorageUserConnection";
|
private static final String TAG = "StorageUserConnection";
|
||||||
|
|
||||||
public static final int REMOTE_TIMEOUT_SECONDS = 5;
|
public static final int REMOTE_TIMEOUT_SECONDS = 20;
|
||||||
|
|
||||||
private final Object mLock = new Object();
|
private final Object mLock = new Object();
|
||||||
private final Context mContext;
|
private final Context mContext;
|
||||||
@@ -202,6 +202,7 @@ public final class StorageUserConnection {
|
|||||||
try {
|
try {
|
||||||
if (!latch.await(REMOTE_TIMEOUT_SECONDS, TimeUnit.SECONDS)) {
|
if (!latch.await(REMOTE_TIMEOUT_SECONDS, TimeUnit.SECONDS)) {
|
||||||
// TODO(b/140025078): Call ActivityManager ANR API?
|
// TODO(b/140025078): Call ActivityManager ANR API?
|
||||||
|
Slog.wtf(TAG, "Failed to bind to the ExternalStorageService for user " + mUserId);
|
||||||
throw new TimeoutException("Latch wait for " + reason + " elapsed");
|
throw new TimeoutException("Latch wait for " + reason + " elapsed");
|
||||||
}
|
}
|
||||||
} catch (InterruptedException e) {
|
} catch (InterruptedException e) {
|
||||||
|
|||||||
Reference in New Issue
Block a user