[ https://issues.apache.org/jira/browse/DRILL-5973?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16273796#comment-16273796 ]
ASF GitHub Bot commented on DRILL-5973: --------------------------------------- Github user kkhatua commented on a diff in the pull request: https://github.com/apache/drill/pull/1055#discussion_r154248904 --- Diff: exec/java-exec/src/test/java/org/apache/drill/exec/testing/TestPauseInjection.java --- @@ -144,6 +144,34 @@ public void pauseInjected() { } } + @Test + public void timedPauseInjected() { + final long pauseDuration = 2000L; + final long expectedDuration = pauseDuration; + final ExtendedLatch trigger = new ExtendedLatch(1); + final Pointer<Exception> ex = new Pointer<>(); + final String controls = Controls.newBuilder() + .addTimedPause(DummyClass.class, DummyClass.PAUSES, 0, pauseDuration) + .build(); + + ControlsInjectionUtil.setControls(session, controls); + + final QueryContext queryContext = new QueryContext(session, bits[0].getContext(), QueryId.getDefaultInstance()); + //We don't need a ResumingThread because this should automatically resume + + // test that the pause happens + final DummyClass dummyClass = new DummyClass(queryContext, trigger); + final long actualDuration = dummyClass.pauses(); + assertTrue(String.format("Test should stop for at least %d milliseconds.", expectedDuration), + expectedDuration <= actualDuration); + assertTrue("No exception should be thrown.", ex.value == null); + try { + queryContext.close(); + } catch (final Exception e) { + fail("Failed to close query context: " + e); --- End diff -- ``` did you forget to remove that part following up on your other change? ``` Didn't forget to remove. It drives the logger to publish the message in the debugger as time-bound if it is non-zero. > Support injection of time-bound pauses in server > ------------------------------------------------ > > Key: DRILL-5973 > URL: https://issues.apache.org/jira/browse/DRILL-5973 > Project: Apache Drill > Issue Type: Improvement > Components: Tools, Build & Test > Affects Versions: 1.11.0 > Reporter: Kunal Khatua > Assignee: Kunal Khatua > Fix For: 1.13.0 > > > While working on DRILL-3640 , when creating a unit test for a server-induced > timeout, the injecting a pause leaves the JUnit framework's DrillClient > without a handle to the query on the server. This is because we injected the > pause to occur before the server could send back a query ID, so the > DrillClient has no way to unpause the server. > The workaround to support this unit test is to allow for injecting pauses > with a defined time-bound, after which the server would resume. -- This message was sent by Atlassian JIRA (v6.4.14#64029)