Am 02.02.2016 um 01:20 schrieb Mark Thomas:
The proposed Apache Tomcat 9.0.0.M3 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.M1 branch are:
- Ability to use OpenSSL with JSSE configuration
- Update to Tomcat-native 1.2.4 to pick up Windows binaries based on
   OpenSSL 1.0.2e
- Allow HTTP redirects to be relative
- Lots of bug fixes

For full details, see the changelog:
http://svn.us.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.M3/
The Maven staging repo is:
https://repository.apache.org/content/repositories/orgapachetomcat-1062/
The svn tag is:
http://svn.apache.org/repos/asf/tomcat/tags/TOMCAT_9_0_0_M3/

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

+1 to release as alpha.

One interesting new observation is removed attributes "servlets" and "deploymentDescriptor" from Webapp MBeans. Not sure this was intentional. See also below for some changes in unit test output.


Details
=======

- MD5 OK
- signatures OK
- key in KEYS file
- gz and zip for src and bin consistent
- src completely consistent with svn tag
- builds fine
- build result looks consistent with binaries
- no checkstyle complaints
- no Javadoc warnings
- Unit tests: one failures in NIO test
  - org.apache.tomcat.websocket.server.TestClose
  - probably fixed by r1728137
  - Details see below
- JMX MBean Comparison:
  - Servlet and Webapp MBeans removed attributes:
    - stateManageable
  - Webapp MBeans removed attributes:
    - servlets (was array with list of servlet MBean names)
    - deploymentDescriptor
      - not sure that these removals are intentional
  - OperatingSystem MBean
    - OpenFileDescriptorCount 83 (-2)
      - in the usual range of variation
  - AJP Connector and ProtocolHandler MBeans new attribute
    - ajpFlush true
      - expected
  - WebResourceRoot Cache MBeans
    - for manager and examples the values for
      lookupCount and hitCount decreased by 1.

Build and tests were done using Java 1.8.0_72. OS was Solaris 10 Sparc, tcnative was 1.2.4 based on APR 1.5.1 and OpenSSL 1.0.2f.

Unit test observations:

- in the message "org.apache.catalina.core.TestStandardContextResources.testResources testResources(): orderedLibs:" the value after the message has changed from "[classes, resources.jar, resources2.jar]" in M1 to "[resources.jar, classes, resources2.jar]" in M2 and M3

- in org.apache.catalina.valves.TestStuckThreadDetectionValve in test testDetection, after the correct message from notifyStuckThreadDetected and the following org.apache.coyote.AbstractProtocol.pause, I get a notifyStuckThreadCompleted message, which normally oesn't show up. Probably just a timing issue, that the Valve ran between the pause and the complete shutdown.

- new WARNINGs since M2:

2 x org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.doClientAuth http11processor.socket.sslreneg

25 x org.apache.tomcat.util.net.SSLUtilBase.getEnabled Some of the specified [protocols] are not supported by the SSL engine and have been skipped: [[SSLv2Hello]]

3 x org.apache.tomcat.util.scan.StandardJarScanner.scan Failed to scan [http://felix.extensions:9/] from classloader hierarchy, plus Caused by: java.lang.IllegalArgumentException: URI scheme is not "file"

3 x org.apache.catalina.startup.ContextConfig.validateSecurityRoles Security role name foo used in an <auth-constraint> without being defined in a <security-role>

- Since M2 testConnectToServerEndpoint no longer logs "org.apache.tomcat.websocket.WsSession.doClose Failed to flush batched messages on session close"

- message org.apache.tomcat.util.modeler.Registry.unregisterComponent Error unregistering mbean appears in varying numbers. Always combined with

[junit] javax.management.RuntimeOperationsException: Object name cannot be null [junit] at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.isRegistered(DefaultMBeanServerInterceptor.java:569) [junit] at com.sun.jmx.mbeanserver.JmxMBeanServer.isRegistered(JmxMBeanServer.java:638) [junit] at org.apache.tomcat.util.modeler.Registry.unregisterComponent(Registry.java:421) [junit] at org.apache.coyote.AbstractProtocol$ConnectionHandler.unregister(AbstractProtocol.java:984) [junit] at org.apache.coyote.AbstractProtocol$RecycledProcessors.clear(AbstractProtocol.java:1051) [junit] at org.apache.coyote.AbstractProtocol$ConnectionHandler.recycle(AbstractProtocol.java:692)

and "Caused by: java.lang.IllegalArgumentException: Object name cannot be null".

In most cases, shortly before there was already a NullPointerException like this:

[junit] 03-Feb-2016 12:06:33.554 SEVERE [http-nio-127.0.0.1-auto-9-exec-1] org.apache.coyote.http11.Http11Processor.endRequest Error finishing response
    [junit]  java.lang.NullPointerException
[junit] at org.apache.coyote.http11.Http11OutputBuffer.commit(Http11OutputBuffer.java:351) [junit] at org.apache.coyote.http11.Http11Processor.action(Http11Processor.java:646) [junit] at org.apache.coyote.http11.Http11Processor.endRequest(Http11Processor.java:1770) [junit] at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:1119) [junit] at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) [junit] at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:760)

sometimes in combination with

[junit] 03-Feb-2016 12:08:49.058 SEVERE [http-nio-127.0.0.1-auto-16-exec-1] org.apache.coyote.http11.Http11Processor.service Error processing request
    [junit]  java.lang.NullPointerException
[junit] at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:375) [junit] at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:1078) [junit] at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) [junit] at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:760)

(then that one comes first)

- Test testHeaderLimits3 since M3 logs a stack in addition to the previous message:

[junit] 03-Feb-2016 12:17:00.471 INFO [http-nio-127.0.0.1-auto-3-exec-1] org.apache.coyote.http11.Http11Processor.service Error parsing HTTP request header [junit] Note: further occurrences of HTTP header parsing errors will be logged at DEBUG level. [junit] java.lang.IllegalStateException: More than the maximum allowed number of headers ([100]) were detected. [junit] at org.apache.tomcat.util.http.MimeHeaders.createHeader(MimeHeaders.java:260) [junit] at org.apache.tomcat.util.http.MimeHeaders.addValue(MimeHeaders.java:305) [junit] at org.apache.coyote.http11.Http11InputBuffer.parseHeader(Http11InputBuffer.java:802) [junit] at org.apache.coyote.http11.Http11InputBuffer.parseHeaders(Http11InputBuffer.java:579) [junit] at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:978) [junit] at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) [junit] at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:760) [junit] at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1524) [junit] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [junit] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [junit] at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    [junit]     at java.lang.Thread.run(Thread.java:745)

- lots of new "Broken pipe"
- most of them in org.apache.tomcat.websocket.server.TestClose, but that one fails, see below
  - other known occurrences are now often logged twice:

[junit] 03-Feb-2016 11:45:29.837 INFO [http-nio-127.0.0.1-auto-4-exec-1] org.apache.catalina.nonblocking.TestNonBlockingAPI$TestReadListener.onError ReadListener.onError
    [junit] java.io.IOException: Broken pipe
    [junit]     at sun.nio.ch.FileDispatcherImpl.write0(Native Method)
[junit] at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:47)
    [junit]     at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:93)
    [junit]     at sun.nio.ch.IOUtil.write(IOUtil.java:65)
[junit] at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:471) [junit] at org.apache.tomcat.util.net.NioChannel.write(NioChannel.java:134) [junit] at org.apache.tomcat.util.net.NioSelectorPool.write(NioSelectorPool.java:168) [junit] at org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.doWriteInternal(NioEndpoint.java:1296) [junit] at org.apache.tomcat.util.net.SocketWrapperBase.doWrite(SocketWrapperBase.java:477) [junit] at org.apache.tomcat.util.net.SocketWrapperBase.flushNonBlocking(SocketWrapperBase.java:442) [junit] at org.apache.tomcat.util.net.SocketWrapperBase.flush(SocketWrapperBase.java:408) [junit] at org.apache.coyote.http11.Http11OutputBuffer.flushBuffer(Http11OutputBuffer.java:533) [junit] at org.apache.coyote.http11.Http11Processor.flushBufferedWrite(Http11Processor.java:1683) [junit] at org.apache.coyote.AbstractProcessor.dispatch(AbstractProcessor.java:186) [junit] at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:53) [junit] at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:760) [junit] at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1524) [junit] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [junit] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [junit] at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    [junit]     at java.lang.Thread.run(Thread.java:745)
[junit] 03-Feb-2016 11:45:29.843 INFO [http-nio-127.0.0.1-auto-4-exec-1] org.apache.catalina.nonblocking.TestNonBlockingAPI$TestWriteListener.onError WriteListener.onError
    [junit] java.io.IOException: Broken pipe
    [junit]     at sun.nio.ch.FileDispatcherImpl.write0(Native Method)
[junit] at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:47)
    [junit]     at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:93)
    [junit]     at sun.nio.ch.IOUtil.write(IOUtil.java:65)
[junit] at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:471) [junit] at org.apache.tomcat.util.net.NioChannel.write(NioChannel.java:134) [junit] at org.apache.tomcat.util.net.NioSelectorPool.write(NioSelectorPool.java:168) [junit] at org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.doWriteInternal(NioEndpoint.java:1296) [junit] at org.apache.tomcat.util.net.SocketWrapperBase.doWrite(SocketWrapperBase.java:477) [junit] at org.apache.tomcat.util.net.SocketWrapperBase.flushNonBlocking(SocketWrapperBase.java:442) [junit] at org.apache.tomcat.util.net.SocketWrapperBase.flush(SocketWrapperBase.java:408) [junit] at org.apache.coyote.http11.Http11OutputBuffer.flushBuffer(Http11OutputBuffer.java:533) [junit] at org.apache.coyote.http11.Http11Processor.flushBufferedWrite(Http11Processor.java:1683) [junit] at org.apache.coyote.AbstractProcessor.dispatch(AbstractProcessor.java:186) [junit] at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:53) [junit] at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:760) [junit] at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1524) [junit] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [junit] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [junit] at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    [junit]     at java.lang.Thread.run(Thread.java:745)

- in org.apache.coyote.http2.TestHttp2Section_3_2 for NIO in test testConnectionNoPreface:

[junit] 03-Feb-2016 11:59:45.653 INFO [main] org.apache.catalina.core.StandardService.stopInternal Stopping service Tomcat [junit] 03-Feb-2016 11:59:45.681 INFO [main] org.apache.coyote.AbstractProtocol.stop Stopping ProtocolHandler ["http-nio-127.0.0.1-auto-7-59425"] [junit] 03-Feb-2016 11:59:45.704 SEVERE [http-nio-127.0.0.1-auto-7-exec-1] org.apache.coyote.AbstractProtocol$ConnectionHandler.process Error reading request, ignored
    [junit]  java.nio.channels.CancelledKeyException
[junit] at sun.nio.ch.SelectionKeyImpl.ensureValid(SelectionKeyImpl.java:73) [junit] at sun.nio.ch.SelectionKeyImpl.interestOps(SelectionKeyImpl.java:82) [junit] at org.apache.tomcat.util.net.NioSelectorPool.read(NioSelectorPool.java:260) [junit] at org.apache.tomcat.util.net.NioSelectorPool.read(NioSelectorPool.java:216) [junit] at org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.fillReadBuffer(NioEndpoint.java:1267) [junit] at org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.read(NioEndpoint.java:1221) [junit] at org.apache.coyote.http2.Http2UpgradeHandler.fill(Http2UpgradeHandler.java:1065) [junit] at org.apache.coyote.http2.Http2Parser$Input.fill(Http2Parser.java:560) [junit] at org.apache.coyote.http2.Http2Parser.readConnectionPreface(Http2Parser.java:519) [junit] at org.apache.coyote.http2.Http2UpgradeHandler.init(Http2UpgradeHandler.java:226) [junit] at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:784) [junit] at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1524) [junit] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [junit] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [junit] at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    [junit]     at java.lang.Thread.run(Thread.java:745)
    [junit]

- the only unit test failures is org.apache.tomcat.websocket.server.TestClose for NIO:

Testcase: testTcpCloseInOnMessage took 6.934 sec
Testcase: testWsCloseThenTcpCloseWhenOnMessageSends took 0.791 sec
Testcase: testTcpCloseWhenOnMessageSends took 0.241 sec
Testcase: testWsCloseThenTcpClose took 0.246 sec
Testcase: testWsCloseThenTcpReset took 0.227 sec
Testcase: testWsCloseThenTcpResetWhenOnMessageSends took 0.292 sec
Testcase: testTcpResetWhenOnMessageSends took 0.26 sec
        FAILED
expected:<class java.io.IOException> but was:<class java.nio.channels.ClosedChannelException> junit.framework.AssertionFailedError: expected:<class java.io.IOException> but was:<class java.nio.channels.ClosedChannelException> at org.apache.tomcat.websocket.server.TestClose.awaitOnError(TestClose.java:110) at org.apache.tomcat.websocket.server.TestClose.testTcpResetInOnMessage(TestClose.java:217) at org.apache.tomcat.websocket.server.TestClose.testTcpResetWhenOnMessageSends(TestClose.java:232)

Testcase: testTcpResetInOnMessage took 0.376 sec
Testcase: testTcpClose took 0.373 sec
Testcase: testTcpReset took 0.214 sec

Probably fixed by r1728137.

Thanks as always 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