Search in sources :

Example 6 with JobResultEntry

use of org.apache.flink.runtime.highavailability.JobResultEntry in project flink by apache.

the class DispatcherResourceCleanupTest method testErrorHandlingIfJobCannotBeMarkedAsCleanInJobResultStore.

@Test
public void testErrorHandlingIfJobCannotBeMarkedAsCleanInJobResultStore() throws Exception {
    final CompletableFuture<JobResultEntry> dirtyJobFuture = new CompletableFuture<>();
    final JobResultStore jobResultStore = TestingJobResultStore.builder().withCreateDirtyResultConsumer(dirtyJobFuture::complete).withMarkResultAsCleanConsumer(jobId -> {
        throw new IOException("Expected IOException.");
    }).build();
    final TestingJobManagerRunnerFactory jobManagerRunnerFactory = startDispatcherAndSubmitJob(createTestingDispatcherBuilder().setJobResultStore(jobResultStore), 0);
    ArchivedExecutionGraph executionGraph = new ArchivedExecutionGraphBuilder().setJobID(jobId).setState(JobStatus.FINISHED).build();
    final TestingJobManagerRunner testingJobManagerRunner = jobManagerRunnerFactory.takeCreatedJobManagerRunner();
    testingJobManagerRunner.completeResultFuture(new ExecutionGraphInfo(executionGraph));
    final CompletableFuture<? extends Throwable> errorFuture = this.testingFatalErrorHandlerResource.getFatalErrorHandler().getErrorFuture();
    try {
        final Throwable unexpectedError = errorFuture.get(100, TimeUnit.MILLISECONDS);
        fail("No error should have been reported but an " + unexpectedError.getClass() + " was handled.");
    } catch (TimeoutException e) {
    // expected
    }
    assertThat(dirtyJobFuture.get().getJobId(), is(jobId));
}
Also used : Arrays(java.util.Arrays) JobSubmissionException(org.apache.flink.runtime.client.JobSubmissionException) ThrowingRunnable(org.apache.flink.util.function.ThrowingRunnable) TestingRpcService(org.apache.flink.runtime.rpc.TestingRpcService) JobGraph(org.apache.flink.runtime.jobgraph.JobGraph) TimeoutException(java.util.concurrent.TimeoutException) ExceptionUtils(org.apache.flink.util.ExceptionUtils) JobManagerJobMetricGroupFactory(org.apache.flink.runtime.jobmaster.factories.JobManagerJobMetricGroupFactory) Assert.assertThat(org.junit.Assert.assertThat) After(org.junit.After) TestLogger(org.apache.flink.util.TestLogger) TestingJobMasterGatewayBuilder(org.apache.flink.runtime.jobmaster.utils.TestingJobMasterGatewayBuilder) TestingFatalErrorHandlerResource(org.apache.flink.runtime.util.TestingFatalErrorHandlerResource) Assert.fail(org.junit.Assert.fail) TestingJobManagerRunner(org.apache.flink.runtime.jobmaster.TestingJobManagerRunner) ClassRule(org.junit.ClassRule) AfterClass(org.junit.AfterClass) HighAvailabilityServices(org.apache.flink.runtime.highavailability.HighAvailabilityServices) FlinkMatchers.containsCause(org.apache.flink.core.testutils.FlinkMatchers.containsCause) Preconditions(org.apache.flink.util.Preconditions) Acknowledge(org.apache.flink.runtime.messages.Acknowledge) HeartbeatServices(org.apache.flink.runtime.heartbeat.HeartbeatServices) ArrayBlockingQueue(java.util.concurrent.ArrayBlockingQueue) TestingJobResultStore(org.apache.flink.runtime.testutils.TestingJobResultStore) Matchers.equalTo(org.hamcrest.Matchers.equalTo) JobManagerSharedServices(org.apache.flink.runtime.jobmaster.JobManagerSharedServices) Optional(java.util.Optional) AbstractDispatcherTest.awaitStatus(org.apache.flink.runtime.dispatcher.AbstractDispatcherTest.awaitStatus) Matchers.is(org.hamcrest.Matchers.is) JobResultStore(org.apache.flink.runtime.highavailability.JobResultStore) Queue(java.util.Queue) Time(org.apache.flink.api.common.time.Time) OneShotLatch(org.apache.flink.core.testutils.OneShotLatch) FlinkException(org.apache.flink.util.FlinkException) BlobServer(org.apache.flink.runtime.blob.BlobServer) BeforeClass(org.junit.BeforeClass) CompletableFuture(java.util.concurrent.CompletableFuture) JobStatus(org.apache.flink.api.common.JobStatus) TestingJobMasterGateway(org.apache.flink.runtime.jobmaster.utils.TestingJobMasterGateway) TestingResourceCleanerFactory(org.apache.flink.runtime.dispatcher.cleanup.TestingResourceCleanerFactory) RpcService(org.apache.flink.runtime.rpc.RpcService) FutureUtils(org.apache.flink.util.concurrent.FutureUtils) JobGraphTestUtils(org.apache.flink.runtime.jobgraph.JobGraphTestUtils) FatalErrorHandler(org.apache.flink.runtime.rpc.FatalErrorHandler) ExpectedException(org.junit.rules.ExpectedException) IsInstanceOf(org.hamcrest.core.IsInstanceOf) Before(org.junit.Before) ArchivedExecutionGraph(org.apache.flink.runtime.executiongraph.ArchivedExecutionGraph) ArchivedExecutionGraphBuilder(org.apache.flink.runtime.rest.handler.legacy.utils.ArchivedExecutionGraphBuilder) FlinkMatchers.containsMessage(org.apache.flink.core.testutils.FlinkMatchers.containsMessage) Configuration(org.apache.flink.configuration.Configuration) Test(org.junit.Test) IOException(java.io.IOException) TestingBlobStoreBuilder(org.apache.flink.runtime.blob.TestingBlobStoreBuilder) Reference(org.apache.flink.util.Reference) ExecutionGraphInfo(org.apache.flink.runtime.scheduler.ExecutionGraphInfo) ExecutionException(java.util.concurrent.ExecutionException) TimeUnit(java.util.concurrent.TimeUnit) JobResultEntry(org.apache.flink.runtime.highavailability.JobResultEntry) JobID(org.apache.flink.api.common.JobID) Rule(org.junit.Rule) JobManagerRunner(org.apache.flink.runtime.jobmaster.JobManagerRunner) BlobUtils(org.apache.flink.runtime.blob.BlobUtils) ArrayDeque(java.util.ArrayDeque) DuplicateJobSubmissionException(org.apache.flink.runtime.client.DuplicateJobSubmissionException) TemporaryFolder(org.junit.rules.TemporaryFolder) ExecutionGraphInfo(org.apache.flink.runtime.scheduler.ExecutionGraphInfo) ArchivedExecutionGraph(org.apache.flink.runtime.executiongraph.ArchivedExecutionGraph) IOException(java.io.IOException) TestingJobManagerRunner(org.apache.flink.runtime.jobmaster.TestingJobManagerRunner) TestingJobResultStore(org.apache.flink.runtime.testutils.TestingJobResultStore) JobResultStore(org.apache.flink.runtime.highavailability.JobResultStore) CompletableFuture(java.util.concurrent.CompletableFuture) JobResultEntry(org.apache.flink.runtime.highavailability.JobResultEntry) ArchivedExecutionGraphBuilder(org.apache.flink.runtime.rest.handler.legacy.utils.ArchivedExecutionGraphBuilder) TimeoutException(java.util.concurrent.TimeoutException) Test(org.junit.Test)

Aggregations

JobResultEntry (org.apache.flink.runtime.highavailability.JobResultEntry)6 JobID (org.apache.flink.api.common.JobID)4 ExecutionException (java.util.concurrent.ExecutionException)3 JobStatus (org.apache.flink.api.common.JobStatus)3 JobResultStore (org.apache.flink.runtime.highavailability.JobResultStore)3 Test (org.junit.Test)3 IOException (java.io.IOException)2 Optional (java.util.Optional)2 CompletableFuture (java.util.concurrent.CompletableFuture)2 Deadline (org.apache.flink.api.common.time.Deadline)2 Configuration (org.apache.flink.configuration.Configuration)2 OneShotLatch (org.apache.flink.core.testutils.OneShotLatch)2 DuplicateJobSubmissionException (org.apache.flink.runtime.client.DuplicateJobSubmissionException)2 ArchivedExecutionGraph (org.apache.flink.runtime.executiongraph.ArchivedExecutionGraph)2 EmbeddedJobResultStore (org.apache.flink.runtime.highavailability.nonha.embedded.EmbeddedJobResultStore)2 JobGraph (org.apache.flink.runtime.jobgraph.JobGraph)2 JobManagerRunner (org.apache.flink.runtime.jobmaster.JobManagerRunner)2 JobResult (org.apache.flink.runtime.jobmaster.JobResult)2 Acknowledge (org.apache.flink.runtime.messages.Acknowledge)2 TestingJobResultStore (org.apache.flink.runtime.testutils.TestingJobResultStore)2