Java Code Examples for java.util.concurrent.RunnableFuture#cancel()
The following examples show how to use
java.util.concurrent.RunnableFuture#cancel() .
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: RocksDBStateBackendTest.java From Flink-CEPplus with Apache License 2.0 | 6 votes |
@Test public void testDismissingSnapshotNotRunnable() throws Exception { setupRocksKeyedStateBackend(); try { RunnableFuture<SnapshotResult<KeyedStateHandle>> snapshot = keyedStateBackend.snapshot(0L, 0L, testStreamFactory, CheckpointOptions.forCheckpointWithDefaultLocation()); snapshot.cancel(true); Thread asyncSnapshotThread = new Thread(snapshot); asyncSnapshotThread.start(); try { snapshot.get(); fail(); } catch (Exception ignored) { } asyncSnapshotThread.join(); verifyRocksObjectsReleased(); } finally { this.keyedStateBackend.dispose(); this.keyedStateBackend = null; } }
Example 2
Source File: StateUtil.java From Flink-CEPplus with Apache License 2.0 | 6 votes |
/** * Discards the given state future by first trying to cancel it. If this is not possible, then * the state object contained in the future is calculated and afterwards discarded. * * @param stateFuture to be discarded * @throws Exception if the discard operation failed */ public static void discardStateFuture(RunnableFuture<? extends StateObject> stateFuture) throws Exception { if (null != stateFuture) { if (!stateFuture.cancel(true)) { try { // We attempt to get a result, in case the future completed before cancellation. StateObject stateObject = FutureUtils.runIfNotDoneAndGet(stateFuture); if (null != stateObject) { stateObject.discardState(); } } catch (CancellationException | ExecutionException ex) { LOG.debug("Cancelled execution of snapshot future runnable. Cancellation produced the following " + "exception, which is expected an can be ignored.", ex); } } } }
Example 3
Source File: RocksDBStateBackendTest.java From flink with Apache License 2.0 | 6 votes |
@Test public void testDismissingSnapshotNotRunnable() throws Exception { setupRocksKeyedStateBackend(); try { RunnableFuture<SnapshotResult<KeyedStateHandle>> snapshot = keyedStateBackend.snapshot(0L, 0L, testStreamFactory, CheckpointOptions.forCheckpointWithDefaultLocation()); snapshot.cancel(true); Thread asyncSnapshotThread = new Thread(snapshot); asyncSnapshotThread.start(); try { snapshot.get(); fail(); } catch (Exception ignored) { } asyncSnapshotThread.join(); verifyRocksObjectsReleased(); } finally { this.keyedStateBackend.dispose(); this.keyedStateBackend = null; } }
Example 4
Source File: StateUtil.java From flink with Apache License 2.0 | 6 votes |
/** * Discards the given state future by first trying to cancel it. If this is not possible, then * the state object contained in the future is calculated and afterwards discarded. * * @param stateFuture to be discarded * @throws Exception if the discard operation failed */ public static void discardStateFuture(RunnableFuture<? extends StateObject> stateFuture) throws Exception { if (null != stateFuture) { if (!stateFuture.cancel(true)) { try { // We attempt to get a result, in case the future completed before cancellation. StateObject stateObject = FutureUtils.runIfNotDoneAndGet(stateFuture); if (null != stateObject) { stateObject.discardState(); } } catch (CancellationException | ExecutionException ex) { LOG.debug("Cancelled execution of snapshot future runnable. Cancellation produced the following " + "exception, which is expected an can be ignored.", ex); } } } }
Example 5
Source File: RocksDBStateBackendTest.java From flink with Apache License 2.0 | 6 votes |
@Test public void testDismissingSnapshotNotRunnable() throws Exception { setupRocksKeyedStateBackend(); try { RunnableFuture<SnapshotResult<KeyedStateHandle>> snapshot = keyedStateBackend.snapshot(0L, 0L, testStreamFactory, CheckpointOptions.forCheckpointWithDefaultLocation()); snapshot.cancel(true); Thread asyncSnapshotThread = new Thread(snapshot); asyncSnapshotThread.start(); try { snapshot.get(); fail(); } catch (Exception ignored) { } asyncSnapshotThread.join(); verifyRocksObjectsReleased(); } finally { this.keyedStateBackend.dispose(); this.keyedStateBackend = null; } }
Example 6
Source File: RocksDBStateBackendTest.java From Flink-CEPplus with Apache License 2.0 | 5 votes |
@Test public void testDismissingSnapshot() throws Exception { setupRocksKeyedStateBackend(); try { RunnableFuture<SnapshotResult<KeyedStateHandle>> snapshot = keyedStateBackend.snapshot(0L, 0L, testStreamFactory, CheckpointOptions.forCheckpointWithDefaultLocation()); snapshot.cancel(true); verifyRocksObjectsReleased(); } finally { this.keyedStateBackend.dispose(); this.keyedStateBackend = null; } }
Example 7
Source File: RocksDBStateBackendTest.java From Flink-CEPplus with Apache License 2.0 | 5 votes |
@Test public void testCancelRunningSnapshot() throws Exception { setupRocksKeyedStateBackend(); try { RunnableFuture<SnapshotResult<KeyedStateHandle>> snapshot = keyedStateBackend.snapshot(0L, 0L, testStreamFactory, CheckpointOptions.forCheckpointWithDefaultLocation()); Thread asyncSnapshotThread = new Thread(snapshot); asyncSnapshotThread.start(); waiter.await(); // wait for snapshot to run waiter.reset(); runStateUpdates(); snapshot.cancel(true); blocker.trigger(); // allow checkpointing to start writing for (BlockingCheckpointOutputStream stream : testStreamFactory.getAllCreatedStreams()) { assertTrue(stream.isClosed()); } waiter.await(); // wait for snapshot stream writing to run try { snapshot.get(); fail(); } catch (Exception ignored) { } asyncSnapshotThread.join(); verifyRocksObjectsReleased(); } finally { this.keyedStateBackend.dispose(); this.keyedStateBackend = null; } }
Example 8
Source File: RocksDBStateBackendTest.java From flink with Apache License 2.0 | 5 votes |
@Test public void testDismissingSnapshot() throws Exception { setupRocksKeyedStateBackend(); try { RunnableFuture<SnapshotResult<KeyedStateHandle>> snapshot = keyedStateBackend.snapshot(0L, 0L, testStreamFactory, CheckpointOptions.forCheckpointWithDefaultLocation()); snapshot.cancel(true); verifyRocksObjectsReleased(); } finally { this.keyedStateBackend.dispose(); this.keyedStateBackend = null; } }
Example 9
Source File: RocksDBStateBackendTest.java From flink with Apache License 2.0 | 5 votes |
@Test public void testCancelRunningSnapshot() throws Exception { setupRocksKeyedStateBackend(); try { RunnableFuture<SnapshotResult<KeyedStateHandle>> snapshot = keyedStateBackend.snapshot(0L, 0L, testStreamFactory, CheckpointOptions.forCheckpointWithDefaultLocation()); Thread asyncSnapshotThread = new Thread(snapshot); asyncSnapshotThread.start(); waiter.await(); // wait for snapshot to run waiter.reset(); runStateUpdates(); snapshot.cancel(true); blocker.trigger(); // allow checkpointing to start writing for (BlockingCheckpointOutputStream stream : testStreamFactory.getAllCreatedStreams()) { assertTrue(stream.isClosed()); } waiter.await(); // wait for snapshot stream writing to run try { snapshot.get(); fail(); } catch (Exception ignored) { } asyncSnapshotThread.join(); verifyRocksObjectsReleased(); } finally { this.keyedStateBackend.dispose(); this.keyedStateBackend = null; } }
Example 10
Source File: RocksDBStateBackendTest.java From flink with Apache License 2.0 | 5 votes |
@Test public void testDismissingSnapshot() throws Exception { setupRocksKeyedStateBackend(); try { RunnableFuture<SnapshotResult<KeyedStateHandle>> snapshot = keyedStateBackend.snapshot(0L, 0L, testStreamFactory, CheckpointOptions.forCheckpointWithDefaultLocation()); snapshot.cancel(true); verifyRocksObjectsReleased(); } finally { this.keyedStateBackend.dispose(); this.keyedStateBackend = null; } }
Example 11
Source File: RocksDBStateBackendTest.java From flink with Apache License 2.0 | 5 votes |
@Test public void testCancelRunningSnapshot() throws Exception { setupRocksKeyedStateBackend(); try { RunnableFuture<SnapshotResult<KeyedStateHandle>> snapshot = keyedStateBackend.snapshot(0L, 0L, testStreamFactory, CheckpointOptions.forCheckpointWithDefaultLocation()); Thread asyncSnapshotThread = new Thread(snapshot); asyncSnapshotThread.start(); waiter.await(); // wait for snapshot to run waiter.reset(); runStateUpdates(); snapshot.cancel(true); blocker.trigger(); // allow checkpointing to start writing for (BlockingCheckpointOutputStream stream : testStreamFactory.getAllCreatedStreams()) { assertTrue(stream.isClosed()); } waiter.await(); // wait for snapshot stream writing to run try { snapshot.get(); fail(); } catch (Exception ignored) { } asyncSnapshotThread.join(); verifyRocksObjectsReleased(); } finally { this.keyedStateBackend.dispose(); this.keyedStateBackend = null; } }
Example 12
Source File: OperatorStateBackendTest.java From Flink-CEPplus with Apache License 2.0 | 4 votes |
@Test public void testSnapshotAsyncCancel() throws Exception { DefaultOperatorStateBackend operatorStateBackend = new DefaultOperatorStateBackendBuilder( OperatorStateBackendTest.class.getClassLoader(), new ExecutionConfig(), true, emptyStateHandles, new CloseableRegistry()).build(); ListStateDescriptor<MutableType> stateDescriptor1 = new ListStateDescriptor<>("test1", new JavaSerializer<MutableType>()); ListState<MutableType> listState1 = operatorStateBackend.getOperatorState(stateDescriptor1); listState1.add(MutableType.of(42)); listState1.add(MutableType.of(4711)); BlockerCheckpointStreamFactory streamFactory = new BlockerCheckpointStreamFactory(1024 * 1024); OneShotLatch waiterLatch = new OneShotLatch(); OneShotLatch blockerLatch = new OneShotLatch(); streamFactory.setWaiterLatch(waiterLatch); streamFactory.setBlockerLatch(blockerLatch); RunnableFuture<SnapshotResult<OperatorStateHandle>> runnableFuture = operatorStateBackend.snapshot(1, 1, streamFactory, CheckpointOptions.forCheckpointWithDefaultLocation()); ExecutorService executorService = Executors.newFixedThreadPool(1); executorService.submit(runnableFuture); // wait until the async checkpoint is in the stream's write code, then continue waiterLatch.await(); // cancel the future, which should close the underlying stream runnableFuture.cancel(true); for (BlockingCheckpointOutputStream stream : streamFactory.getAllCreatedStreams()) { Assert.assertTrue(stream.isClosed()); } // we allow the stream under test to proceed blockerLatch.trigger(); try { runnableFuture.get(60, TimeUnit.SECONDS); Assert.fail(); } catch (CancellationException ignore) { } }
Example 13
Source File: OperatorStateBackendTest.java From flink with Apache License 2.0 | 4 votes |
@Test public void testSnapshotAsyncCancel() throws Exception { DefaultOperatorStateBackend operatorStateBackend = new DefaultOperatorStateBackendBuilder( OperatorStateBackendTest.class.getClassLoader(), new ExecutionConfig(), true, emptyStateHandles, new CloseableRegistry()).build(); ListStateDescriptor<MutableType> stateDescriptor1 = new ListStateDescriptor<>("test1", new JavaSerializer<MutableType>()); ListState<MutableType> listState1 = operatorStateBackend.getOperatorState(stateDescriptor1); listState1.add(MutableType.of(42)); listState1.add(MutableType.of(4711)); BlockerCheckpointStreamFactory streamFactory = new BlockerCheckpointStreamFactory(1024 * 1024); OneShotLatch waiterLatch = new OneShotLatch(); OneShotLatch blockerLatch = new OneShotLatch(); streamFactory.setWaiterLatch(waiterLatch); streamFactory.setBlockerLatch(blockerLatch); RunnableFuture<SnapshotResult<OperatorStateHandle>> runnableFuture = operatorStateBackend.snapshot(1, 1, streamFactory, CheckpointOptions.forCheckpointWithDefaultLocation()); ExecutorService executorService = Executors.newFixedThreadPool(1); executorService.submit(runnableFuture); // wait until the async checkpoint is in the stream's write code, then continue waiterLatch.await(); // cancel the future, which should close the underlying stream runnableFuture.cancel(true); for (BlockingCheckpointOutputStream stream : streamFactory.getAllCreatedStreams()) { Assert.assertTrue(stream.isClosed()); } // we allow the stream under test to proceed blockerLatch.trigger(); try { runnableFuture.get(60, TimeUnit.SECONDS); Assert.fail(); } catch (CancellationException ignore) { } }
Example 14
Source File: OperatorStateBackendTest.java From flink with Apache License 2.0 | 4 votes |
@Test public void testSnapshotAsyncCancel() throws Exception { DefaultOperatorStateBackend operatorStateBackend = new DefaultOperatorStateBackendBuilder( OperatorStateBackendTest.class.getClassLoader(), new ExecutionConfig(), true, emptyStateHandles, new CloseableRegistry()).build(); ListStateDescriptor<MutableType> stateDescriptor1 = new ListStateDescriptor<>("test1", new JavaSerializer<MutableType>()); ListState<MutableType> listState1 = operatorStateBackend.getListState(stateDescriptor1); listState1.add(MutableType.of(42)); listState1.add(MutableType.of(4711)); BlockerCheckpointStreamFactory streamFactory = new BlockerCheckpointStreamFactory(1024 * 1024); OneShotLatch waiterLatch = new OneShotLatch(); OneShotLatch blockerLatch = new OneShotLatch(); streamFactory.setWaiterLatch(waiterLatch); streamFactory.setBlockerLatch(blockerLatch); RunnableFuture<SnapshotResult<OperatorStateHandle>> runnableFuture = operatorStateBackend.snapshot(1, 1, streamFactory, CheckpointOptions.forCheckpointWithDefaultLocation()); ExecutorService executorService = Executors.newFixedThreadPool(1); executorService.submit(runnableFuture); // wait until the async checkpoint is in the stream's write code, then continue waiterLatch.await(); // cancel the future, which should close the underlying stream runnableFuture.cancel(true); for (BlockingCheckpointOutputStream stream : streamFactory.getAllCreatedStreams()) { Assert.assertTrue(stream.isClosed()); } // we allow the stream under test to proceed blockerLatch.trigger(); try { runnableFuture.get(60, TimeUnit.SECONDS); Assert.fail(); } catch (CancellationException ignore) { } }