[FlightSQL] Statement.execute(String) can leak server prepared-statement handles when reused
Mantenedores costumam responder em até 1 dia
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 3/5
- Tempo estimado
- 1-2 dias
- Facilidade para iniciantes
- 55/100
Direção de pesquisa
Comece pela implementação JDBC de Flight SQL de Statement.execute(String) e rastreie como os handles de prepared-statement são substituídos e fechados; a issue não nomeia nenhum arquivo nem teste. Reproduza o loop contra um servidor Flight SQL stateful e, em seguida, verifique se cada handle anterior é liberado antes que o próximo seja rastreado e se Statement.close ainda limpa o handle final.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
Describe the bug, including details regarding any error messages, version, and platform.
When reusing the same JDBC Statement and calling execute(String) multiple times, the Flight SQL JDBC path creates a new prepared statement on each call, but previous prepared handles are not closed before being replaced in client tracking state.
This means only the latest handle is guaranteed to be closed when the statement is closed. On stateful Flight SQL servers, this can leak server-side resources associated with older handles.
Repro
try (Connection connection = DriverManager.getConnection(jdbcUrl, properties);
Statement statement = connection.createStatement()) {
for (int i = 1; i <= n; i++) {
String sql = "SELECT " + i;
boolean isResultSet = statement.execute(sql);
if (isResultSet) {
try (ResultSet rs = statement.getResultSet()) {
while (rs.next()) { /* consume */ }
}
}
}
}
Raised in https://github.com/apache/arrow-java/pull/1090#discussion_r3132344585
- Linguagem predominante
- Java
- Estrelas
- 97
- Forks
- 158
- Merge médio
- 7d 12h
- PRs com merge (30d)
- 31
Preparar o ambiente
- Inclui um Dockerfile ou arquivo Docker Compose
- Tem um modelo de pull request
- Ler o guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de apache/arrow-java
-
DictionaryEncoder.decode accepts out-of-range dictionary indicesTalvez já em andamento @Arawoof06 assumiu há 49 dias. Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 74/100
apache/arrow-java#1261 ·
Mantenedores costumam responder em até 1 dia
-
ArrowFlightJdbcArray.getArray(index, count) can read past the end of the array sliceTalvez já em andamento @Arawoof06 assumiu há 78 dias. Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
apache/arrow-java#1236 ·
Mantenedores costumam responder em até 1 dia
-
[Java][JDBC] ClobConsumer writes past VarCharVector data buffer for large CLOBsTalvez já em andamento @Arawoof06 assumiu há 83 dias. Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
apache/arrow-java#1230 ·
Mantenedores costumam responder em até 1 dia
-
[Java] DictionaryEncoder doesn't crash when decoding index outside of DictionaryTalvez já em andamento @jakobhok-neo4j assumiu há 140 dias. AbertaType: bug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 74/100
apache/arrow-java#1158 ·
Mantenedores costumam responder em até 1 dia
-
Type: enhancement
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 76/100
apache/arrow-java#1100 ·
Mantenedores costumam responder em até 1 dia
Todas as issues de apache/arrow-java
Issues semelhantes
-
[Bug] Logo style setting missing and `classic` style not applied across multiple platforms (v3.1.0)Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
Stirling-Tools/Stirling-PDF#8382 · 1 reação ·
Mantenedores costumam responder em até 2 dias
-
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 70/100
Mantenedores costumam responder em até 4 dias
-
enhancement untriaged
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
opensearch-project/sql#5842 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 85/100
openhab/openhab-addons#21882 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
YunaiV/ruoyi-vue-pro#1273 ·
Mantenedores costumam responder em até 3 dias