Adam Roberts created SPARK-17564: ------------------------------------ Summary: Flaky RequestTimeoutIntegrationSuite, furtherRequestsDelay Key: SPARK-17564 URL: https://issues.apache.org/jira/browse/SPARK-17564 Project: Spark Issue Type: Improvement Affects Versions: 2.0.1, 2.1.0 Reporter: Adam Roberts Priority: Minor
Could be related to [SPARK-10680] This is the test and one fix would be to increase the timeouts from 1.2 seconds to 5 seconds // The timeout is relative to the LAST request sent, which is kinda weird, but still. // This test also makes sure the timeout works for Fetch requests as well as RPCs. @Test public void furtherRequestsDelay() throws Exception { final byte[] response = new byte[16]; final StreamManager manager = new StreamManager() { @Override public ManagedBuffer getChunk(long streamId, int chunkIndex) { Uninterruptibles.sleepUninterruptibly(FOREVER, TimeUnit.MILLISECONDS); return new NioManagedBuffer(ByteBuffer.wrap(response)); } }; RpcHandler handler = new RpcHandler() { @Override public void receive( TransportClient client, ByteBuffer message, RpcResponseCallback callback) { throw new UnsupportedOperationException(); } @Override public StreamManager getStreamManager() { return manager; } }; TransportContext context = new TransportContext(conf, handler); server = context.createServer(); clientFactory = context.createClientFactory(); TransportClient client = clientFactory.createClient(TestUtils.getLocalHost(), server.getPort()); // Send one request, which will eventually fail. TestCallback callback0 = new TestCallback(); client.fetchChunk(0, 0, callback0); Uninterruptibles.sleepUninterruptibly(1200, TimeUnit.MILLISECONDS); // This would be one timeout to increase // Send a second request before the first has failed. TestCallback callback1 = new TestCallback(); client.fetchChunk(0, 1, callback1); Uninterruptibles.sleepUninterruptibly(1200, TimeUnit.MILLISECONDS); // This would be another timeout to increase synchronized (callback0) { // not complete yet, but should complete soon assertEquals(-1, callback0.successLength); assertNull(callback0.failure); callback0.wait(2 * 1000); assertTrue(callback0.failure instanceof IOException); } synchronized (callback1) { // failed at same time as previous assert (callback0.failure instanceof IOException); } } If there are better suggestions for improving this test let's take them onboard, I'll create a pull request using 5 sec timeout periods as a place to start so folks don't need to needlessly triage this failure -- This message was sent by Atlassian JIRA (v6.3.4#6332) --------------------------------------------------------------------- To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org For additional commands, e-mail: issues-h...@spark.apache.org