-
Notifications
You must be signed in to change notification settings - Fork 8.7k
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
bugfix: new connection can't be get when connection is not released #2068
Conversation
Codecov Report
@@ Coverage Diff @@
## develop #2068 +/- ##
=============================================
- Coverage 55.26% 55.16% -0.11%
+ Complexity 2523 2515 -8
=============================================
Files 446 446
Lines 14927 14922 -5
Branches 1770 1768 -2
=============================================
- Hits 8249 8231 -18
- Misses 5911 5923 +12
- Partials 767 768 +1
|
rm-datasource/src/main/java/io/seata/rm/datasource/DataSourceProxy.java
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Most valuable PR.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
Ⅰ. Describe what this PR did
When an rm is executed, its own business execution requires a database connection, Seata took 2 additional connections for the table meta.
During concurrency, there is not enough connection to the table meta, and druid will wait forever if it can't get the connection, so rm stuck.
The solution to this pr: makes connection reuse.
Ⅱ. Does this pull request fix one issue?
fixes #2069
Ⅲ. Why don't you add test cases (unit test/integration test)?
Ⅳ. Describe how to verify it
Ⅴ. Special notes for reviews