|
|
@@ -8,6 +8,7 @@
|
|
|
package org.elasticsearch.xpack.transform.transforms;
|
|
|
|
|
|
import org.elasticsearch.ElasticsearchTimeoutException;
|
|
|
+import org.elasticsearch.ExceptionsHelper;
|
|
|
import org.elasticsearch.action.ActionListener;
|
|
|
import org.elasticsearch.action.LatchedActionListener;
|
|
|
import org.elasticsearch.client.internal.ParentTaskAssigningClient;
|
|
|
@@ -43,6 +44,7 @@ import org.elasticsearch.xpack.transform.notifications.TransformAuditor;
|
|
|
import org.elasticsearch.xpack.transform.persistence.InMemoryTransformConfigManager;
|
|
|
import org.elasticsearch.xpack.transform.persistence.SeqNoPrimaryTermAndIndex;
|
|
|
import org.elasticsearch.xpack.transform.persistence.TransformConfigManager;
|
|
|
+import org.elasticsearch.xpack.transform.persistence.TransformStatePersistenceException;
|
|
|
import org.elasticsearch.xpack.transform.transforms.scheduling.TransformScheduler;
|
|
|
|
|
|
import java.time.Clock;
|
|
|
@@ -131,7 +133,12 @@ public class TransformIndexerFailureOnStatePersistenceTests extends ESTestCase {
|
|
|
ActionListener<SeqNoPrimaryTermAndIndex> listener
|
|
|
) {
|
|
|
if (failAt.contains(persistenceCallCount++)) {
|
|
|
- listener.onFailure(exception);
|
|
|
+ listener.onFailure(
|
|
|
+ new TransformStatePersistenceException(
|
|
|
+ "FailingToPutStoredDocTransformConfigManager.putOrUpdateTransformStoredDoc is intentionally throwing an exception",
|
|
|
+ exception
|
|
|
+ )
|
|
|
+ );
|
|
|
} else {
|
|
|
super.putOrUpdateTransformStoredDoc(storedDoc, seqNoPrimaryTermAndIndex, listener);
|
|
|
}
|
|
|
@@ -154,7 +161,10 @@ public class TransformIndexerFailureOnStatePersistenceTests extends ESTestCase {
|
|
|
if (seqNo != -1) {
|
|
|
if (seqNoPrimaryTermAndIndex.getSeqNo() != seqNo || seqNoPrimaryTermAndIndex.getPrimaryTerm() != primaryTerm) {
|
|
|
listener.onFailure(
|
|
|
- new VersionConflictEngineException(new ShardId("index", "indexUUID", 42), "some_id", 45L, 44L, 43L, 42L)
|
|
|
+ new TransformStatePersistenceException(
|
|
|
+ "SeqNoCheckingTransformConfigManager.putOrUpdateTransformStoredDoc is intentionally throwing an exception",
|
|
|
+ new VersionConflictEngineException(new ShardId("index", "indexUUID", 42), "some_id", 45L, 44L, 43L, 42L)
|
|
|
+ )
|
|
|
);
|
|
|
return;
|
|
|
}
|
|
|
@@ -266,7 +276,7 @@ public class TransformIndexerFailureOnStatePersistenceTests extends ESTestCase {
|
|
|
listener
|
|
|
),
|
|
|
e -> {
|
|
|
- assertThat(e, isA(exceptionToThrow.getClass()));
|
|
|
+ assertThat(ExceptionsHelper.unwrapCause(e), isA(exceptionToThrow.getClass()));
|
|
|
assertThat(state.get(), equalTo(TransformTaskState.STARTED));
|
|
|
assertThat(indexer.getStatePersistenceFailures(), equalTo(1));
|
|
|
}
|
|
|
@@ -278,7 +288,7 @@ public class TransformIndexerFailureOnStatePersistenceTests extends ESTestCase {
|
|
|
listener
|
|
|
),
|
|
|
e -> {
|
|
|
- assertThat(e, isA(exceptionToThrow.getClass()));
|
|
|
+ assertThat(ExceptionsHelper.unwrapCause(e), isA(exceptionToThrow.getClass()));
|
|
|
assertThat(state.get(), equalTo(TransformTaskState.STARTED));
|
|
|
assertThat(indexer.getStatePersistenceFailures(), equalTo(2));
|
|
|
}
|
|
|
@@ -290,7 +300,7 @@ public class TransformIndexerFailureOnStatePersistenceTests extends ESTestCase {
|
|
|
listener
|
|
|
),
|
|
|
e -> {
|
|
|
- assertThat(e, isA(exceptionToThrow.getClass()));
|
|
|
+ assertThat(ExceptionsHelper.unwrapCause(e), isA(exceptionToThrow.getClass()));
|
|
|
assertThat(state.get(), equalTo(TransformTaskState.FAILED));
|
|
|
assertThat(indexer.getStatePersistenceFailures(), equalTo(3));
|
|
|
}
|
|
|
@@ -352,7 +362,7 @@ public class TransformIndexerFailureOnStatePersistenceTests extends ESTestCase {
|
|
|
listener
|
|
|
),
|
|
|
e -> {
|
|
|
- assertThat(e, isA(exceptionToThrow.getClass()));
|
|
|
+ assertThat(ExceptionsHelper.unwrapCause(e), isA(exceptionToThrow.getClass()));
|
|
|
assertThat(state.get(), equalTo(TransformTaskState.STARTED));
|
|
|
assertThat(indexer.getStatePersistenceFailures(), equalTo(1));
|
|
|
}
|
|
|
@@ -377,7 +387,7 @@ public class TransformIndexerFailureOnStatePersistenceTests extends ESTestCase {
|
|
|
listener
|
|
|
),
|
|
|
e -> {
|
|
|
- assertThat(e, isA(exceptionToThrow.getClass()));
|
|
|
+ assertThat(ExceptionsHelper.unwrapCause(e), isA(exceptionToThrow.getClass()));
|
|
|
assertThat(state.get(), equalTo(TransformTaskState.STARTED));
|
|
|
assertThat(indexer.getStatePersistenceFailures(), equalTo(1));
|
|
|
}
|
|
|
@@ -389,7 +399,7 @@ public class TransformIndexerFailureOnStatePersistenceTests extends ESTestCase {
|
|
|
listener
|
|
|
),
|
|
|
e -> {
|
|
|
- assertThat(e, isA(exceptionToThrow.getClass()));
|
|
|
+ assertThat(ExceptionsHelper.unwrapCause(e), isA(exceptionToThrow.getClass()));
|
|
|
assertThat(state.get(), equalTo(TransformTaskState.STARTED));
|
|
|
assertThat(indexer.getStatePersistenceFailures(), equalTo(2));
|
|
|
}
|
|
|
@@ -401,7 +411,7 @@ public class TransformIndexerFailureOnStatePersistenceTests extends ESTestCase {
|
|
|
listener
|
|
|
),
|
|
|
e -> {
|
|
|
- assertThat(e, isA(exceptionToThrow.getClass()));
|
|
|
+ assertThat(ExceptionsHelper.unwrapCause(e), isA(exceptionToThrow.getClass()));
|
|
|
assertThat(state.get(), equalTo(TransformTaskState.FAILED));
|
|
|
assertThat(indexer.getStatePersistenceFailures(), equalTo(3));
|
|
|
}
|
|
|
@@ -517,7 +527,7 @@ public class TransformIndexerFailureOnStatePersistenceTests extends ESTestCase {
|
|
|
listener
|
|
|
),
|
|
|
e -> {
|
|
|
- assertThat(e, isA(VersionConflictEngineException.class));
|
|
|
+ assertThat(ExceptionsHelper.unwrapCause(e), isA(VersionConflictEngineException.class));
|
|
|
assertThat(state.get(), equalTo(TransformTaskState.STARTED));
|
|
|
assertThat(indexer.getStatePersistenceFailures(), equalTo(1));
|
|
|
}
|