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

Document that embedded Tomcat must be at least 10.1.25 #42849

Closed
g00glen00b opened this issue Oct 23, 2024 · 3 comments
Closed

Document that embedded Tomcat must be at least 10.1.25 #42849

g00glen00b opened this issue Oct 23, 2024 · 3 comments
Labels
type: documentation A documentation update
Milestone

Comments

@g00glen00b
Copy link
Contributor

The System Requirements documentation specifies which versions are supported. However, not all patch versions of Tomcat v10.1.x are supported. For example, since #41093, only Tomcat v10.1.25 or later are supported. Running a Spring Boot v3.3.4 application on Tomcat v10.1.24 or lower will result in an error since AbstractProtocol.setMaxQueueSize(int) does not exist.

Should the documentation make it more clear that certain patch versions won't work? For example, is it useful to update it to:

Name Servlet Version
Tomcat 10.1 (10.1.25 or later) 6.0
Jetty 12.0 6.0
Undertow 2.3 6.0

Or would this cause too much of a maintenance burden?

@spring-projects-issues spring-projects-issues added the status: waiting-for-triage An issue we've not yet triaged label Oct 23, 2024
@wilkinsona
Copy link
Member

Out of interest, what's your use case for downgrading Tomcat?

@wilkinsona wilkinsona added the status: waiting-for-feedback We need additional information before we can continue label Oct 23, 2024
@g00glen00b
Copy link
Contributor Author

g00glen00b commented Oct 23, 2024

I don't have a use case myself but I encountered this problem while answering a question on Stack Overflow. So this is my best guess:

The OP of that question is using a combination of running an embedded Tomcat during development, and traditional deployment on an external Tomcat on other environments. That external Tomcat happens to be on v10.1.6. I assume they're not able to upgrade that Tomcat, so they decided to downgrade their embedded Tomcat in stead by overriding the tomcat.version property, which resulted in an error during startup.

They referenced the System Requirements page, arguing that it should be possible to use any Tomcat v10.1.x version, and I understand the confusion, which is why I opened this issue.

For context, here is the Q&A: https://stackoverflow.com/q/79116989

@spring-projects-issues spring-projects-issues added status: feedback-provided Feedback has been provided and removed status: waiting-for-feedback We need additional information before we can continue labels Oct 23, 2024
@wilkinsona
Copy link
Member

wilkinsona commented Oct 24, 2024

Thanks for the background and for helping the community on Stack Overflow.

IMO, they're reading a little too much into that table. In the section on customizing dependency versions, we warn that "each Spring Boot release is designed and tested against this specific set of third-party dependencies. Overriding versions may cause compatibility issues". That's what's happening here.

That said, usually, we do try to be more tolerant of older versions of Tomcat. Unfortunately, that wasn't possible in this case as falling back to the old way of doing this would reintroduce #40945 and #40957.

In short, I think it's worth noting that we require at least 10.1.25.

@wilkinsona wilkinsona added type: documentation A documentation update and removed status: waiting-for-triage An issue we've not yet triaged status: feedback-provided Feedback has been provided labels Oct 24, 2024
@wilkinsona wilkinsona added this to the 3.3.x milestone Oct 24, 2024
@wilkinsona wilkinsona changed the title Specify Tomcat patch version in System Requirements documentation Document that embedded Tomcat must be at least 10.1.25 Oct 24, 2024
@wilkinsona wilkinsona modified the milestones: 3.3.x, 3.3.5 Oct 24, 2024
ndwlocatieservices added a commit to ndwnu/nls-geometry that referenced this issue Oct 31, 2024
…ot-starter-parent to v3.3.5

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [org.springframework.boot:spring-boot-starter-parent](https://spring.io/projects/spring-boot) ([source](https://github.com/spring-projects/spring-boot)) | parent | patch | `3.3.4` -> `3.3.5` |

---

### Release Notes

<details>
<summary>spring-projects/spring-boot (org.springframework.boot:spring-boot-starter-parent)</summary>

### [`v3.3.5`](https://github.com/spring-projects/spring-boot/releases/tag/v3.3.5)

[Compare Source](spring-projects/spring-boot@v3.3.4...v3.3.5)

#### 🐞 Bug Fixes

-   Running mvn spring-boot:run with classpaths that exceeds Windows' length limits leaves temporary files [#&#8203;42841](spring-projects/spring-boot#42841)
-   Report produced by ConditionReportApplicationContextFailureProcessor is always empty in a failed test [#&#8203;42785](spring-projects/spring-boot#42785)
-   Case-insensitive comparisons may be adversely affected by the user's locale [#&#8203;42735](spring-projects/spring-boot#42735)
-   DataSourceProperties#driverClassIsLoadable should not print a stacktrace to the error stream when it fails [#&#8203;42683](spring-projects/spring-boot#42683)
-   Some `@ControllerEndpoint` and `@RestControllerEndpoint` infrastructure remains undeprecated [#&#8203;42498](spring-projects/spring-boot#42498)
-   Auto-configuration for Rabbit Streams doesn't consider RabbitConnectionDetails [#&#8203;42490](spring-projects/spring-boot#42490)
-   ClassNotFoundException is thrown when loading protocol resolvers from ForkJoinPool task [#&#8203;42468](spring-projects/spring-boot#42468)
-   ActiveMQ Artemis Connection Factory creation fails in native image [#&#8203;42421](spring-projects/spring-boot#42421)
-   Duplicate meter binding when context contains multiple registries, none are primary, and one or more is a composite [#&#8203;42397](spring-projects/spring-boot#42397)

#### 📔 Documentation

-   Document that embedded Tomcat must be at least 10.1.25 [#&#8203;42849](spring-projects/spring-boot#42849)
-   Fix systemd example configuration [#&#8203;42805](spring-projects/spring-boot#42805)
-   Document that the exact behavior of the maximum HTTP request header size property is server-specific [#&#8203;42789](spring-projects/spring-boot#42789)
-   Clarify why `@Primary` is recommended when defining your own ObjectMapper that replaces JacksonAutoConfiguration's [#&#8203;42787](spring-projects/spring-boot#42787)
-   Polish javadoc for Binder#bindOrCreate(String, Class) [#&#8203;42778](https://github.com/spring-projects/spring-boot/issu...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type: documentation A documentation update
Projects
None yet
Development

No branches or pull requests

3 participants