-
Notifications
You must be signed in to change notification settings - Fork 426
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
NullPointerException on reconnect with lockTimeout configured #2353
Comments
Thank you for providing additional instructions to what was mentioned in 2402210030004759. Since this is the same issue, we will be providing updates in that email thread. |
Well. The NPE has gone away. But still no reconnect! |
The above reconnection issue is part of a broader series of issues with reconnection/retry with the driver. We plan on releasing larger changes to address all these issues at once. If, following the release, the issue you have above persists, then please open a new issue. However, we do plan on including the above scenario in our test suite for the aforementioned retry changes. We will update this thread when the above changes are released. |
Thx for the information. |
@HeinzHuberRsg I've continued the discussion at #2438, reserving this closed issue for just the NullPointerException. I have a question though, what connection string options, besides |
Driver version
10.2.3 - 12.6.0
SQL Server version
2019
Client Operating System
Windows, Linux
JAVA/JVM version
1.8.0, 17
Table schema
No special schema
Problem description
If an automatic reconnect is triggered and lockTimeout is configured, a NullPointerException is thrown.
Expected behavior
Automatic reconnect works.
Actual behavior
Reconnect fails.
Error message/stack trace
Exception in thread "Thread-0" java.lang.NullPointerException: Cannot invoke "com.microsoft.sqlserver.jdbc.ICounter.increaseCounter(long)" because the return value of "com.microsoft.sqlserver.jdbc.TDSCommand.getCounter()" is null
at com.microsoft.sqlserver.jdbc.TDSReader.readPacket(IOBuffer.java:6880)
at com.microsoft.sqlserver.jdbc.TDSCommand.startResponse(IOBuffer.java:8077)
at com.microsoft.sqlserver.jdbc.TDSCommand.startResponse(IOBuffer.java:8040)
at com.microsoft.sqlserver.jdbc.SQLServerConnection$1ConnectionCommand.doExecute(SQLServerConnection.java:4260)
at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7675)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeReconnectCommand(SQLServerConnection.java:4222)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectionCommand(SQLServerConnection.java:4266)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:5163)
at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:5087)
at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7675)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeReconnect(SQLServerConnection.java:3590)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:3571)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:3172)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:3018)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1836)
at com.microsoft.sqlserver.jdbc.ReconnectThread.run(IdleConnectionResiliency.java:461)
Any other details that can be helpful
JDBC trace logs
jdbc0.zip
The support case 2402210030004759 contains an app to reproduce the problem
The text was updated successfully, but these errors were encountered: