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
Bumped Spring Framework version to 5.3.33 #1105
Conversation
@@ -29,6 +29,10 @@ plugins { | |||
id 'io.spring.dependency-management' version '1.0.11.RELEASE' | |||
} | |||
|
|||
// override Spring Framework version to pick the Spring MVC 5.3.33 with the async race condition fix | |||
// https://github.com/spring-projects/spring-framework/issues/32342 | |||
ext['spring-framework.version'] = '5.3.33' |
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.
why do we do this dependency override here asext[]
but we do the postgres dependency override in a different format down on line 113. Can we not do this override with the others?
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.
This is the preferred way to override the versions that SpringBoot bundles via their -bom
POM. We should also use this for Postgres and Log4j, we can do that as a separate PR.
77db375
to
002f744
Compare
We used the Springboot version 2.4.3 because of the bug with queries which contain LIMIT statement. The bug is described here greenplum-db#947 and comes (as figured out) from spring-mvc. In Springboot version 2.7.18 the bug was resolved. Details are here: greenplum-db#1105 Now, we can bump the version 2.4.3 to 2.7.18.
This PR updates the Spring Framework (and the associated spring-mvc modules) to versions 5.3.33 to pick the fix for the async race condition (spring-projects/spring-framework#32342).
The race condition was manifesting itself in PXF with
partial file transfer error
that GPDB would receive from PXF when executing LIMIT queries or queries issued after LIMIT queries with hight load and concurrency. Tomcat would close the connections without writing a 0-length chunk even if there was no error reported in PXF.