Skip to content

Commit 5aa8d67

Browse files
committed
redirect outer fetcher tasks to cached executor to prevent pool-induced deadlock
1 parent 201a16b commit 5aa8d67

2 files changed

Lines changed: 8 additions & 7 deletions

File tree

java-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryDatabaseMetaData.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -912,7 +912,7 @@ public ResultSet getProcedures(
912912
}
913913
};
914914

915-
Future<?> fetcherFuture = connection.getMetadataExecutor().submit(procedureFetcher);
915+
Future<?> fetcherFuture = connection.getExecutorService().submit(procedureFetcher);
916916
BigQueryJsonResultSet resultSet =
917917
BigQueryJsonResultSet.of(resultSchema, -1, queue, null, new Future<?>[] {fetcherFuture});
918918

@@ -1127,7 +1127,7 @@ public ResultSet getProcedureColumns(
11271127
}
11281128
};
11291129

1130-
Future<?> fetcherFuture = connection.getMetadataExecutor().submit(procedureColumnFetcher);
1130+
Future<?> fetcherFuture = connection.getExecutorService().submit(procedureColumnFetcher);
11311131
BigQueryJsonResultSet resultSet =
11321132
BigQueryJsonResultSet.of(resultSchema, -1, queue, null, new Future<?>[] {fetcherFuture});
11331133

@@ -1759,7 +1759,7 @@ public ResultSet getTables(
17591759
}
17601760
};
17611761

1762-
Future<?> fetcherFuture = connection.getMetadataExecutor().submit(tableFetcher);
1762+
Future<?> fetcherFuture = connection.getExecutorService().submit(tableFetcher);
17631763
BigQueryJsonResultSet resultSet =
17641764
BigQueryJsonResultSet.of(resultSchema, -1, queue, null, new Future<?>[] {fetcherFuture});
17651765

@@ -2084,7 +2084,7 @@ public ResultSet getColumns(
20842084
}
20852085
};
20862086

2087-
Future<?> fetcherFuture = connection.getMetadataExecutor().submit(columnFetcher);
2087+
Future<?> fetcherFuture = connection.getExecutorService().submit(columnFetcher);
20882088
BigQueryJsonResultSet resultSet =
20892089
BigQueryJsonResultSet.of(resultSchema, -1, queue, null, new Future<?>[] {fetcherFuture});
20902090

@@ -3600,7 +3600,7 @@ public ResultSet getSchemas(String catalog, String schemaPattern) throws SQLExce
36003600
}
36013601
};
36023602

3603-
Future<?> fetcherFuture = connection.getMetadataExecutor().submit(schemaFetcher);
3603+
Future<?> fetcherFuture = connection.getExecutorService().submit(schemaFetcher);
36043604
BigQueryJsonResultSet resultSet =
36053605
BigQueryJsonResultSet.of(resultSchema, -1, queue, null, new Future<?>[] {fetcherFuture});
36063606

@@ -3879,7 +3879,7 @@ public ResultSet getFunctions(String catalog, String schemaPattern, String funct
38793879
}
38803880
};
38813881

3882-
Future<?> fetcherFuture = connection.getMetadataExecutor().submit(functionFetcher);
3882+
Future<?> fetcherFuture = connection.getExecutorService().submit(functionFetcher);
38833883
BigQueryJsonResultSet resultSet =
38843884
BigQueryJsonResultSet.of(resultSchema, -1, queue, null, new Future<?>[] {fetcherFuture});
38853885

@@ -4085,7 +4085,7 @@ public ResultSet getFunctionColumns(
40854085
}
40864086
};
40874087

4088-
Future<?> fetcherFuture = connection.getMetadataExecutor().submit(functionColumnFetcher);
4088+
Future<?> fetcherFuture = connection.getExecutorService().submit(functionColumnFetcher);
40894089
BigQueryJsonResultSet resultSet =
40904090
BigQueryJsonResultSet.of(resultSchema, -1, queue, null, new Future<?>[] {fetcherFuture});
40914091

java-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryDatabaseMetaDataTest.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,7 @@ public void setUp() throws SQLException {
7373
when(bigQueryConnection.getBigQuery()).thenReturn(bigqueryClient);
7474
when(bigQueryConnection.createStatement()).thenReturn(mockStatement);
7575
when(bigQueryConnection.getMetadataExecutor()).thenReturn(metadataExecutor);
76+
when(bigQueryConnection.getExecutorService()).thenReturn(metadataExecutor);
7677

7778
dbMetadata = new BigQueryDatabaseMetaData(bigQueryConnection);
7879
}

0 commit comments

Comments
 (0)