Skip to content
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

Introduced timeouts for MSAL calls. #2562

Open
wants to merge 8 commits into
base: main
Choose a base branch
from
Open

Conversation

machavan
Copy link
Contributor

@machavan machavan commented Dec 12, 2024

Description:

Calls to MSAL authentication library done from the Java driver code use future.get(), potentially leading to hangs in case the library does not receive timely response from the server. All these calls done as part of getFedAuthToken need to have timeouts imposed. The timeout period is calculated based on remaining time wrt login timeout, and passed to future.get(, ) calls with this fix.

Tests:

  • Existing tests pass
  • Added new tests

Copy link

codecov bot commented Dec 12, 2024

Codecov Report

Attention: Patch coverage is 16.27907% with 36 lines in your changes missing coverage. Please review.

Project coverage is 51.14%. Comparing base (6829848) to head (9051847).

Files with missing lines Patch % Lines
...microsoft/sqlserver/jdbc/SQLServerMSAL4JUtils.java 15.78% 31 Missing and 1 partial ⚠️
.../microsoft/sqlserver/jdbc/SQLServerConnection.java 25.00% 3 Missing ⚠️
...osoft/sqlserver/jdbc/SQLServerSecurityUtility.java 0.00% 1 Missing ⚠️
Additional details and impacted files
@@             Coverage Diff              @@
##               main    #2562      +/-   ##
============================================
+ Coverage     51.03%   51.14%   +0.10%     
- Complexity     3919     3927       +8     
============================================
  Files           147      147              
  Lines         33456    33478      +22     
  Branches       5604     5609       +5     
============================================
+ Hits          17074    17122      +48     
+ Misses        13971    13943      -28     
- Partials       2411     2413       +2     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@lilgreenbird lilgreenbird added this to the 12.10.0 milestone Dec 16, 2024
- Replaced lock with tryLock to avoid potential long waiting for other
  threads while one thread is taking long to complete.
- Added detailed comment for the usage of semaphore.
try {
//
//Just try to acquire the semaphore and if can't then proceed to attempt to get the token.
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we intergate mockito framework and simulate this scenario?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: Under Peer Review
Development

Successfully merging this pull request may close these issues.

6 participants