Am 27.03.2017 um 14:56 schrieb Mark Thomas:
The proposed Apache Tomcat 9.0.0.M19 release is now available for voting.

This is a milestone release for the 9.0.x branch. It should be
noted that, as a milestone release:
- Servlet 4.0 is not finalised
- The EGs have not started work on JSP 2.4, EL 3.1 or WebSocket 1.2/2.0

The major changes compared to the 9.0.0.M18 release are:

- Various HTTP/2 improvements

- Fixes for sendfile related issues that could cause subsequent requests
  to experience IllegalStateExceptions

- Servlet 4.0 updates


Along with lots of other bug fixes and improvements

For full details, see the changelog:
http://svn.apache.org/repos/asf/tomcat/trunk/webapps/docs/changelog.xml

It can be obtained from:
https://dist.apache.org/repos/dist/dev/tomcat/tomcat-9/v9.0.0.M19/
The Maven staging repo is:
https://repository.apache.org/content/repositories/orgapachetomcat-1125/
The svn tag is:
http://svn.apache.org/repos/asf/tomcat/tags/TOMCAT_9_0_0_M19/

The proposed 9.0.0.M19 release is:
[ ] Broken - do not release
[X] Alpha - go ahead and release as 9.0.0.M19

I know the vote is over but for the sake of completeness:

+1 to release as alpha.

Please see below for some details on increased number of NPE during shutdown.

Details
=======

- SHA1 and MD5 OK
- signatures OK
- key in KEYS file
- gz and zip for src and bin consistent
- src consistent with svn tag
  - except bin shell scripts are not executable in src tarball
    (not critical)
- builds fine
- build result looks consistent with binaries
- no checkstyle complaints
- no Javadoc warnings
- Unit tests: No failures

  - WARN messages:
    - some message that were logged in M17 by localhost-startStop-1
      are now logged by main
- the message "[main] org.apache.tomcat.util.net.Nio2Endpoint.shutdownExecutor The executor associated with thread pool [http-nio2-127.0.0.1-auto-I] has not fully shutdown. Some application threads may still be running." (6 times) is now gone - the message "org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesThreads The web application [ROOT] is still processing a request that has yet to finish. This is very likely to create a memory leak. You can control the time allowed for requests to finish by using the unloadDelay attribute of the standard Context implementation. Stack trace of request processing thread:" reduced from 18 times to 3 times
    - more Tribes warnings (46 versus 72)
    - more Tribes errors (7 versus 12)

  - SEVERE message
- more "org.apache.coyote.http11.Http11Processor.service Error processing request" (apr 3 versus 6, nio 3 versus 10) - more "org.apache.coyote.http11.Http11Processor.endRequest Error finishing response" (apr 1 versus 7, nio 1 versus 13) - more "org.apache.coyote.AbstractProtocol$ConnectionHandler.process Error reading request, ignored" (apr 4 versus 6) - new message "org.apache.catalina.core.StandardWrapperValve.invoke Servlet.service() for servlet [jsp] in context with path [/test] threw exception [Page-encoding specified in XML prolog (ISO-8859-1) is different from that specified in jsp-property-group (UTF-8)] with root cause" (one for apr, nio and nio2) - less "org.apache.catalina.connector.CoyoteAdapter.asyncDispatch Exception while processing an asynchronous request" (nio2 1 versus 0) - no more "org.apache.catalina.core.StandardWrapperValve.invoke Servlet.service() for servlet [simple] in context with path [] threw exception" - much less "org.apache.catalina.core.StandardHostValve.invoke Exception Processing /simple" (apr, nio and nio2 5 each versus now only one for nio)

- Exceptions: the biggest difference is more NullPointerException (about 32 new ones). They seem to happen after the stop was issued and only for apr and nio, not for nio2. Two cases: - org.apache.coyote.http11.Http11Processor.endRequest Error finishing response (20 times)

Stack

at org.apache.coyote.http11.Http11OutputBuffer.commit(Http11OutputBuffer.java:329) at org.apache.coyote.http11.Http11Processor.prepareResponse(Http11Processor.java:1000)
at org.apache.coyote.AbstractProcessor.action(AbstractProcessor.java:258)
at org.apache.coyote.http11.Http11Processor.endRequest(Http11Processor.java:1169)

Line 329 is:

socketWrapper.write(isBlocking(), headerBuffer);

Tests with this NPE (maybe it varies):

nio org.apache.catalina.connector.TestRequest [testBug57215f]
nio org.apache.catalina.core.TestApplicationContext [testBug53467]
nio org.apache.catalina.core.TestStandardContextResources [testResourcesWebInfClasses]
nio org.apache.catalina.mbeans.TestRegistration [testMBeanDeregistration]
nio org.apache.catalina.startup.TestTomcat [testJsps]
nio org.apache.catalina.startup.TestTomcatClassLoader [testDefaultClassLoader]
nio org.apache.el.TestELInJsp [testBug46596]
nio org.apache.jasper.compiler.TestEncodingDetector [testEncodedJsp[1]]
nio org.apache.jasper.compiler.TestEncodingDetector [testEncodedJsp[4]]
nio org.apache.jasper.compiler.TestGenerator [testBug48701TagVariableInfoNameFromAttribute]
nio org.apache.jasper.compiler.TestGenerator [testBug45015a]
nio org.apache.jasper.compiler.TestJspConfig [testServlet23NoEL]
nio org.apache.jasper.compiler.TestJspConfig [testServlet30NoEL]
apr org.apache.catalina.core.TestApplicationMapping [testContextRootMappingPath] apr org.apache.catalina.core.TestStandardContext [testWebappListenerConfigureFail] apr org.apache.catalina.nonblocking.TestNonBlockingAPI [testBug55438NonBlockingReadWriteEmptyRead]
apr org.apache.jasper.compiler.TestParserNoStrictWhitespace [testBug48627]
apr org.apache.jasper.compiler.TestScriptingVariabler [testBug48616b]
apr org.apache.jasper.compiler.TestValidator [testTldVersions25]
apr org.apache.tomcat.util.http.TestCookieProcessorGenerationHttp [testUtf8CookieValue]

- org.apache.coyote.http11.Http11Processor.service Error processing request (12 times)

Stack

at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:393) at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:498) at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:796)

Line 393 is:

request.getMappingData().context.logAccess(request, response, System.currentTimeMillis() - req.getStartTime(), false);

Tests with this NPE (maybe it varies):

nio org.apache.catalina.core.TestApplicationContext [testBug53467]
nio org.apache.catalina.core.TestStandardContextResources [testResourcesWebInfClasses]
nio org.apache.catalina.startup.TestTomcat [testJsps]
nio org.apache.jasper.compiler.TestEncodingDetector [testEncodedJsp[1]]
nio org.apache.jasper.compiler.TestEncodingDetector [testEncodedJsp[4]]
nio org.apache.jasper.compiler.TestGenerator [testBug48701TagVariableInfoNameFromAttribute]
nio org.apache.jasper.compiler.TestGenerator [testBug45015a]
nio org.apache.jasper.compiler.TestJspConfig [testServlet23NoEL]
apr org.apache.catalina.core.TestStandardContext [testWebappListenerConfigureFail]
apr org.apache.jasper.compiler.TestParserNoStrictWhitespace [testBug48627]
apr org.apache.jasper.compiler.TestScriptingVariabler [testBug48616b]
apr org.apache.tomcat.util.http.TestCookieProcessorGenerationHttp [testUtf8CookieValue]

- JMX MBean Comparison with 9.0.0.M17:
- MBean Name: Catalina:type=WebResourceRoot,host=localhost,context=/examples,name=Cache
    size increased from 330 to 331
  - Connector MBean new attribute
    "ciphers: HIGH:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!kRSA"
  - ProtocolHandler MBean
    - attribute compressableMimeTypes additional list elements
      "application/json" and "application/xml" as expected
    - attribute compressibleMimeType String
      ",application/json,application/xml" appended to value
      as expected
    - additional attributes "truststoreType: JKS",
      "sSLHonorCipherOrder: false", "keystorePass: changeit",
      "trustMaxCertLength: 10", "truststoreAlgorithm: PKIX",
      "algorithm: SunX509", "sSLDisableSessionTickets: false",
      "sessionCacheSize: 0", "keystoreType: JKS",
      "sslProtocol: TLS", "sSLVerifyDepth: 10",
      "clientAuth: NONE", "sSLVerifyClient: NONE",
      "ciphers: HIGH:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!kRSA",
      "sSLCipherSuite: HIGH:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!kRSA",
      "sSLDisableCompression: true", "keystoreFile: /home/.../.keystore",
     "useServerCipherSuitesOrder: false"

Build and tests were done using Java 1.8.0_121. OS was Solaris 10 Sparc, tcnative was 1.2.12 based on APR 1.5.2 and OpenSSL 1.0.2k.

Thanks for RM and regards,

Rainer

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to