org.apache.flink.runtime.rpc.RpcUtils Java Examples
The following examples show how to use
org.apache.flink.runtime.rpc.RpcUtils.
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: JobSubmitHandlerTest.java From Flink-CEPplus with Apache License 2.0 | 6 votes |
@Test
public void testSerializationFailureHandling() throws Exception {
final Path jobGraphFile = TEMPORARY_FOLDER.newFile().toPath();
DispatcherGateway mockGateway = new TestingDispatcherGateway.Builder()
.setSubmitFunction(jobGraph -> CompletableFuture.completedFuture(Acknowledge.get()))
.build();
JobSubmitHandler handler = new JobSubmitHandler(
() -> CompletableFuture.completedFuture(mockGateway),
RpcUtils.INF_TIMEOUT,
Collections.emptyMap(),
TestingUtils.defaultExecutor(),
configuration);
JobSubmitRequestBody request = new JobSubmitRequestBody(jobGraphFile.toString(), Collections.emptyList(), Collections.emptyList());
try {
handler.handleRequest(new HandlerRequest<>(request, EmptyMessageParameters.getInstance()), mockGateway);
Assert.fail();
} catch (RestHandlerException rhe) {
Assert.assertEquals(HttpResponseStatus.BAD_REQUEST, rhe.getHttpResponseStatus());
}
}
Example #2
Source File: AkkaRpcActorTest.java From flink with Apache License 2.0 | 6 votes |
/**
* Tests that the {@link AkkaRpcActor} only completes after the asynchronous
* post stop action has completed.
*/
@Test
public void testActorTerminationWithAsynchronousOnStopAction() throws Exception {
final CompletableFuture<Void> onStopFuture = new CompletableFuture<>();
final AsynchronousOnStopEndpoint endpoint = new AsynchronousOnStopEndpoint(akkaRpcService, onStopFuture);
try {
endpoint.start();
final CompletableFuture<Void> terminationFuture = endpoint.closeAsync();
assertFalse(terminationFuture.isDone());
onStopFuture.complete(null);
// the onStopFuture completion should allow the endpoint to terminate
terminationFuture.get();
} finally {
RpcUtils.terminateRpcEndpoint(endpoint, timeout);
}
}
Example #3
Source File: AkkaRpcActorTest.java From Flink-CEPplus with Apache License 2.0 | 6 votes |
/**
* Tests that the {@link AkkaRpcActor} only completes after the asynchronous
* post stop action has completed.
*/
@Test
public void testActorTerminationWithAsynchronousOnStopAction() throws Exception {
final CompletableFuture<Void> onStopFuture = new CompletableFuture<>();
final AsynchronousOnStopEndpoint endpoint = new AsynchronousOnStopEndpoint(akkaRpcService, onStopFuture);
try {
endpoint.start();
final CompletableFuture<Void> terminationFuture = endpoint.closeAsync();
assertFalse(terminationFuture.isDone());
onStopFuture.complete(null);
// the onStopFuture completion should allow the endpoint to terminate
terminationFuture.get();
} finally {
RpcUtils.terminateRpcEndpoint(endpoint, timeout);
}
}
Example #4
Source File: MiniDispatcherTest.java From Flink-CEPplus with Apache License 2.0 | 6 votes |
/**
* Tests that the {@link MiniDispatcher} recovers the single job with which it
* was started.
*/
@Test
public void testSingleJobRecovery() throws Exception {
final MiniDispatcher miniDispatcher = createMiniDispatcher(ClusterEntrypoint.ExecutionMode.DETACHED);
miniDispatcher.start();
try {
// wait until the Dispatcher is the leader
dispatcherLeaderElectionService.isLeader(UUID.randomUUID()).get();
final JobGraph actualJobGraph = jobGraphFuture.get();
assertThat(actualJobGraph.getJobID(), is(jobGraph.getJobID()));
} finally {
RpcUtils.terminateRpcEndpoint(miniDispatcher, timeout);
}
}
Example #5
Source File: TaskExecutorTest.java From flink with Apache License 2.0 | 6 votes |
@Test
public void testMaximumRegistrationDuration() throws Exception {
configuration.set(TaskManagerOptions.REGISTRATION_TIMEOUT, TimeUtils.parseDuration("10 ms"));
final TaskExecutor taskExecutor = createTaskExecutor(new TaskManagerServicesBuilder().build());
taskExecutor.start();
try {
final Throwable error = testingFatalErrorHandler.getErrorFuture().get();
assertThat(error, is(notNullValue()));
assertThat(ExceptionUtils.stripExecutionException(error), instanceOf(RegistrationTimeoutException.class));
testingFatalErrorHandler.clearError();
} finally {
RpcUtils.terminateRpcEndpoint(taskExecutor, timeout);
}
}
Example #6
Source File: DispatcherTest.java From Flink-CEPplus with Apache License 2.0 | 6 votes |
@After
public void tearDown() throws Exception {
try {
fatalErrorHandler.rethrowError();
} finally {
if (dispatcher != null) {
RpcUtils.terminateRpcEndpoint(dispatcher, TIMEOUT);
}
}
if (haServices != null) {
haServices.closeAndCleanupAllData();
}
if (blobServer != null) {
blobServer.close();
}
}
Example #7
Source File: StandaloneResourceManagerFactoryTest.java From flink with Apache License 2.0 | 6 votes |
@Test
public void createResourceManager_WithLessMemoryThanContainerizedHeapCutoffMin_ShouldSucceed() throws Exception {
final StandaloneResourceManagerFactory resourceManagerFactory = StandaloneResourceManagerFactory.INSTANCE;
final TestingRpcService rpcService = new TestingRpcService();
try {
final Configuration configuration = new Configuration();
configuration.setString(TaskManagerOptions.TASK_MANAGER_HEAP_MEMORY, new MemorySize(128 * 1024 * 1024).toString());
configuration.setInteger(ResourceManagerOptions.CONTAINERIZED_HEAP_CUTOFF_MIN, 600);
final ResourceManager<ResourceID> ignored = resourceManagerFactory.createResourceManager(
configuration,
ResourceID.generate(),
rpcService,
new TestingHighAvailabilityServices(),
new TestingHeartbeatServices(),
NoOpMetricRegistry.INSTANCE,
new TestingFatalErrorHandler(),
new ClusterInformation("foobar", 1234),
null,
UnregisteredMetricGroups.createUnregisteredJobManagerMetricGroup());
} finally {
RpcUtils.terminateRpcService(rpcService, Time.seconds(10L));
}
}
Example #8
Source File: JobSubmitHandlerTest.java From flink with Apache License 2.0 | 6 votes |
@Test
public void testSerializationFailureHandling() throws Exception {
final Path jobGraphFile = TEMPORARY_FOLDER.newFile().toPath();
DispatcherGateway mockGateway = new TestingDispatcherGateway.Builder()
.setSubmitFunction(jobGraph -> CompletableFuture.completedFuture(Acknowledge.get()))
.build();
JobSubmitHandler handler = new JobSubmitHandler(
() -> CompletableFuture.completedFuture(mockGateway),
RpcUtils.INF_TIMEOUT,
Collections.emptyMap(),
TestingUtils.defaultExecutor(),
configuration);
JobSubmitRequestBody request = new JobSubmitRequestBody(jobGraphFile.toString(), Collections.emptyList(), Collections.emptyList());
try {
handler.handleRequest(new HandlerRequest<>(request, EmptyMessageParameters.getInstance()), mockGateway);
Assert.fail();
} catch (RestHandlerException rhe) {
Assert.assertEquals(HttpResponseStatus.BAD_REQUEST, rhe.getHttpResponseStatus());
}
}
Example #9
Source File: AkkaRpcActorHandshakeTest.java From Flink-CEPplus with Apache License 2.0 | 6 votes |
@Test
public void testVersionMismatchBetweenRpcComponents() throws Exception {
AkkaRpcActorTest.DummyRpcEndpoint rpcEndpoint = new AkkaRpcActorTest.DummyRpcEndpoint(akkaRpcService1);
rpcEndpoint.start();
try {
try {
wrongVersionAkkaRpcService.connect(rpcEndpoint.getAddress(), AkkaRpcActorTest.DummyRpcGateway.class).get();
fail("Expected HandshakeException.");
} catch (ExecutionException ee) {
assertThat(ExceptionUtils.stripExecutionException(ee), instanceOf(HandshakeException.class));
}
} finally {
RpcUtils.terminateRpcEndpoint(rpcEndpoint, timeout);
}
}
Example #10
Source File: TaskExecutorTest.java From flink with Apache License 2.0 | 6 votes |
/**
* Tests that the {@link TaskExecutor} sends the initial slot report after it
* registered at the ResourceManager.
*/
@Test
public void testInitialSlotReport() throws Exception {
final TaskExecutor taskExecutor = createTaskExecutor(1);
taskExecutor.start();
try {
final TestingResourceManagerGateway testingResourceManagerGateway = new TestingResourceManagerGateway();
final CompletableFuture<ResourceID> initialSlotReportFuture = new CompletableFuture<>();
testingResourceManagerGateway.setSendSlotReportFunction(
resourceIDInstanceIDSlotReportTuple3 -> {
initialSlotReportFuture.complete(resourceIDInstanceIDSlotReportTuple3.f0);
return CompletableFuture.completedFuture(Acknowledge.get());
});
rpc.registerGateway(testingResourceManagerGateway.getAddress(), testingResourceManagerGateway);
resourceManagerLeaderRetriever.notifyListener(testingResourceManagerGateway.getAddress(), testingResourceManagerGateway.getFencingToken().toUUID());
assertThat(initialSlotReportFuture.get(), equalTo(taskExecutor.getResourceID()));
} finally {
RpcUtils.terminateRpcEndpoint(taskExecutor, timeout);
}
}
Example #11
Source File: SavepointHandlers.java From flink with Apache License 2.0 | 6 votes |
@Override
protected CompletableFuture<String> triggerOperation(
final HandlerRequest<StopWithSavepointRequestBody, SavepointTriggerMessageParameters> request,
final RestfulGateway gateway) throws RestHandlerException {
final JobID jobId = request.getPathParameter(JobIDPathParameter.class);
final String requestedTargetDirectory = request.getRequestBody().getTargetDirectory();
if (requestedTargetDirectory == null && defaultSavepointDir == null) {
throw new RestHandlerException(
String.format("Config key [%s] is not set. Property [%s] must be provided.",
CheckpointingOptions.SAVEPOINT_DIRECTORY.key(),
StopWithSavepointRequestBody.FIELD_NAME_TARGET_DIRECTORY),
HttpResponseStatus.BAD_REQUEST);
}
final boolean advanceToEndOfEventTime = request.getRequestBody().shouldDrain();
final String targetDirectory = requestedTargetDirectory != null ? requestedTargetDirectory : defaultSavepointDir;
return gateway.stopWithSavepoint(jobId, targetDirectory, advanceToEndOfEventTime, RpcUtils.INF_TIMEOUT);
}
Example #12
Source File: RescalingHandlers.java From Flink-CEPplus with Apache License 2.0 | 6 votes |
@Override
protected CompletableFuture<Acknowledge> triggerOperation(HandlerRequest<EmptyRequestBody, RescalingTriggerMessageParameters> request, RestfulGateway gateway) throws RestHandlerException {
final JobID jobId = request.getPathParameter(JobIDPathParameter.class);
final List<Integer> queryParameter = request.getQueryParameter(RescalingParallelismQueryParameter.class);
if (queryParameter.isEmpty()) {
throw new RestHandlerException("No new parallelism was specified.", HttpResponseStatus.BAD_REQUEST);
}
final int newParallelism = queryParameter.get(0);
final CompletableFuture<Acknowledge> rescalingFuture = gateway.rescaleJob(
jobId,
newParallelism,
RescalingBehaviour.STRICT,
RpcUtils.INF_TIMEOUT);
return rescalingFuture;
}
Example #13
Source File: SavepointHandlers.java From flink with Apache License 2.0 | 6 votes |
@Override
protected CompletableFuture<String> triggerOperation(
final HandlerRequest<StopWithSavepointRequestBody, SavepointTriggerMessageParameters> request,
final RestfulGateway gateway) throws RestHandlerException {
final JobID jobId = request.getPathParameter(JobIDPathParameter.class);
final String requestedTargetDirectory = request.getRequestBody().getTargetDirectory();
if (requestedTargetDirectory == null && defaultSavepointDir == null) {
throw new RestHandlerException(
String.format("Config key [%s] is not set. Property [%s] must be provided.",
CheckpointingOptions.SAVEPOINT_DIRECTORY.key(),
StopWithSavepointRequestBody.FIELD_NAME_TARGET_DIRECTORY),
HttpResponseStatus.BAD_REQUEST);
}
final boolean advanceToEndOfEventTime = request.getRequestBody().shouldDrain();
final String targetDirectory = requestedTargetDirectory != null ? requestedTargetDirectory : defaultSavepointDir;
return gateway.stopWithSavepoint(jobId, targetDirectory, advanceToEndOfEventTime, RpcUtils.INF_TIMEOUT);
}
Example #14
Source File: TaskExecutorTest.java From Flink-CEPplus with Apache License 2.0 | 6 votes |
@After
public void teardown() throws Exception {
if (rpc != null) {
RpcUtils.terminateRpcService(rpc, timeout);
rpc = null;
}
if (timerService != null) {
timerService.stop();
timerService = null;
}
if (dummyBlobCacheService != null) {
dummyBlobCacheService.close();
dummyBlobCacheService = null;
}
testingFatalErrorHandler.rethrowError();
}
Example #15
Source File: JobMasterTest.java From flink with Apache License 2.0 | 5 votes |
/**
* Tests that a JobMaster will restore the given JobGraph from its savepoint upon
* initial submission.
*/
@Test
public void testRestoringFromSavepoint() throws Exception {
// create savepoint data
final long savepointId = 42L;
final File savepointFile = createSavepoint(savepointId);
// set savepoint settings
final SavepointRestoreSettings savepointRestoreSettings = SavepointRestoreSettings.forPath(
savepointFile.getAbsolutePath(),
true);
final JobGraph jobGraph = createJobGraphWithCheckpointing(savepointRestoreSettings);
final StandaloneCompletedCheckpointStore completedCheckpointStore = new StandaloneCompletedCheckpointStore(1);
final TestingCheckpointRecoveryFactory testingCheckpointRecoveryFactory = new TestingCheckpointRecoveryFactory(completedCheckpointStore, new StandaloneCheckpointIDCounter());
haServices.setCheckpointRecoveryFactory(testingCheckpointRecoveryFactory);
final JobMaster jobMaster = createJobMaster(
configuration,
jobGraph,
haServices,
new TestingJobManagerSharedServicesBuilder().build());
try {
// starting the JobMaster should have read the savepoint
final CompletedCheckpoint savepointCheckpoint = completedCheckpointStore.getLatestCheckpoint(false);
assertThat(savepointCheckpoint, Matchers.notNullValue());
assertThat(savepointCheckpoint.getCheckpointID(), is(savepointId));
} finally {
RpcUtils.terminateRpcEndpoint(jobMaster, testingTimeout);
}
}
Example #16
Source File: AkkaRpcActorTest.java From flink with Apache License 2.0 | 5 votes |
/**
* Tests that we can still run commands via the main thread executor when the onStop method
* is called.
*/
@Test
public void testMainThreadExecutionOnStop() throws Exception {
final MainThreadExecutorOnStopEndpoint endpoint = new MainThreadExecutorOnStopEndpoint(akkaRpcService);
try {
endpoint.start();
CompletableFuture<Void> terminationFuture = endpoint.closeAsync();
terminationFuture.get();
} finally {
RpcUtils.terminateRpcEndpoint(endpoint, timeout);
}
}
Example #17
Source File: MiniDispatcherTest.java From flink with Apache License 2.0 | 5 votes |
/**
* Tests that the {@link MiniDispatcher} only terminates in {@link ClusterEntrypoint.ExecutionMode#NORMAL}
* after it has served the {@link org.apache.flink.runtime.jobmaster.JobResult} once.
*/
@Test
public void testJobResultRetrieval() throws Exception {
final MiniDispatcher miniDispatcher = createMiniDispatcher(ClusterEntrypoint.ExecutionMode.NORMAL);
miniDispatcher.start();
try {
// wait until we have submitted the job
final TestingJobManagerRunner testingJobManagerRunner = testingJobManagerRunnerFactory.takeCreatedJobManagerRunner();
testingJobManagerRunner.completeResultFuture(archivedExecutionGraph);
assertFalse(miniDispatcher.getTerminationFuture().isDone());
final DispatcherGateway dispatcherGateway = miniDispatcher.getSelfGateway(DispatcherGateway.class);
final CompletableFuture<JobResult> jobResultFuture = dispatcherGateway.requestJobResult(jobGraph.getJobID(), timeout);
final JobResult jobResult = jobResultFuture.get();
assertThat(jobResult.getJobId(), is(jobGraph.getJobID()));
}
finally {
RpcUtils.terminateRpcEndpoint(miniDispatcher, timeout);
}
}
Example #18
Source File: JobMasterTest.java From flink with Apache License 2.0 | 5 votes |
/**
* Tests that we continue reconnecting to the latest known RM after a disconnection
* message.
*/
@Test
public void testReconnectionAfterDisconnect() throws Exception {
final JobMaster jobMaster = createJobMaster(
configuration,
jobGraph,
haServices,
new TestingJobManagerSharedServicesBuilder().build());
final JobMasterGateway jobMasterGateway = jobMaster.getSelfGateway(JobMasterGateway.class);
CompletableFuture<Acknowledge> startFuture = jobMaster.start(jobMasterId);
try {
// wait for the start to complete
startFuture.get(testingTimeout.toMilliseconds(), TimeUnit.MILLISECONDS);
final TestingResourceManagerGateway testingResourceManagerGateway = createAndRegisterTestingResourceManagerGateway();
final BlockingQueue<JobMasterId> registrationsQueue = new ArrayBlockingQueue<>(1);
testingResourceManagerGateway.setRegisterJobManagerConsumer(
jobMasterIdResourceIDStringJobIDTuple4 -> registrationsQueue.offer(jobMasterIdResourceIDStringJobIDTuple4.f0));
final ResourceManagerId resourceManagerId = testingResourceManagerGateway.getFencingToken();
notifyResourceManagerLeaderListeners(testingResourceManagerGateway);
// wait for first registration attempt
final JobMasterId firstRegistrationAttempt = registrationsQueue.take();
assertThat(firstRegistrationAttempt, equalTo(jobMasterId));
assertThat(registrationsQueue.isEmpty(), is(true));
jobMasterGateway.disconnectResourceManager(resourceManagerId, new FlinkException("Test exception"));
// wait for the second registration attempt after the disconnect call
assertThat(registrationsQueue.take(), equalTo(jobMasterId));
} finally {
RpcUtils.terminateRpcEndpoint(jobMaster, testingTimeout);
}
}
Example #19
Source File: ResourceManagerTest.java From Flink-CEPplus with Apache License 2.0 | 5 votes |
@After
public void after() throws Exception {
if (resourceManager != null) {
RpcUtils.terminateRpcEndpoint(resourceManager, TIMEOUT);
}
if (highAvailabilityServices != null) {
highAvailabilityServices.closeAndCleanupAllData();
}
if (testingFatalErrorHandler.hasExceptionOccurred()) {
testingFatalErrorHandler.rethrowError();
}
}
Example #20
Source File: JobSubmitHandlerTest.java From Flink-CEPplus with Apache License 2.0 | 5 votes |
@Test
public void testFailedJobSubmission() throws Exception {
final String errorMessage = "test";
DispatcherGateway mockGateway = new TestingDispatcherGateway.Builder()
.setSubmitFunction(jobgraph -> FutureUtils.completedExceptionally(new Exception(errorMessage)))
.build();
JobSubmitHandler handler = new JobSubmitHandler(
() -> CompletableFuture.completedFuture(mockGateway),
RpcUtils.INF_TIMEOUT,
Collections.emptyMap(),
TestingUtils.defaultExecutor(),
configuration);
final Path jobGraphFile = TEMPORARY_FOLDER.newFile().toPath();
JobGraph jobGraph = new JobGraph("testjob");
try (ObjectOutputStream objectOut = new ObjectOutputStream(Files.newOutputStream(jobGraphFile))) {
objectOut.writeObject(jobGraph);
}
JobSubmitRequestBody request = new JobSubmitRequestBody(jobGraphFile.getFileName().toString(), Collections.emptyList(), Collections.emptyList());
try {
handler.handleRequest(new HandlerRequest<>(
request,
EmptyMessageParameters.getInstance(),
Collections.emptyMap(),
Collections.emptyMap(),
Collections.singletonList(jobGraphFile.toFile())), mockGateway)
.get();
} catch (Exception e) {
Throwable t = ExceptionUtils.stripExecutionException(e);
Assert.assertEquals(errorMessage, t.getMessage());
}
}
Example #21
Source File: MiniDispatcherTest.java From flink with Apache License 2.0 | 5 votes |
@AfterClass
public static void teardownClass() throws IOException, InterruptedException, ExecutionException, TimeoutException {
if (blobServer != null) {
blobServer.close();
}
if (rpcService != null) {
RpcUtils.terminateRpcService(rpcService, timeout);
}
}
Example #22
Source File: ResourceManagerTaskExecutorTest.java From flink with Apache License 2.0 | 5 votes |
@After
public void teardown() throws Exception {
if (resourceManager != null) {
RpcUtils.terminateRpcEndpoint(resourceManager, TIMEOUT);
}
if (testingFatalErrorHandler != null && testingFatalErrorHandler.hasExceptionOccurred()) {
testingFatalErrorHandler.rethrowError();
}
}
Example #23
Source File: AkkaRpcActorTest.java From flink with Apache License 2.0 | 5 votes |
/**
* Tests that the {@link AkkaRpcActor} discards messages until the corresponding
* {@link RpcEndpoint} has been started.
*/
@Test
public void testMessageDiscarding() throws Exception {
int expectedValue = 1337;
DummyRpcEndpoint rpcEndpoint = new DummyRpcEndpoint(akkaRpcService);
DummyRpcGateway rpcGateway = rpcEndpoint.getSelfGateway(DummyRpcGateway.class);
// this message should be discarded and completed with an AkkaRpcException
CompletableFuture<Integer> result = rpcGateway.foobar();
try {
result.get(timeout.getSize(), timeout.getUnit());
fail("Expected an AkkaRpcException.");
} catch (ExecutionException ee) {
// expected this exception, because the endpoint has not been started
assertTrue(ee.getCause() instanceof AkkaRpcException);
}
// set a new value which we expect to be returned
rpcEndpoint.setFoobar(expectedValue);
// start the endpoint so that it can process messages
rpcEndpoint.start();
try {
// send the rpc again
result = rpcGateway.foobar();
// now we should receive a result :-)
Integer actualValue = result.get(timeout.getSize(), timeout.getUnit());
assertThat("The new foobar value should have been returned.", actualValue, Is.is(expectedValue));
} finally {
RpcUtils.terminateRpcEndpoint(rpcEndpoint, timeout);
}
}
Example #24
Source File: RpcGatewayRetrieverTest.java From Flink-CEPplus with Apache License 2.0 | 5 votes |
@AfterClass
public static void teardown() throws InterruptedException, ExecutionException, TimeoutException {
if (rpcService != null) {
RpcUtils.terminateRpcService(rpcService, TIMEOUT);
rpcService = null;
}
}
Example #25
Source File: MiniDispatcherTest.java From flink with Apache License 2.0 | 5 votes |
@AfterClass
public static void teardownClass() throws IOException, InterruptedException, ExecutionException, TimeoutException {
if (blobServer != null) {
blobServer.close();
}
if (rpcService != null) {
RpcUtils.terminateRpcService(rpcService, timeout);
}
}
Example #26
Source File: JobMasterTest.java From Flink-CEPplus with Apache License 2.0 | 5 votes |
/**
* Tests that the a JM connects to the leading RM after regaining leadership.
*/
@Test
public void testResourceManagerConnectionAfterRegainingLeadership() throws Exception {
final JobMaster jobMaster = createJobMaster(
configuration,
jobGraph,
haServices,
new TestingJobManagerSharedServicesBuilder().build());
CompletableFuture<Acknowledge> startFuture = jobMaster.start(jobMasterId);
try {
// wait for the start to complete
startFuture.get(testingTimeout.toMilliseconds(), TimeUnit.MILLISECONDS);
final TestingResourceManagerGateway testingResourceManagerGateway = createAndRegisterTestingResourceManagerGateway();
final BlockingQueue<JobMasterId> registrationQueue = new ArrayBlockingQueue<>(1);
testingResourceManagerGateway.setRegisterJobManagerConsumer(
jobMasterIdResourceIDStringJobIDTuple4 -> registrationQueue.offer(jobMasterIdResourceIDStringJobIDTuple4.f0));
notifyResourceManagerLeaderListeners(testingResourceManagerGateway);
final JobMasterId firstRegistrationAttempt = registrationQueue.take();
assertThat(firstRegistrationAttempt, equalTo(jobMasterId));
jobMaster.suspend(new FlinkException("Test exception.")).get();
final JobMasterId jobMasterId2 = JobMasterId.generate();
jobMaster.start(jobMasterId2).get();
final JobMasterId secondRegistrationAttempt = registrationQueue.take();
assertThat(secondRegistrationAttempt, equalTo(jobMasterId2));
} finally {
RpcUtils.terminateRpcEndpoint(jobMaster, testingTimeout);
}
}
Example #27
Source File: JobMasterTest.java From flink with Apache License 2.0 | 5 votes |
@Test
public void testRequestKvStateWithIrrelevantRegistration() throws Exception {
final JobGraph graph = createKvJobGraph();
final JobMaster jobMaster = createJobMaster(
configuration,
graph,
haServices,
new TestingJobManagerSharedServicesBuilder().build(),
heartbeatServices);
CompletableFuture<Acknowledge> startFuture = jobMaster.start(jobMasterId);
final JobMasterGateway jobMasterGateway = jobMaster.getSelfGateway(JobMasterGateway.class);
try {
// wait for the start to complete
startFuture.get(testingTimeout.toMilliseconds(), TimeUnit.MILLISECONDS);
// register an irrelevant KvState
try {
jobMasterGateway.notifyKvStateRegistered(
new JobID(),
new JobVertexID(),
new KeyGroupRange(0, 0),
"any-name",
new KvStateID(),
new InetSocketAddress(InetAddress.getLocalHost(), 1233)).get();
fail("Expected to fail with FlinkJobNotFoundException.");
} catch (Exception e) {
assertTrue(ExceptionUtils.findThrowable(e, FlinkJobNotFoundException.class).isPresent());
}
} finally {
RpcUtils.terminateRpcEndpoint(jobMaster, testingTimeout);
}
}
Example #28
Source File: JobMasterTest.java From Flink-CEPplus with Apache License 2.0 | 5 votes |
@Test
public void testRequestKvStateOfWrongJob() throws Exception {
final JobGraph graph = createKvJobGraph();
final JobMaster jobMaster = createJobMaster(
configuration,
graph,
haServices,
new TestingJobManagerSharedServicesBuilder().build(),
heartbeatServices);
CompletableFuture<Acknowledge> startFuture = jobMaster.start(jobMasterId);
final JobMasterGateway jobMasterGateway = jobMaster.getSelfGateway(JobMasterGateway.class);
try {
// wait for the start to complete
startFuture.get(testingTimeout.toMilliseconds(), TimeUnit.MILLISECONDS);
// lookup location
try {
jobMasterGateway.requestKvStateLocation(new JobID(), "unknown").get();
fail("Expected to fail with FlinkJobNotFoundException");
} catch (Exception e) {
assertTrue(ExceptionUtils.findThrowable(e, FlinkJobNotFoundException.class).isPresent());
}
} finally {
RpcUtils.terminateRpcEndpoint(jobMaster, testingTimeout);
}
}
Example #29
Source File: JobMaster.java From flink with Apache License 2.0 | 5 votes |
/**
* Start the rpc service and begin to run the job.
*
* @param newJobMasterId The necessary fencing token to run the job
* @return Future acknowledge if the job could be started. Otherwise the future contains an exception
*/
public CompletableFuture<Acknowledge> start(final JobMasterId newJobMasterId) throws Exception {
// make sure we receive RPC and async calls
start();
return callAsyncWithoutFencing(() -> startJobExecution(newJobMasterId), RpcUtils.INF_TIMEOUT);
}
Example #30
Source File: JobMasterTest.java From flink with Apache License 2.0 | 5 votes |
/**
* Tests that the a JM connects to the leading RM after regaining leadership.
*/
@Test
public void testResourceManagerConnectionAfterRegainingLeadership() throws Exception {
final JobMaster jobMaster = createJobMaster(
configuration,
jobGraph,
haServices,
new TestingJobManagerSharedServicesBuilder().build());
CompletableFuture<Acknowledge> startFuture = jobMaster.start(jobMasterId);
try {
// wait for the start to complete
startFuture.get(testingTimeout.toMilliseconds(), TimeUnit.MILLISECONDS);
final TestingResourceManagerGateway testingResourceManagerGateway = createAndRegisterTestingResourceManagerGateway();
final BlockingQueue<JobMasterId> registrationQueue = new ArrayBlockingQueue<>(1);
testingResourceManagerGateway.setRegisterJobManagerConsumer(
jobMasterIdResourceIDStringJobIDTuple4 -> registrationQueue.offer(jobMasterIdResourceIDStringJobIDTuple4.f0));
notifyResourceManagerLeaderListeners(testingResourceManagerGateway);
final JobMasterId firstRegistrationAttempt = registrationQueue.take();
assertThat(firstRegistrationAttempt, equalTo(jobMasterId));
jobMaster.suspend(new FlinkException("Test exception.")).get();
final JobMasterId jobMasterId2 = JobMasterId.generate();
jobMaster.start(jobMasterId2).get();
final JobMasterId secondRegistrationAttempt = registrationQueue.take();
assertThat(secondRegistrationAttempt, equalTo(jobMasterId2));
} finally {
RpcUtils.terminateRpcEndpoint(jobMaster, testingTimeout);
}
}