summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--adservices/service-core/java/com/android/adservices/service/Flags.java2
-rw-r--r--adservices/service-core/java/com/android/adservices/service/appsearch/AppSearchDao.java22
-rw-r--r--adservices/service-core/java/com/android/adservices/service/appsearch/AppSearchMeasurementRollbackWorker.java4
-rw-r--r--adservices/tests/unittest/service-core/appsearch/src/com/android/adservices/service/appsearch/AppSearchDaoTest.java6
-rw-r--r--adservices/tests/unittest/service-core/appsearch/src/com/android/adservices/service/appsearch/AppSearchMeasurementRollbackWorkerTest.java5
5 files changed, 25 insertions, 14 deletions
diff --git a/adservices/service-core/java/com/android/adservices/service/Flags.java b/adservices/service-core/java/com/android/adservices/service/Flags.java
index 6f3264e1a7..57dd4300ee 100644
--- a/adservices/service-core/java/com/android/adservices/service/Flags.java
+++ b/adservices/service-core/java/com/android/adservices/service/Flags.java
@@ -4517,7 +4517,7 @@ public interface Flags extends CommonFlags {
}
/** Default value of the timeout for AppSearch read operations */
- int DEFAULT_APPSEARCH_READ_TIMEOUT_MS = 500;
+ int DEFAULT_APPSEARCH_READ_TIMEOUT_MS = 750;
/**
* Gets the value of the timeout for AppSearch read operations, in milliseconds.
diff --git a/adservices/service-core/java/com/android/adservices/service/appsearch/AppSearchDao.java b/adservices/service-core/java/com/android/adservices/service/appsearch/AppSearchDao.java
index cd52dbd72b..48d27d1c5b 100644
--- a/adservices/service-core/java/com/android/adservices/service/appsearch/AppSearchDao.java
+++ b/adservices/service-core/java/com/android/adservices/service/appsearch/AppSearchDao.java
@@ -305,13 +305,17 @@ class AppSearchDao {
// If we get failures in schemaResponse then we cannot try
// to write.
if (!setSchemaResponse.getMigrationFailures().isEmpty()) {
+ MigrationFailure failure =
+ setSchemaResponse.getMigrationFailures().get(0);
LogUtil.e(
"SetSchemaResponse migration failure: "
- + setSchemaResponse
- .getMigrationFailures()
- .get(0));
- throw new RuntimeException(
- ERROR_MESSAGE_APPSEARCH_FAILURE);
+ + failure);
+ String message =
+ String.format(
+ "%s Migration failure: %s",
+ ERROR_MESSAGE_APPSEARCH_FAILURE,
+ failure.getAppSearchResult());
+ throw new RuntimeException(message);
}
// The database knows about this schemaType and write can
// occur.
@@ -323,10 +327,10 @@ class AppSearchDao {
executor);
return deleteFuture;
} catch (AppSearchException e) {
- LogUtil.e("Cannot instantiate AppSearch database: " + e.getMessage());
+ LogUtil.e(e, "Cannot instantiate AppSearch database");
+ return FluentFuture.from(
+ Futures.immediateFailedFuture(
+ new RuntimeException(ERROR_MESSAGE_APPSEARCH_FAILURE, e)));
}
- return FluentFuture.from(
- Futures.immediateFailedFuture(
- new RuntimeException(ERROR_MESSAGE_APPSEARCH_FAILURE)));
}
}
diff --git a/adservices/service-core/java/com/android/adservices/service/appsearch/AppSearchMeasurementRollbackWorker.java b/adservices/service-core/java/com/android/adservices/service/appsearch/AppSearchMeasurementRollbackWorker.java
index b282cfefa1..85e7baf07d 100644
--- a/adservices/service-core/java/com/android/adservices/service/appsearch/AppSearchMeasurementRollbackWorker.java
+++ b/adservices/service-core/java/com/android/adservices/service/appsearch/AppSearchMeasurementRollbackWorker.java
@@ -105,7 +105,7 @@ public final class AppSearchMeasurementRollbackWorker implements MeasurementRoll
LogUtil.d("Wrote measurement rollback data to AppSearch: %s", dao);
} catch (InterruptedException | TimeoutException | ExecutionException e) {
LogUtil.e(e, "Failed to write measurement rollback to AppSearch");
- throw new RuntimeException(ConsentConstants.ERROR_MESSAGE_APPSEARCH_FAILURE);
+ throw new RuntimeException(ConsentConstants.ERROR_MESSAGE_APPSEARCH_FAILURE, e);
} finally {
READ_WRITE_LOCK.writeLock().unlock();
}
@@ -137,7 +137,7 @@ public final class AppSearchMeasurementRollbackWorker implements MeasurementRoll
LogUtil.d("Deleted MeasurementRollback data from AppSearch for: %s", storageIdentifier);
} catch (InterruptedException | TimeoutException | ExecutionException e) {
LogUtil.e(e, "Failed to delete MeasurementRollback data in AppSearch");
- throw new RuntimeException(ConsentConstants.ERROR_MESSAGE_APPSEARCH_FAILURE);
+ throw new RuntimeException(ConsentConstants.ERROR_MESSAGE_APPSEARCH_FAILURE, e);
} finally {
READ_WRITE_LOCK.writeLock().unlock();
}
diff --git a/adservices/tests/unittest/service-core/appsearch/src/com/android/adservices/service/appsearch/AppSearchDaoTest.java b/adservices/tests/unittest/service-core/appsearch/src/com/android/adservices/service/appsearch/AppSearchDaoTest.java
index 116891316c..5627ff9fb0 100644
--- a/adservices/tests/unittest/service-core/appsearch/src/com/android/adservices/service/appsearch/AppSearchDaoTest.java
+++ b/adservices/tests/unittest/service-core/appsearch/src/com/android/adservices/service/appsearch/AppSearchDaoTest.java
@@ -353,7 +353,8 @@ public class AppSearchDaoTest {
when(mockSession.setSchemaAsync(any(SetSchemaRequest.class)))
.thenReturn(Futures.immediateFuture(mockResponse));
- AppSearchResult mockResult = Mockito.mock(AppSearchResult.class);
+ AppSearchResult<String> mockResult =
+ AppSearchResult.newFailedResult(AppSearchResult.RESULT_INVALID_ARGUMENT, "test");
SetSchemaResponse.MigrationFailure failure =
new SetSchemaResponse.MigrationFailure(
/* namespace= */ TEST,
@@ -374,7 +375,8 @@ public class AppSearchDaoTest {
assertThat(e.getMessage())
.isEqualTo(
"java.lang.RuntimeException: "
- + ConsentConstants.ERROR_MESSAGE_APPSEARCH_FAILURE);
+ + ConsentConstants.ERROR_MESSAGE_APPSEARCH_FAILURE
+ + " Migration failure: [FAILURE(3)]: test");
}
@Test
diff --git a/adservices/tests/unittest/service-core/appsearch/src/com/android/adservices/service/appsearch/AppSearchMeasurementRollbackWorkerTest.java b/adservices/tests/unittest/service-core/appsearch/src/com/android/adservices/service/appsearch/AppSearchMeasurementRollbackWorkerTest.java
index b135b209f4..e8137c71c9 100644
--- a/adservices/tests/unittest/service-core/appsearch/src/com/android/adservices/service/appsearch/AppSearchMeasurementRollbackWorkerTest.java
+++ b/adservices/tests/unittest/service-core/appsearch/src/com/android/adservices/service/appsearch/AppSearchMeasurementRollbackWorkerTest.java
@@ -62,6 +62,7 @@ import java.util.List;
import java.util.concurrent.Callable;
import java.util.concurrent.Executor;
import java.util.concurrent.TimeUnit;
+import java.util.concurrent.TimeoutException;
@SmallTest
public class AppSearchMeasurementRollbackWorkerTest {
@@ -157,6 +158,8 @@ public class AppSearchMeasurementRollbackWorkerTest {
RuntimeException.class,
() -> mWorker.clearAdServicesDeletionOccurred("mock_row_id"));
assertThat(e).hasMessageThat().contains(ConsentConstants.ERROR_MESSAGE_APPSEARCH_FAILURE);
+ assertThat(e).hasCauseThat().isNotNull();
+ assertThat(e).hasCauseThat().isInstanceOf(TimeoutException.class);
}
@Test
@@ -276,6 +279,8 @@ public class AppSearchMeasurementRollbackWorkerTest {
spyWorker.recordAdServicesDeletionOccurred(
AdServicesManager.MEASUREMENT_DELETION, APEX_VERSION));
assertThat(e).hasMessageThat().contains(ConsentConstants.ERROR_MESSAGE_APPSEARCH_FAILURE);
+ assertThat(e).hasCauseThat().isNotNull();
+ assertThat(e).hasCauseThat().isInstanceOf(TimeoutException.class);
}
@Test