-
Notifications
You must be signed in to change notification settings - Fork 679
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
SOLR-16562: Upgrade to Caffeine 3.1.2 #1198
Conversation
Relates to #1118 - the underlying issue w/ infinite loop is mutable Lucene/Solr query classes. |
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.
amazing how many files an upgrade touches, however it all LGTM
Can we fix the typo comment at the top to say woodstox-core 6.4 not 2.4? Also it looks like this happens to address CVE-2022-40152 |
Thanks for catching that @fsparv - updated the commit message. Bummer not all dependencies start with |
Why is this upgrading more than one thing? Pure convenience? Caffeine has no dependencies. |
https://mvnrepository.com/artifact/com.github.ben-manes.caffeine/caffeine/3.1.2 Caffeine definitely has dependencies. Upgrading Caffeine triggered these dependency updates. |
RE Caffeine definitely has dependencies: My attempt to show this was looking at |
yea I'm not even sure I trust the mvnrepository.com output - https://github.com/ben-manes/caffeine/blob/master/gradle/dependencies.gradle shows lots of dependencies at least managed. https://github.com/ben-manes/caffeine/blob/master/caffeine/build.gradle is the limited list just for FWIW I'm not opposed to splitting the |
I have no problem doing a bunch of updates at once so long as it's clear in JIRA & CHANGES.txt that we did so |
Caffeine has no required dependencies. It does have optional annotations that can be excluded (checker, errorprone) that are compile scoped. The managed dependencies are internal for testing, benchmarks, analysis and should not be in the pom. The actual bug in solr hasn’t been fixed, so while this is good to fail fast, I am s little concerned that the root problem won’t be addressed. |
I believe that the managed dependencies in the pom are Gradle constraints added to protect the build itself from exploits. It’s noise that doesn’t impact users, but I’ll look into removing it from the pom as an implementation detail to avoid CI attacks like the codecov breach. Edit: removed from the published pom for future releases |
Solr worked around the same issue wrt managed dependencies being unintentionally exported. While this fixes the pom, the gradle module metadata still includes these and, as Gradle prefers that over the pom file, it takes precedence for consumers who use a Gradle build. To resolve that, I switched to not applying constraint to the published configuration, which removed the section from the metadata files. solr/gradle/maven/defaults-maven.gradle Lines 152 to 161 in 1a940ad
|
Thanks @ben-manes - I decided to separate these upgrades for Jackson and errorprone into separate commits to make it easier to see in solr/CHANGES.txt and not conflate the caffeine upgrade. |
https://issues.apache.org/jira/browse/SOLR-16562
This update of Caffeine includes infinite loop checking.
This also upgrades the following:
* SOLR-16579 - Jackson 2.14.1
* SOLR-16578 - errorprone 2.16
* and other minor dependencies based on transitive dependencies.