On 01/12/2020 11:05, Graham Leggett wrote: > Hi all, > > I object to the deprecation of the tomcat-native/APR connector. > > Most specifically, I am -1 on the following: > > https://marc.info/?l=tomcat-dev&m=160681846808019&w=2 > > Looking at past discussion on this, the justification has been: > > "It is inherently less stable. If we get the NIO code wrong, you might > see a NullPointerException. If we get the APR code wrong you might see a > JVM crash.” > > Both a NullPointerException and a crash result in the same outcome - a non > working server.
No it isn't. The difference is a single failed request compared to the entire server failing. > Tomcat-native has releases in the > https://archive.apache.org/dist/tomcat/tomcat-connectors/native/ going back > 15 years to 2005, a claim of a lack of stability needs to be quantifiable. See the long list of bugs raised against Tomcat and the Tomcat Native Connector that reported a JVM crash. The reports have slowly been getting less frequent over the years and are at a much lower level now than they were but the risk remains. > I also object to the removal of OpenSSL code, for the same reason. It isn't being removed. The APR/Native library will be retained along with OpenSSL support for the NIO and NIO2. I expect the scope of the APR/Native library for Tomcat 10.1.x onwards will be reduced to just those native methods required to interact with OpenSSL which may mean removal of the APR dependency. If we can use OpenSSL without any native code of our own (e.g. via project Panama or similar) then better still. > We are in the middle of a global pandemic. Our users do not have the > resources to suddenly divert to reengineering what is to them a perfectly > working system, to replace what exists with something else that just works > differently. Upgrading to Tomcat 10 already requires significant re-engineering work due to the java package change for all the specification APIs. Switching an HTTP or AJP connector from APR/Native to NIO or NIO2 with OpenSSL requires a change of three/four characters in one configuration file. We have deliberately made it very easy to switch between connectors. No-one is being forced to upgrade. Tomcat 8.5.x and 9.0.x will continue to support the APR/Native connector for AJP and HTTP. Based on the typical 10 year support lifetime of a major Tomcat release users have at least five to six years before they would be forced to migrate away from using an APR/Native HTTP or AJP connector. I'll note that Tomcat supports at least 3 major versions in parallel with each major version being supported for ~10 years. That is a very generous support offering. Regards, Mark --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org