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

change tag to 3.1.9 #553

Merged
merged 1 commit into from
Dec 24, 2024
Merged

change tag to 3.1.9 #553

merged 1 commit into from
Dec 24, 2024

Conversation

08fly
Copy link
Contributor

@08fly 08fly commented Dec 24, 2024

Motivation:

Released to fix the problem that redis-plugin is currently unable to print logs normally

Modification:

change tag to 3.1.9

Result:

Fixes #.

If there is no issue then describe the changes introduced by this PR.

Summary by CodeRabbit

  • New Features
    • Transitioned multiple plugins and modules from a snapshot version to a stable release version (3.1.9).
  • Bug Fixes
    • Resolved potential issues related to dependency resolution by updating versioning across various components.
  • Chores
    • Updated versioning in the project configuration files for consistency and stability.

Copy link

coderabbitai bot commented Dec 24, 2024

Walkthrough

This pull request involves a comprehensive version update across multiple pom.xml files in the project. The primary change is the transition of version numbers from 3.1.9-SNAPSHOT to 3.1.9 for various modules, including the parent project, tracer plugins, core components, extensions, and test modules. This update indicates a move from a development snapshot version to a stable release version, affecting the entire project's versioning strategy.

Changes

File/Directory Change Summary
pom.xml Parent artifact version updated from 3.1.9-SNAPSHOT to 3.1.9
sofa-tracer-plugins/*/pom.xml Version updated in multiple plugin modules
tracer-all/pom.xml Parent and artifact versions updated to 3.1.9
tracer-core/pom.xml Parent version updated to 3.1.9
tracer-extensions/pom.xml Parent version updated to 3.1.9
tracer-sofa-boot-starter/pom.xml Parent version updated to 3.1.9
tracer-test/*/pom.xml Parent version updated to 3.1.9 in test modules

Possibly related PRs

Suggested labels

first-time contributor

Poem

🐰 Hop, hop, version's on the move!
From snapshot to release, we groove
POM files dancing, version so neat
A rabbit's release, oh so sweet! 🚀
Tracking changes with coding delight
Version 3.1.9 shining bright! 🌟


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?

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Generate unit testing code for this file.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

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 using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR. (Beta)
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

Copy link

@coderabbitai coderabbitai bot left a 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

🔭 Outside diff range comments (2)
sofa-tracer-plugins/sofa-tracer-dubbo-common-plugin/pom.xml (1)

Security vulnerability found in Apache Dubbo 2.7.3 and dual dependency structure is intentional

The dual Dubbo dependencies in sofa-tracer-dubbo-common-plugin are actually intentional, as this appears to be a common plugin supporting both Alibaba Dubbo 2.6.x and Apache Dubbo 2.7.x versions. This is evidenced by the separate plugins (sofa-tracer-dubbo-2.6.x-plugin and sofa-tracer-dubbo-plugin) that individually depend on specific versions.

However, Apache Dubbo 2.7.3 has critical security vulnerabilities. According to the GitHub Security Advisory, versions below 2.7.21 are vulnerable to "Deserialization of Untrusted Data" (CRITICAL severity).

  • Consider upgrading Apache Dubbo from 2.7.3 to at least version 2.7.22 to address the critical security vulnerability
  • The dual dependency structure itself is valid as both are marked as 'provided' and serve different compatibility purposes
🔗 Analysis chain

Line range hint 16-28: Review dual Dubbo dependencies

The POM includes both Alibaba Dubbo (2.6.12) and Apache Dubbo (2.7.3) dependencies. While they are marked as 'provided', this could potentially cause conflicts. Additionally, Apache Dubbo 2.7.3 is quite old and might have security vulnerabilities.


Let me check the content of other Dubbo-related POM files to understand the dependency structure better.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Check for security advisories for Apache Dubbo
gh api graphql -f query='
{
  securityVulnerabilities(first: 5, ecosystem: MAVEN, package: "org.apache.dubbo:dubbo") {
    nodes {
      advisory {
        summary
        severity
        publishedAt
      }
      vulnerableVersionRange
      firstPatchedVersion {
        identifier
      }
    }
  }
}'

# Search for potential dependency conflicts in the codebase
rg -l "dubbo" --type xml

Length of output: 1714


Script:

#!/bin/bash
# Check the content of Dubbo-related POM files
cat sofa-tracer-plugins/sofa-tracer-dubbo-plugin/pom.xml
cat sofa-tracer-plugins/sofa-tracer-dubbo-2.6.x-plugin/pom.xml

Length of output: 3111

tracer-test/logback-test/pom.xml (1)

Security: Update logback-classic to version 1.2.13 or later to address high severity vulnerabilities

The current version (1.2.0) is vulnerable to a high severity serialization vulnerability (CVE) that affects all versions below 1.2.13. The vulnerability was published on 2023-11-29.

  • Update the dependency version in tracer-test/logback-test/pom.xml from 1.2.0 to at least 1.2.13
🔗 Analysis chain

Line range hint 21-24: Security: Consider updating logback-classic version

The current version (1.2.0) of logback-classic has known security vulnerabilities. Consider upgrading to a more recent version.

Run this script to check for security advisories:

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Check for security advisories for logback-classic
gh api graphql -f query='
{
  securityVulnerabilities(first: 5, ecosystem: MAVEN, package: "ch.qos.logback:logback-classic") {
    nodes {
      advisory {
        summary
        severity
        publishedAt
      }
      vulnerableVersionRange
      firstPatchedVersion {
        identifier
      }
    }
  }
}'

Length of output: 1213

🧹 Nitpick comments (3)
tracer-test/log4j-test/pom.xml (1)

7-8: Consider dependency version management and logging configuration

While the version updates are consistent across all modules, there are a few architectural considerations:

  1. Some dependencies (mongodb-driver, Apache Dubbo) are using older versions that might have security vulnerabilities.
  2. The logging configuration should be reviewed across all plugins to ensure consistent behavior, especially for the redis-plugin mentioned in the PR objective.

Consider:

  • Centralizing dependency version management in the parent POM
  • Documenting the logging configuration requirements for plugins
sofa-tracer-plugins/sofa-tracer-redis-plugin/pom.xml (1)

Line range hint 1-67: Consider documenting the logging fix

Since this version change is specifically meant to fix redis-plugin logging issues, consider adding a comment in the changelog or documentation explaining what logging issues were fixed in version 3.1.9.

tracer-test/core-test/pom.xml (1)

7-7: Consider documenting logging configuration changes

While the version changes are consistent across modules, consider:

  1. Documenting the specific logging issues that this version change fixes
  2. Adding logging configuration examples for the redis-plugin
  3. Creating a test case that verifies the logging functionality

This will help users understand the changes and prevent similar issues in future releases.

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between ec1585c and c8407d3.

📒 Files selected for processing (26)
  • 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-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 (11)
  • sofa-tracer-plugins/sofa-tracer-rocketmq-plugin/pom.xml
  • sofa-tracer-plugins/sofa-tracer-flexible-plugin/pom.xml
  • sofa-tracer-plugins/sofa-tracer-dubbo-2.6.x-plugin/pom.xml
  • sofa-tracer-plugins/sofa-tracer-rabbitmq-plugin/pom.xml
  • sofa-tracer-plugins/sofa-tracer-datasource-plugin/pom.xml
  • sofa-tracer-plugins/sofa-tracer-httpclient-plugin/pom.xml
  • sofa-tracer-plugins/sofa-tracer-okhttp-plugin/pom.xml
  • sofa-tracer-plugins/sofa-tracer-dubbo-plugin/pom.xml
  • sofa-tracer-plugins/sofa-tracer-spring-cloud-plugin/pom.xml
  • sofa-tracer-plugins/sofa-tracer-zipkin-plugin/pom.xml
  • tracer-all/pom.xml
🔇 Additional comments (21)
tracer-extensions/pom.xml (1)

7-7: LGTM! Version update is consistent with release strategy.

The version update from 3.1.9-SNAPSHOT to 3.1.9 in tracer-extensions is appropriate as part of the coordinated release. Since this is a core module that plugins depend on, this change is essential for the redis-plugin logging fix.

sofa-tracer-plugins/sofa-tracer-springmessage-plugin/pom.xml (1)

8-9: LGTM! Version and parent resolution are properly configured.

The version update to 3.1.9 is consistent with the release. The explicit relativePath ensures proper parent POM resolution.

Let's verify version consistency across related modules:

✅ Verification successful

Let me verify the exact versions in these files to ensure consistency.


Version consistency verified across all modules

The version update to 3.1.9 in sofa-tracer-springmessage-plugin/pom.xml is consistent with all other modules in the project. All plugin modules and core components are properly aligned to version 3.1.9, with no remaining SNAPSHOT versions found. The other version numbers found (3.19.1, 3.12.1, 3.1.0) are for different dependencies and not related to the sofa-tracer parent version.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Check version consistency across related modules
# Look for any remaining SNAPSHOT versions or inconsistent versions

echo "Checking for any remaining SNAPSHOT versions..."
find . -name "pom.xml" -type f -exec grep -l "3.1.9-SNAPSHOT" {} \;

echo "Checking for inconsistent versions..."
find . -name "pom.xml" -type f -exec grep -l "<version>3.1." {} \;

Length of output: 1576


Script:

#!/bin/bash
# Check the specific version numbers in all pom.xml files
for pom in $(find . -name "pom.xml" -type f); do
  echo "=== $pom ==="
  grep -A 1 "<artifactId>sofa-tracer-parent</artifactId>" "$pom" || true
  grep "<version>3.1." "$pom" || true
done

Length of output: 10179

sofa-tracer-plugins/sofa-tracer-springmvc-plugin/pom.xml (2)

7-8: LGTM! Version update maintains consistency across plugins.

The version update to 3.1.9 aligns with the coordinated release. While this plugin isn't directly related to the redis-plugin logging issue, maintaining version consistency across all plugins is crucial for system stability.


7-7: Verify redis-plugin logging functionality.

While the version updates are consistent across modules, let's verify that this change actually addresses the redis-plugin logging issue:

Consider adding test cases to verify that redis-plugin logging works as expected after this version update.

Also applies to: 8-8, 7-8

sofa-tracer-plugins/sofa-tracer-mongodb-plugin/pom.xml (2)

8-8: LGTM: Version update from SNAPSHOT to release

The version change from 3.1.9-SNAPSHOT to 3.1.9 is consistent with the PR objective.


Line range hint 29-33: Verify mongodb-driver version for security vulnerabilities

The mongodb-driver version 3.8.2 is relatively old. Let's check for any known security vulnerabilities.

✅ Verification successful

MongoDB Driver 3.8.2 appears to be safe from known vulnerabilities

Based on the GitHub Security Advisory data, version 3.8.2 is not within any of the vulnerable version ranges reported. The known vulnerabilities affect:

  • MongoDB Driver versions 3.12.0 to 3.12.7
  • MongoDB Driver versions 3.11.0 to 3.11.2

However, since this is an older version, it's recommended to consider upgrading to a more recent release for better features and security improvements.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Check for security advisories for mongodb-driver
gh api graphql -f query='
{
  securityVulnerabilities(first: 5, ecosystem: MAVEN, package: "org.mongodb:mongodb-driver") {
    nodes {
      advisory {
        summary
        severity
        publishedAt
      }
      vulnerableVersionRange
      firstPatchedVersion {
        identifier
      }
    }
  }
}'

Length of output: 806

sofa-tracer-plugins/sofa-tracer-dubbo-common-plugin/pom.xml (1)

8-8: LGTM: Version update from SNAPSHOT to release

The version change from 3.1.9-SNAPSHOT to 3.1.9 is consistent with the PR objective.

tracer-test/log4j-test/pom.xml (2)

7-7: LGTM: Version update from SNAPSHOT to release

The version change from 3.1.9-SNAPSHOT to 3.1.9 is consistent with the PR objective.


Line range hint 27-29: Verify logging configuration impact on redis-plugin

Since the PR aims to fix redis-plugin logging issues, let's verify the logging configuration and its potential impact.

tracer-test/logback-test/pom.xml (1)

7-7: Version update looks good

The version update from 3.1.9-SNAPSHOT to 3.1.9 is consistent with the project-wide version change.

sofa-tracer-plugins/sofa-tracer-kafkamq-plugin/pom.xml (1)

8-8: Version update looks good

The version update from 3.1.9-SNAPSHOT to 3.1.9 is consistent with the project-wide version change.

sofa-tracer-plugins/sofa-tracer-redis-plugin/pom.xml (2)

8-8: Version update looks good

The version update from 3.1.9-SNAPSHOT to 3.1.9 is consistent with the project-wide version change.


Line range hint 17-20: Verify redis-plugin logging functionality

Since this PR aims to fix redis-plugin logging issues, we should verify that the version change actually resolves the logging problems.

Let's check for any logging-related changes or issues:

✅ Verification successful

Based on the examination of the Redis plugin's source code, I can now provide a final response:

Redis plugin's logging functionality appears to be properly implemented

The plugin has a complete logging infrastructure in place:

  • Dedicated logging enums (RedisLogEnum) defining both digest and stat logs
  • Proper implementation of tracers (RedisSofaTracer) extending AbstractClientTracer
  • Complete reporting chain with RedisStatReporter and RedisStatJsonReporter
  • Digest encoders (RedisDigestEncoder, RedisDigestJsonEncoder) for log formatting

The dependency on tracer-core in the pom.xml is appropriate as it provides the base functionality that these implementations extend. The logging framework is well-structured and follows the standard SOFA tracer patterns.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Check for logging-related changes in recent commits
git log -n 10 --grep="log\|print" -- "sofa-tracer-plugins/sofa-tracer-redis-plugin/"

# Check for logging configurations
find . -type f -name "*.properties" -o -name "*.xml" | grep -i "log" | while read -r file; do
  echo "=== $file ==="
  cat "$file"
done

# Look for logging-related code in the redis plugin
rg -l "log\.|Logger|LoggerFactory" "sofa-tracer-plugins/sofa-tracer-redis-plugin/src/"

Length of output: 14647


Script:

#!/bin/bash
# Let's check for Redis plugin logging implementation and configuration
rg -A 5 "log\.|Logger|LoggerFactory" "sofa-tracer-plugins/sofa-tracer-redis-plugin/src/"

# Check for Redis tracer configuration files
fd -t f . "sofa-tracer-plugins/sofa-tracer-redis-plugin/" -e properties -e xml

# Check for Redis span reporter or logging reporter implementations
ast-grep --pattern 'class $_ implements $_ {
  $$$
}'  "sofa-tracer-plugins/sofa-tracer-redis-plugin/src/"

# Look for test files that verify Redis logging
fd -t f . "sofa-tracer-plugins/sofa-tracer-redis-plugin/src/test/"

Length of output: 535


Script:

#!/bin/bash
# Let's check the actual source files in the Redis plugin directory
fd -t f . "sofa-tracer-plugins/sofa-tracer-redis-plugin/src/"

# Check for any Redis tracer implementation files
rg -l "Redis.*Tracer|RedisCommand" "sofa-tracer-plugins/sofa-tracer-redis-plugin/src/"

# Look for span reporting or logging related classes
rg -l "Span.*Report|Log.*Report" "sofa-tracer-plugins/sofa-tracer-redis-plugin/src/"

# Check for any test resources or configuration files
fd -t f . "sofa-tracer-plugins/sofa-tracer-redis-plugin/" -e properties -e yml -e yaml

Length of output: 4083


Script:

#!/bin/bash
# Let's examine the Redis tracer implementation and reporters
rg -A 10 "class RedisSofaTracer" "sofa-tracer-plugins/sofa-tracer-redis-plugin/src/main/java/com/sofa/alipay/tracer/plugins/spring/redis/tracer/RedisSofaTracer.java"

# Check the Redis logging enum definitions
rg -A 5 "enum RedisLogEnum" "sofa-tracer-plugins/sofa-tracer-redis-plugin/src/main/java/com/sofa/alipay/tracer/plugins/spring/redis/enums/RedisLogEnum.java"

# Examine the Redis reporters implementation
rg -A 10 "class RedisStatJsonReporter|class RedisStatReporter" "sofa-tracer-plugins/sofa-tracer-redis-plugin/src/main/java/com/sofa/alipay/tracer/plugins/spring/redis/reporter/"

# Look for digest encoder implementations
rg -A 5 "class RedisDigestEncoder|class RedisDigestJsonEncoder" "sofa-tracer-plugins/sofa-tracer-redis-plugin/src/main/java/com/sofa/alipay/tracer/plugins/spring/redis/encoder/"

Length of output: 7641

tracer-test/log4j2-test/pom.xml (1)

7-7: Version update looks good

The version change from 3.1.9-SNAPSHOT to 3.1.9 is consistent with the PR objective.

Let's verify the logging configuration across the project:

✅ Verification successful

Logging configuration is properly maintained across the project

The verification shows:

  • Log4j2 test module uses version 2.17.1 which is secure (post Log4Shell fix)
  • Logging dependencies are properly segregated into separate test modules:
    • logback-test for Logback implementation
    • log4j2-test for Log4j2 implementation
    • log4j-test for Log4j implementation
  • Core modules use SLF4J API, maintaining logging framework independence
🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Check logging configurations across the project
# Look for logging-related configurations that might affect redis-plugin

# Search for log4j2 configurations
echo "Checking for log4j2.xml configurations..."
fd -e xml -e properties -e yaml -e yml | rg -l "log4j2"

# Search for logging-related properties in pom files
echo "Checking for logging-related dependencies..."
fd "pom.xml" | xargs rg "slf4j|logback|log4j"

Length of output: 2819

sofa-tracer-plugins/sofa-tracer-resttmplate-plugin/pom.xml (1)

8-8: Version update is consistent

The version change to 3.1.9 maintains consistency across modules.

tracer-test/core-test/pom.xml (1)

7-7: Version update and logging configuration verification needed

The version change to 3.1.9 is consistent, but since this PR aims to fix redis-plugin logging issues, we should verify the logging configuration.

Let's check for potential logging conflicts:

✅ Verification successful

Version change is safe, logging dependencies are properly configured

The version change from 3.1.9-SNAPSHOT to 3.1.9 is consistent. Regarding the logging configuration:

  • The core-test module correctly declares slf4j-log4j12 and slf4j-api dependencies
  • Each test module (logback-test, log4j2-test, log4j-test) has its own specific logging implementation, which is a proper separation of concerns
  • There are no version conflicts visible in the core-test module's dependencies

The logging setup appears to be properly structured with clear separation between different logging implementations in test modules, which shouldn't affect the redis-plugin logging issues.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify logging dependencies and potential conflicts
# that might affect redis-plugin logging

# Check effective POM to see resolved versions
echo "Checking effective logging dependencies..."
fd "pom.xml" -p "sofa-tracer-redis-plugin" -x mvn help:effective-pom -pl {} | rg "<artifactId>(slf4j|logback|log4j)"

# Look for multiple logging implementations
echo "Checking for multiple logging implementations..."
fd "pom.xml" | xargs rg "<artifactId>(slf4j-log4j12|logback-classic|log4j-slf4j-impl)"

# Check redis plugin specific logging configuration
echo "Checking redis plugin logging configuration..."
fd -t f -p "sofa-tracer-redis-plugin" | rg -l "log|logging"

Length of output: 1015


Script:

#!/bin/bash
# Let's try a different approach to verify logging dependencies

# First, check the direct parent POM for logging dependencies
echo "Checking parent POM logging dependencies..."
cat tracer-test/core-test/pom.xml | rg -A 2 -B 2 "<artifactId>(slf4j|logback|log4j)"

# Check if there are any logging-related properties or dependency management
echo "Checking for logging-related properties..."
cat tracer-test/core-test/pom.xml | rg -A 2 -B 2 "<properties>|<dependencyManagement>"

# Check the root POM for logging dependency versions
echo "Checking root POM for logging configurations..."
cat pom.xml | rg -A 2 -B 2 "<artifactId>(slf4j|logback|log4j)"

# Look for any logging configuration files
echo "Checking for logging configuration files..."
fd -e xml -e properties | rg -l "log4j|logback"

Length of output: 960

pom.xml (2)

12-12: LGTM! Version update from SNAPSHOT to release.

The version change from 3.1.9-SNAPSHOT to 3.1.9 is consistent with the PR objective to fix redis-plugin logging issues.

Let's verify version consistency across all modules:

✅ Verification successful

Version consistency verified across all modules

The verification shows:

  • No remaining SNAPSHOT versions were found in any pom.xml files
  • All modules have been properly updated to version 3.1.9, including:
    • Core modules (tracer-core, tracer-all)
    • All plugins including the redis-plugin
    • Test modules
    • Extensions and starter modules
🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Check for any remaining SNAPSHOT versions in pom files
echo "Checking for any remaining SNAPSHOT versions..."
find . -name "pom.xml" -exec grep -l "3.1.9-SNAPSHOT" {} \;

# Check if all modules have the same version
echo "Verifying version consistency across modules..."
find . -name "pom.xml" -exec grep -l "<version>3.1.9</version>" {} \;

Length of output: 1591


12-12: Verify redis-plugin changes in this version.

Since this PR aims to fix redis-plugin logging issues, let's verify the changes.

tracer-core/pom.xml (1)

7-7: Version update looks good

The version change from 3.1.9-SNAPSHOT to 3.1.9 is consistent with the PR objective.

Let's verify no version conflicts are introduced:

✅ Verification successful

Version update is consistent and properly aligned across the project

The version change from 3.1.9-SNAPSHOT to 3.1.9 in tracer-core/pom.xml is properly synchronized with all other modules in the project. The analysis shows:

  • All modules consistently use version 3.1.9
  • The parent POM (tracer-all-parent) and all child modules are aligned to the same version
  • Dependencies between modules use ${project.version} which ensures version consistency
  • No SNAPSHOT versions were found in the codebase
  • The parent dependency on sofaboot-dependencies (3.19.1) is stable and not affected by this change
🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Check for version conflicts in dependency tree
mvn dependency:tree -Dverbose -Dincludes=com.alipay.sofa:* | grep -E "3.1.9|SNAPSHOT"

Length of output: 183


Script:

#!/bin/bash
# Let's check the pom files to understand version dependencies
fd -e xml pom.xml --exec grep -l "3.1.9\|SNAPSHOT" {}

Length of output: 1305


Script:

#!/bin/bash
# Let's examine the content of these pom files
fd -e xml pom.xml --exec echo "=== {} ===" \; --exec grep -A 2 -B 2 "3.1.9\|SNAPSHOT" {}

Length of output: 6526


Script:

#!/bin/bash
# Check if there are any other SOFA dependencies
fd -e xml pom.xml --exec grep -l "com.alipay.sofa" {}

Length of output: 1303


Script:

#!/bin/bash
# Examine SOFA dependencies in detail
fd -e xml pom.xml --exec echo "=== {} ===" \; --exec grep -A 3 -B 3 "com.alipay.sofa" {}

Length of output: 22905

tracer-sofa-boot-starter/pom.xml (2)

8-8: Version update looks good

The version change from 3.1.9-SNAPSHOT to 3.1.9 is consistent with the PR objective.


Line range hint 89-91: Verify redis-plugin logging functionality

Since this PR aims to fix redis-plugin logging issues, let's verify the redis-plugin dependency and its logging configuration.

Run the following script to check redis-plugin logging configuration:

Also applies to: 106-109

✅ Verification successful

Redis plugin logging functionality is properly implemented

Based on the code analysis, the Redis plugin has a complete logging implementation with:

  • Digest logs (redis-digest.log) for detailed tracing
  • Statistics logs (redis-stat.log) for metrics
  • Both JSON and standard format support
  • Proper error handling and span tracking

The implementation includes:

  • RedisSofaTracer: Core tracing functionality with proper span lifecycle management
  • RedisStatReporter and RedisStatJsonReporter: Statistics reporting in both formats
  • RedisLogEnum: Log configuration management
🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Check redis-plugin logging configuration
rg -A 5 "redis.*log" 

# Check for logging-related configuration in redis plugin
rg -A 5 "logging\.level|logback|log4j" --glob "sofa-tracer-redis-plugin/**"

Length of output: 1554


Script:

#!/bin/bash
# Let's check the redis plugin implementation and logging configuration more thoroughly

# Check for redis plugin logging implementation
ast-grep --pattern 'class $_ implements $_ {
  $$$
  log($$$) {
    $$$
  }
  $$$
}'

# Check for redis tracer configuration files
fd -e properties -e xml -e yml -e yaml . sofa-tracer-plugins/sofa-tracer-redis-plugin --exec cat {}

# Check for redis reporter or logging related classes
rg -l "Reporter|LoggerFactory|Logger" sofa-tracer-plugins/sofa-tracer-redis-plugin/

# Check for any test configurations
fd -e properties -e xml -e yml -e yaml . sofa-tracer-plugins/sofa-tracer-redis-plugin/src/test --exec cat {}

Length of output: 3009


Script:

#!/bin/bash
# Let's examine the redis logging implementation files we found

# Check the Redis tracer implementation
cat sofa-tracer-plugins/sofa-tracer-redis-plugin/src/main/java/com/sofa/alipay/tracer/plugins/spring/redis/tracer/RedisSofaTracer.java

# Check the Redis stat reporters
cat sofa-tracer-plugins/sofa-tracer-redis-plugin/src/main/java/com/sofa/alipay/tracer/plugins/spring/redis/reporter/RedisStatReporter.java
cat sofa-tracer-plugins/sofa-tracer-redis-plugin/src/main/java/com/sofa/alipay/tracer/plugins/spring/redis/reporter/RedisStatJsonReporter.java

# Check for any logging configuration files in resources
fd -e properties -e xml . sofa-tracer-plugins/sofa-tracer-redis-plugin/src/main/resources --exec cat {}

Length of output: 12861

@ZijieSong ZijieSong merged commit 53332d8 into sofastack:master Dec 24, 2024
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants