use of io.prestosql.execution.QueryInfo in project hetu-core by openlookeng.
the class TestQueryManager method testFailQuery.
@Test(timeOut = 60_000L)
public void testFailQuery() throws Exception {
DispatchManager dispatchManager = queryRunner.getCoordinator().getDispatchManager();
QueryId queryId = dispatchManager.createQueryId();
dispatchManager.createQuery(queryId, "slug", new TestingSessionContext(TEST_SESSION), "SELECT * FROM lineitem").get();
// wait until query starts running
while (true) {
QueryState state = dispatchManager.getQueryInfo(queryId).getState();
if (state.isDone()) {
fail("unexpected query state: " + state);
}
if (state == RUNNING) {
break;
}
Thread.sleep(100);
}
// cancel query
QueryManager queryManager = queryRunner.getCoordinator().getQueryManager();
queryManager.failQuery(queryId, new PrestoException(GENERIC_INTERNAL_ERROR, "mock exception"));
QueryInfo queryInfo = queryManager.getFullQueryInfo(queryId);
assertEquals(queryInfo.getState(), FAILED);
assertEquals(queryInfo.getErrorCode(), GENERIC_INTERNAL_ERROR.toErrorCode());
assertNotNull(queryInfo.getFailureInfo());
assertEquals(queryInfo.getFailureInfo().getMessage(), "mock exception");
}
use of io.prestosql.execution.QueryInfo in project hetu-core by openlookeng.
the class TestStateUpdater method createBasicQueryInfo.
private BasicQueryInfo createBasicQueryInfo() {
QueryInfo queryInfo = Mockito.mock(QueryInfo.class);
when(queryInfo.getQueryStats()).then(new Returns(Mockito.mock(QueryStats.class)));
Duration mockInterval = new Duration(MINIMUM_UPDATE_INTERVAL, MILLISECONDS);
when(queryInfo.getQueryStats().getQueuedTime()).then(new Returns(mockInterval));
when(queryInfo.getQueryStats().getElapsedTime()).then(new Returns(mockInterval));
when(queryInfo.getQueryStats().getExecutionTime()).then(new Returns(mockInterval));
when(queryInfo.getQueryStats().getRawInputDataSize()).then(new Returns(Mockito.mock(DataSize.class)));
String mockQueryId = MOCK_QUERY_ID;
QueryId queryId = new QueryId(mockQueryId);
when(queryInfo.getQueryId()).then(new Returns(queryId));
SessionRepresentation sessionRepresentation = TEST_SESSION.toSessionRepresentation();
when(queryInfo.getSession()).then(new Returns(sessionRepresentation));
ResourceGroupId resourceGroupId = new ResourceGroupId(GLOBAL_RESOURCE_ID);
Optional<ResourceGroupId> optionalResourceGroupId = Optional.of(resourceGroupId);
when(queryInfo.getResourceGroupId()).then(new Returns(optionalResourceGroupId));
when(queryInfo.getState()).then(new Returns(QueryState.FINISHED));
URI mockURI = URI.create(URI_LOCALHOST);
when(queryInfo.getSelf()).then(new Returns(mockURI));
String mockQuery = QUERY_STRING;
when(queryInfo.getQuery()).then(new Returns(mockQuery));
Optional<String> preparedQuery = Optional.of(PREPARED_QUERY_MOCK_DATA);
when(queryInfo.getPreparedQuery()).then(new Returns(preparedQuery));
ErrorCode errorCode = new ErrorCode(ERROR_CODE_VALUE_INDEX_TIME_NO_INVOCATION, ERROR_CODE_TEST, USER_ERROR);
when(queryInfo.getErrorCode()).then(new Returns(errorCode));
Set<BlockedReason> setBlockedReason = new HashSet<>();
setBlockedReason.add(BlockedReason.WAITING_FOR_MEMORY);
when(queryInfo.getQueryStats().getBlockedReasons()).then(new Returns(setBlockedReason));
when(queryInfo.getQueryStats().getProgressPercentage()).then(new Returns(OptionalDouble.empty()));
BasicQueryInfo basicQueryInfo = new BasicQueryInfo(queryInfo);
return basicQueryInfo;
}
use of io.prestosql.execution.QueryInfo in project hetu-core by openlookeng.
the class TestBasicQueryInfo method testConstructor.
@Test
public void testConstructor() {
BasicQueryInfo basicInfo = new BasicQueryInfo(new QueryInfo(new QueryId("0"), TEST_SESSION.toSessionRepresentation(), RUNNING, new MemoryPoolId("reserved"), false, URI.create("1"), ImmutableList.of("2", "3"), "SELECT 4", Optional.empty(), new QueryStats(DateTime.parse("1991-09-06T05:00-05:30"), DateTime.parse("1991-09-06T05:01-05:30"), DateTime.parse("1991-09-06T05:02-05:30"), DateTime.parse("1991-09-06T06:00-05:30"), Duration.valueOf("8m"), Duration.valueOf("7m"), Duration.valueOf("34m"), Duration.valueOf("35m"), Duration.valueOf("44m"), Duration.valueOf("9m"), Duration.valueOf("10m"), Duration.valueOf("11m"), Duration.valueOf("12m"), Duration.valueOf("12m"), Duration.valueOf("12m"), 13, 14, 15, 16, 17, 18, 34, 19, 20.0, DataSize.valueOf("21GB"), DataSize.valueOf("22GB"), DataSize.valueOf("23GB"), DataSize.valueOf("24GB"), DataSize.valueOf("25GB"), DataSize.valueOf("26GB"), DataSize.valueOf("27GB"), DataSize.valueOf("28GB"), DataSize.valueOf("29GB"), true, Duration.valueOf("23m"), Duration.valueOf("24m"), Duration.valueOf("26m"), true, ImmutableSet.of(BlockedReason.WAITING_FOR_MEMORY), DataSize.valueOf("271GB"), 281, DataSize.valueOf("272GB"), 282, DataSize.valueOf("27GB"), 28, DataSize.valueOf("29GB"), 30, DataSize.valueOf("31GB"), 32, DataSize.valueOf("32GB"), ImmutableList.of(new StageGcStatistics(101, 102, 103, 104, 105, 106, 107)), ImmutableList.of()), Optional.empty(), Optional.empty(), Optional.empty(), ImmutableMap.of(), ImmutableSet.of(), ImmutableMap.of(), ImmutableMap.of(), ImmutableSet.of(), Optional.empty(), false, "33", Optional.empty(), null, StandardErrorCode.ABANDONED_QUERY.toErrorCode(), ImmutableList.of(), ImmutableSet.of(), Optional.empty(), false, Optional.empty(), false));
assertEquals(basicInfo.getQueryId().getId(), "0");
assertEquals(basicInfo.getState(), RUNNING);
assertEquals(basicInfo.getMemoryPool().getId(), "reserved");
assertEquals(basicInfo.isScheduled(), false);
assertEquals(basicInfo.getQuery(), "SELECT 4");
assertEquals(basicInfo.getQueryStats().getCreateTime(), DateTime.parse("1991-09-06T05:00-05:30"));
assertEquals(basicInfo.getQueryStats().getEndTime(), DateTime.parse("1991-09-06T06:00-05:30"));
assertEquals(basicInfo.getQueryStats().getElapsedTime(), Duration.valueOf("8m"));
assertEquals(basicInfo.getQueryStats().getExecutionTime(), Duration.valueOf("44m"));
assertEquals(basicInfo.getQueryStats().getTotalDrivers(), 16);
assertEquals(basicInfo.getQueryStats().getQueuedDrivers(), 17);
assertEquals(basicInfo.getQueryStats().getRunningDrivers(), 18);
assertEquals(basicInfo.getQueryStats().getCompletedDrivers(), 19);
assertEquals(basicInfo.getQueryStats().getCumulativeUserMemory(), 20.0);
assertEquals(basicInfo.getQueryStats().getUserMemoryReservation(), DataSize.valueOf("21GB"));
assertEquals(basicInfo.getQueryStats().getTotalMemoryReservation(), DataSize.valueOf("23GB"));
assertEquals(basicInfo.getQueryStats().getPeakUserMemoryReservation(), DataSize.valueOf("24GB"));
assertEquals(basicInfo.getQueryStats().getTotalCpuTime(), Duration.valueOf("24m"));
assertEquals(basicInfo.getQueryStats().isFullyBlocked(), true);
assertEquals(basicInfo.getQueryStats().getBlockedReasons(), ImmutableSet.of(BlockedReason.WAITING_FOR_MEMORY));
assertEquals(basicInfo.getQueryStats().getProgressPercentage(), OptionalDouble.of(100));
assertEquals(basicInfo.getErrorCode(), StandardErrorCode.ABANDONED_QUERY.toErrorCode());
assertEquals(basicInfo.getErrorType(), StandardErrorCode.ABANDONED_QUERY.toErrorCode().getType());
}
use of io.prestosql.execution.QueryInfo in project hetu-core by openlookeng.
the class TestQueryResource method testGetQueryInfoDispatchFailure.
@Test
public void testGetQueryInfoDispatchFailure() {
String queryId = runToCompletion("SELECT");
QueryInfo info = getQueryInfo(queryId);
assertFalse(info.isScheduled());
assertNotNull(info.getFailureInfo());
assertEquals(info.getFailureInfo().getErrorCode(), SYNTAX_ERROR.toErrorCode());
}
use of io.prestosql.execution.QueryInfo in project hetu-core by openlookeng.
the class TestQueryResource method getQueryInfo.
private QueryInfo getQueryInfo(String queryId) {
URI uri = uriBuilderFrom(server.getBaseUrl()).replacePath("/v1/query").appendPath(queryId).addParameter("pretty", "true").build();
Request request = prepareGet().setUri(uri).build();
JsonCodec<QueryInfo> codec = server.getInstance(Key.get(new TypeLiteral<JsonCodec<QueryInfo>>() {
}));
return client.execute(request, createJsonResponseHandler(codec));
}
Aggregations