Skip to content

chore(deps): upgrade gRPC, Jackson, Logback, and SLF4J - #146

Open
halibobo1205 wants to merge 5 commits into
developfrom
feature/upgrade_dependencies
Open

chore(deps): upgrade gRPC, Jackson, Logback, and SLF4J#146
halibobo1205 wants to merge 5 commits into
developfrom
feature/upgrade_dependencies

Conversation

@halibobo1205

@halibobo1205 halibobo1205 commented Aug 25, 2026

Copy link
Copy Markdown
Owner

User description

What does this PR do?

  • Upgrades grpc-java from 1.83.0 to 1.83.1, removes GrpcNettyMaxConcurrentStreamsLimiter.
  • Upgrades jackson-databind from 2.18.6 to 2.18.9.
  • Upgrades logback from 1.2.13 to 1.3.16.
  • Upgrades slf4j from 1.7.36 to 2.0.17.

Why are these changes required?

The shim carried an explicit // TODO: Remove this shim after https://github.com/grpc/grpc-java/issues/12930 is fixed. That issue is now fixed upstream by grpc/grpc-java#12933, backported in grpc/grpc-java#12942 and released in [v1.83.1](https://github.com/grpc/grpc-java/releases/tag/v1.83.1).

The Jackson bump is a routine patch-level upgrade on the 2.18.x line.
The logback bump is a routine patch-level upgrade on the 1.3.x line.

This PR has been tested by:

  • Unit Tests
  • Manual Testing

Follow up

Extra details


CodeAnt-AI Description

Secure gRPC connection limits and refresh dependency support

What Changed

  • gRPC servers now enforce the configured concurrent-call limit as soon as each connection starts, preventing excess streams before client settings are acknowledged
  • Removed the local stream-limiting workaround and its dedicated tests in favor of the upstream gRPC behavior
  • Updated Jackson, Logback, SLF4J, and gRPC dependencies to current compatible releases
  • Added coverage to ensure a client cannot reduce the server’s response-header limit and trigger a denial of service
  • Updated toolkit logging configuration to use the supported shutdown hook and removed an unused console appender

Impact

✅ Fewer excessive concurrent gRPC calls
✅ Reduced HTTP/2 header-based denial-of-service risk
✅ Cleaner toolkit log startup and shutdown

💡 Usage Guide

Checking Your Pull Request

Every time you make a pull request, our system automatically looks through it. We check for security issues, mistakes in how you're setting up your infrastructure, and common code problems. We do this to make sure your changes are solid and won't cause any trouble later.

Talking to CodeAnt AI

Got a question or need a hand with something in your pull request? You can easily get in touch with CodeAnt AI right here. Just type the following in a comment on your pull request, and replace "Your question here" with whatever you want to ask:

@codeant-ai ask: Your question here

This lets you have a chat with CodeAnt AI about your pull request, making it easier to understand and improve your code.

Example

@codeant-ai ask: Can you suggest a safer alternative to storing this secret?

Preserve Org Learnings with CodeAnt

You can record team preferences so CodeAnt AI applies them in future reviews. Reply directly to the specific CodeAnt AI suggestion (in the same thread) and replace "Your feedback here" with your input:

@codeant-ai: Your feedback here

This helps CodeAnt AI learn and adapt to your team's coding style and standards.

Example

@codeant-ai: Do not flag unused imports.

Retrigger review

Ask CodeAnt AI to review the PR again, by typing:

@codeant-ai: review

Check Your Repository Health

To analyze the health of your code repository, visit our dashboard at https://app.codeant.ai. This tool helps you identify potential issues and areas for improvement in your codebase, ensuring your repository maintains high standards of code health.

1. bump grpcVersion to 1.83.1 to pick up the upstream fix for
   grpc/grpc-java#12930 (PR grpc/grpc-java#12942), which enforces
   connection.remote().maxActiveStreams(maxStreams) at handler startup
2. drop GrpcNettyMaxConcurrentStreamsLimiter, the local protocol-negotiator
   shim that applied the same limit while 1.83.0 left the remote endpoint
   unbounded until the client acknowledged SETTINGS
@codeant-ai

codeant-ai Bot commented Aug 25, 2026

Copy link
Copy Markdown

🤖 CodeAnt AI — Review Status

Status Commit Started (UTC) Finished (UTC)
✅ Reviewed your PR 3801a50 Aug 25, 2026 · 08:27 08:30

@codeant-ai

codeant-ai Bot commented Aug 25, 2026

Copy link
Copy Markdown

Thanks for using CodeAnt! 🎉

We're free for open-source projects. if you're enjoying it, help us grow by sharing.

Share on X ·
Reddit ·
LinkedIn

@codeant-ai codeant-ai Bot added the size:L This PR changes 100-499 lines, ignoring generated files label Aug 25, 2026
bump jackson-databind from 2.18.6 to 2.18.10 to pick up cumulative fixes from the 2.18.x line
1. bump logback-classic from 1.2.13 to 1.3.16 and slf4j-api,
   jcl-over-slf4j, jul-to-slf4j from 1.7.36 to 2.0.17; logback 1.3
   requires the slf4j 2.0 provider model, and 1.3.16 is the last 1.3.x
   release and the ceiling for the x86_64 JDK 8 build, since 1.5.x
   requires JDK 11
2. rename DelayingShutdownHook to DefaultShutdownHook in the toolkit
   logback.xml; logback 1.3 removed the old class and only auto-maps
   the legacy name with a startup warning
3. drop the CONSOLE appender from the toolkit logback.xml; no logger
   ever referenced it, so it never emitted output on 1.2 either, and
   logback 1.3 now flags it with an unreferenced-appender warning
4. accept one known 1.3.x behavior change: SizeAndTimeBasedRollingPolicy
   now throttles its maxFileSize comparison to once per 60s
   (SimpleInvocationGate) instead of the adaptive ~100-800ms gate of
   1.2.13, so under sustained heavy logging a file can overshoot the
   500MB cap by up to 60s of writes before the %i rollover fires;
   time-based rollover and totalSizeCap/maxHistory cleanup are ungated
   and unaffected
5. note for operators running a custom --log-config file: well-formed
   1.2-era configs using standard elements keep working unchanged
   (jmxConfigurator degrades to an ignored-property warning, the legacy
   shutdown hook name is auto-mapped), and malformed XML still fails
   fast via TronError(LOG_LOAD) exactly as on 1.2; however, a config
   that references an uninstantiable class (e.g. a custom appender
   missing from the classpath) now aborts the whole appender-ref phase
   instead of losing just that one appender, so the node starts with no
   log output while the ERROR statuses are printed to stdout by
   LogService
1. bump commons-lang3 from 3.4 to 3.20.0; the runtime classpath already
   resolved 3.18.0 through libp2p 2.2.9's transitive requirement, so
   align the declaration with what actually ships and move past the
   CVE-2025-48924 range that the nominal 3.4 still sits in
2. bump commons-collections4 from 4.1 to 4.6.0
3. remove commons-math 2.2; no source file imports
   org.apache.commons.math and nothing else in the dependency graph
   requests it
4. update gradle/verification-metadata.xml: add the new jar and pom
   checksums with their commons-parent 92/103 and apache 39 parent
   poms, add the junit-bom 5.13.4/5.14.3 and mockito-bom 4.11.0 poms
   that the upgraded commons poms newly import in dependencyManagement,
   demote commons-lang3 3.18.0 to a pom-only entry, and drop the
   commons-lang3 3.4, commons-collections4 4.1 and commons-math 2.2
   entries nothing resolves
1. drop the joda-time 2.3 dependency and its verification-metadata
   entries; no source file imports org.joda and nothing else in the
   dependency graph requests it
2. replace the six new DateTime(millis) log-formatting call sites in
   DynamicPropertiesStore, DposTask and DposService with the existing
   Time.getTimeString helper, converging on the Timestamp format that
   surrounding logs (BlockCapsule, Manager, StateManager) already use;
   the printed form changes from 2026-08-25T14:32:11.123+08:00 to
   2026-08-25 14:32:11.123
3. replace DateTime.now() arithmetic in five test classes with
   System.currentTimeMillis() and fixed 86_400_000L day offsets,
   matching the millisecond style those tests already use elsewhere
@halibobo1205
halibobo1205 force-pushed the feature/upgrade_dependencies branch from 3801a50 to f6373f1 Compare August 25, 2026 09:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:L This PR changes 100-499 lines, ignoring generated files

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant