[JDBC] Implement DataSource login timeout
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 4/5
- Tempo estimado
- 3-5 dias
- Facilidade para iniciantes
- 66/100
Direção de pesquisa
Comece por ArrowFlightJdbcDataSource.setLoginTimeout(int), getLoginTimeout() e pelo caminho de DataSource.getConnection(); compare-os com o comportamento existente de connectTimeoutMs. Adicione cobertura para o valor padrão, setter/getter, aplicação do timeout, SQLTimeoutException e limpeza de recursos criados parcialmente. Considera-se concluído quando zero preserva o comportamento padrão e timeouts de login diferentes de zero cancelam tentativas com falha sem vazamentos.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
Describe the enhancement requested
ArrowFlightJdbcDataSource.setLoginTimeout(int) currently throws SQLFeatureNotSupportedException, and getLoginTimeout() always returns 0.
Implement the JDBC DataSource login-timeout contract:
- Store and return the timeout configured for each
ArrowFlightJdbcDataSourceinstance. - Apply a nonzero timeout to connection establishment through
DataSource.getConnection(). - Preserve the JDBC semantics of zero: use the default system timeout if one exists; otherwise, do not impose a timeout.
- If the timeout expires, attempt to cancel the connection attempt and throw
SQLTimeoutException. - Clean up any allocator, channel, or partially constructed client when the attempt is cancelled or times out.
- Add tests for the default value, setter/getter behavior, timeout enforcement, exception type, and resource cleanup.
This is distinct from #494/#495. The existing connectTimeoutMs property configures Netty socket connection attempts; the JDBC login timeout applies to the overall database connection attempt exposed by DataSource.getConnection().
Context: #1027 and the follow-up discussion.
Related DriverManager work: https://github.com/apache/arrow-java/issues/1268
- Linguagem predominante
- Java
- Estrelas
- 95
- Forks
- 154
- Merge médio
- 2d 10h
- PRs com merge (30d)
- 11
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
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 74/100
apache/arrow-java#1261 ·
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
apache/arrow-java#1236 ·
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
apache/arrow-java#1230 ·
-
Type: bug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 85/100
apache/arrow-java#1205 ·
-
Type: bug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 68/100
apache/arrow-java#1196 · 1 comentário ·
Todas as issues de apache/arrow-java
Issues semelhantes
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 65/100
-
bug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
elastic/gradle-plugins#157 ·
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
cryptomator/hub#497 ·
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
johanhaleby/occurrent#1120 ·