-
Notifications
You must be signed in to change notification settings - Fork 377
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
Fixed span clone concurrency issues #518
Conversation
Hi @ZijieSong, welcome to SOFAStack community, Please sign Contributor License Agreement! After you signed CLA, we will automatically sync the status of this pull request in 3 minutes. |
WalkthroughThe changes primarily consist of updating the version from Changes
Poem
Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media? TipsChatThere are 3 ways to chat with CodeRabbit:
Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (invoked as PR comments)
Additionally, you can add CodeRabbit Configration File (
|
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.
Actionable comments posted: 0
Review Details
Configuration used: CodeRabbit UI
Review profile: CHILL
Files selected for processing (27)
- pom.xml (1 hunks)
- sofa-tracer-plugins/sofa-tracer-datasource-plugin/pom.xml (1 hunks)
- sofa-tracer-plugins/sofa-tracer-dubbo-2.6.x-plugin/pom.xml (1 hunks)
- sofa-tracer-plugins/sofa-tracer-dubbo-common-plugin/pom.xml (1 hunks)
- sofa-tracer-plugins/sofa-tracer-dubbo-plugin/pom.xml (1 hunks)
- sofa-tracer-plugins/sofa-tracer-flexible-plugin/pom.xml (1 hunks)
- sofa-tracer-plugins/sofa-tracer-httpclient-plugin/pom.xml (1 hunks)
- sofa-tracer-plugins/sofa-tracer-kafkamq-plugin/pom.xml (1 hunks)
- sofa-tracer-plugins/sofa-tracer-mongodb-plugin/pom.xml (1 hunks)
- sofa-tracer-plugins/sofa-tracer-okhttp-plugin/pom.xml (1 hunks)
- sofa-tracer-plugins/sofa-tracer-rabbitmq-plugin/pom.xml (1 hunks)
- sofa-tracer-plugins/sofa-tracer-redis-plugin/pom.xml (1 hunks)
- sofa-tracer-plugins/sofa-tracer-resttmplate-plugin/pom.xml (1 hunks)
- sofa-tracer-plugins/sofa-tracer-rocketmq-plugin/pom.xml (1 hunks)
- sofa-tracer-plugins/sofa-tracer-spring-cloud-plugin/pom.xml (1 hunks)
- sofa-tracer-plugins/sofa-tracer-springmessage-plugin/pom.xml (1 hunks)
- sofa-tracer-plugins/sofa-tracer-springmvc-plugin/pom.xml (1 hunks)
- sofa-tracer-plugins/sofa-tracer-zipkin-plugin/pom.xml (1 hunks)
- tracer-all/pom.xml (1 hunks)
- tracer-core/pom.xml (1 hunks)
- tracer-core/src/main/java/com/alipay/common/tracer/core/span/SofaTracerSpan.java (2 hunks)
- tracer-extensions/pom.xml (1 hunks)
- tracer-sofa-boot-starter/pom.xml (1 hunks)
- tracer-test/core-test/pom.xml (1 hunks)
- tracer-test/log4j-test/pom.xml (1 hunks)
- tracer-test/log4j2-test/pom.xml (1 hunks)
- tracer-test/logback-test/pom.xml (1 hunks)
Files skipped from review due to trivial changes (26)
- pom.xml
- sofa-tracer-plugins/sofa-tracer-datasource-plugin/pom.xml
- sofa-tracer-plugins/sofa-tracer-dubbo-2.6.x-plugin/pom.xml
- sofa-tracer-plugins/sofa-tracer-dubbo-common-plugin/pom.xml
- sofa-tracer-plugins/sofa-tracer-dubbo-plugin/pom.xml
- sofa-tracer-plugins/sofa-tracer-flexible-plugin/pom.xml
- sofa-tracer-plugins/sofa-tracer-httpclient-plugin/pom.xml
- sofa-tracer-plugins/sofa-tracer-kafkamq-plugin/pom.xml
- sofa-tracer-plugins/sofa-tracer-mongodb-plugin/pom.xml
- sofa-tracer-plugins/sofa-tracer-okhttp-plugin/pom.xml
- sofa-tracer-plugins/sofa-tracer-rabbitmq-plugin/pom.xml
- sofa-tracer-plugins/sofa-tracer-redis-plugin/pom.xml
- sofa-tracer-plugins/sofa-tracer-resttmplate-plugin/pom.xml
- sofa-tracer-plugins/sofa-tracer-rocketmq-plugin/pom.xml
- sofa-tracer-plugins/sofa-tracer-spring-cloud-plugin/pom.xml
- sofa-tracer-plugins/sofa-tracer-springmessage-plugin/pom.xml
- sofa-tracer-plugins/sofa-tracer-springmvc-plugin/pom.xml
- sofa-tracer-plugins/sofa-tracer-zipkin-plugin/pom.xml
- tracer-all/pom.xml
- tracer-core/pom.xml
- tracer-extensions/pom.xml
- tracer-sofa-boot-starter/pom.xml
- tracer-test/core-test/pom.xml
- tracer-test/log4j-test/pom.xml
- tracer-test/log4j2-test/pom.xml
- tracer-test/logback-test/pom.xml
Additional comments not posted (4)
tracer-core/src/main/java/com/alipay/common/tracer/core/span/SofaTracerSpan.java (4)
42-42
: Import ofConcurrentHashMap
is correctly added to support thread-safe operations on maps.
58-58
: Switching toConcurrentHashMap
fortagsWithStr
enhances thread safety, aligning with the PR's objective to fix concurrency issues.
60-60
: UsingConcurrentHashMap
fortagsWithBool
is appropriate for concurrent access, ensuring thread safety.
62-62
: The replacement ofLinkedHashMap
withConcurrentHashMap
fortagsWithNumber
is a prudent choice for managing concurrent modifications.
@xzchaoo pls provide 3.1.4-SNAPSHOT version branch to receive new pr |
f85dab0
to
59f2366
Compare
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.
Actionable comments posted: 0
Review Details
Configuration used: CodeRabbit UI
Review profile: CHILL
Files selected for processing (2)
- tracer-core/src/main/java/com/alipay/common/tracer/core/span/SofaTracerSpan.java (2 hunks)
- tracer-sofa-boot-starter/pom.xml (1 hunks)
Files skipped from review as they are similar to previous changes (2)
- tracer-core/src/main/java/com/alipay/common/tracer/core/span/SofaTracerSpan.java
- tracer-sofa-boot-starter/pom.xml
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.
Actionable comments posted: 3
File file = customFileLog(TracerTestLogEnum.RPC_CLIENT | ||
.getDefaultLogName()); | ||
String absolutePath = file.getAbsolutePath(); | ||
System.out.println("path is ????"+absolutePath); |
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.
Ensure file resources are properly released.
The method FileUtils.readLines
opens a file stream that should be properly closed to avoid resource leaks. Consider using a try-with-resources statement or manually closing the stream in a finally block.
Refactor to improve readability and maintainability.
The current implementation mixes file handling and business logic in a single block. Consider separating these concerns for clearer code. For example, file handling could be moved to a separate method, and the business logic could focus solely on processing the file contents.
Consider handling potential IOException
more gracefully.
The current implementation throws an AssertionError
if an IOException
occurs. It might be more appropriate to handle this exception directly within the test, perhaps logging the error or using a more specific assertion to handle this case. This would make the test more robust and self-contained.
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.
Actionable comments posted: 0
Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Files selected for processing (1)
- tracer-core/src/test/java/com/alipay/common/tracer/core/tracertest/SofaTracerTest.java (2 hunks)
Files skipped from review as they are similar to previous changes (1)
- tracer-core/src/test/java/com/alipay/common/tracer/core/tracertest/SofaTracerTest.java
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.
Actionable comments posted: 0
Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Files selected for processing (1)
- tracer-core/src/test/java/com/alipay/common/tracer/core/TestUtil.java (1 hunks)
Files skipped from review due to trivial changes (1)
- tracer-core/src/test/java/com/alipay/common/tracer/core/TestUtil.java
640ced8
to
59f2366
Compare
Motivation:
When using com.alipay.common.tracer.core.span.SofaTracerSpan#cloneInstance, it may lead to concurrency safety issues.
Modification:
Change the class that causes concurrency issues: linkedhashmap, to concurrenthashmap. Note that there may be a loss of order here, but there is no need for insertion order in the code, so this modification can be made.
Summary by CodeRabbit
Updates
3.1.3
to3.1.4-SNAPSHOT
across various components for consistency and future enhancements.Improvements
LinkedHashMap
withConcurrentHashMap
for tag storage inSofaTracerSpan
.Tests
SofaTracerTest
to improve test robustness.TestUtil
for better debugging during test failures.