On Mon, Dec 14, 2020 at 10:08 AM Rémy Maucherat <r...@apache.org> wrote:
> On Mon, Dec 14, 2020 at 8:53 AM Martin Grigorov <mgrigo...@apache.org> > wrote: > > > Hi Tomcat team, > > > > The following tests fail on JDK 16 b28: > > > > [concat] Testsuites with failed tests: > > [concat] > > > > > TEST-org.apache.catalina.loader.TestWebappClassLoaderExecutorMemoryLeak.APR.txt > > [concat] > > > > > TEST-org.apache.catalina.loader.TestWebappClassLoaderExecutorMemoryLeak.NIO.txt > > [concat] > > > > > TEST-org.apache.catalina.loader.TestWebappClassLoaderExecutorMemoryLeak.NIO2.txt > > [concat] > > TEST-org.apache.catalina.loader.TestWebappClassLoaderMemoryLeak.APR.txt > > [concat] > > TEST-org.apache.catalina.loader.TestWebappClassLoaderMemoryLeak.NIO.txt > > [concat] > > TEST-org.apache.catalina.loader.TestWebappClassLoaderMemoryLeak.NIO2.txt > > > > > > with this reason: > > > > Caused by: java.lang.reflect.InaccessibleObjectException: Unable to make > > field final java.util.concurrent.ThreadPoolExecutor > > java.util.concurrent.ThreadPoolExecutor$Worker.this$0 accessible: module > > java.base does not "opens java.util.concurrent" to unnamed module @80503 > > at > > > > > java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:357) > > at > > > > > java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:297) > > at > > java.base/java.lang.reflect.Field.checkCanSetAccessible(Field.java:177) > > at > java.base/java.lang.reflect.Field.setAccessible(Field.java:171) > > at > > > > > org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesThreads(WebappClassLoaderBase.java:1798) > > at > > > > > org.apache.catalina.loader.WebappClassLoaderBase.clearReferences(WebappClassLoaderBase.java:1622) > > at > > > > > org.apache.catalina.loader.WebappClassLoaderBase.stop(WebappClassLoaderBase.java:1554) > > at > > > org.apache.catalina.loader.WebappLoader.stopInternal(WebappLoader.java:461) > > at > > org.apache.catalina.util.LifecycleBase.stop(LifecycleBase.java:257) > > > > The changelog does say it's tightening up this sort of stuff, so I guess > it's working just fine ! For now, I'll add the exception to the list of > caught exceptions. > This fixed the old failure. Now it prints a WARNING with the same message as before. But the next problem is: 14-Dec-2020 08:41:48.999 INFO [main] org.apache.catalina.core.StandardService.stopInternal Stopping service [Tomcat] Exception in thread "pool-1-thread-2" java.lang.IllegalMonitorStateException at java.base/java.util.concurrent.locks.ReentrantLock$Sync.tryRelease(ReentrantLock.java:175) at java.base/java.util.concurrent.locks.AbstractQueuedSynchronizer.release(AbstractQueuedSynchronizer.java:1006) at java.base/java.util.concurrent.locks.ReentrantLock.unlock(ReentrantLock.java:494) at java.base/java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442) at java.base/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1056) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1116) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630) at java.base/java.lang.Thread.run(Thread.java:831) 14-Dec-2020 08:41:49.000 INFO [main] org.apache.coyote.AbstractProtocol.stop Stopping ProtocolHandler ["http-nio-127.0.0.1-auto-1-37203"] Exception in thread "pool-1-thread-4" java.lang.IllegalMonitorStateException at java.base/java.util.concurrent.locks.ReentrantLock$Sync.tryRelease(ReentrantLock.java:175) at java.base/java.util.concurrent.locks.AbstractQueuedSynchronizer.release(AbstractQueuedSynchronizer.java:1006) at java.base/java.util.concurrent.locks.ReentrantLock.unlock(ReentrantLock.java:494) at java.base/java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442) at java.base/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1056) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1116) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630) at java.base/java.lang.Thread.run(Thread.java:831) Exception in thread "pool-1-thread-5" java.lang.IllegalMonitorStateException at java.base/java.util.concurrent.locks.ReentrantLock$Sync.tryRelease(ReentrantLock.java:175) at java.base/java.util.concurrent.locks.AbstractQueuedSynchronizer.release(AbstractQueuedSynchronizer.java:1006) at java.base/java.util.concurrent.locks.ReentrantLock.unlock(ReentrantLock.java:494) at java.base/java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442) at java.base/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1056) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1116) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630) at java.base/java.lang.Thread.run(Thread.java:831) Exception in thread "pool-1-thread-3" java.lang.IllegalMonitorStateException at java.base/java.util.concurrent.locks.ReentrantLock$Sync.tryRelease(ReentrantLock.java:175) at java.base/java.util.concurrent.locks.AbstractQueuedSynchronizer.release(AbstractQueuedSynchronizer.java:1006) at java.base/java.util.concurrent.locks.ReentrantLock.unlock(ReentrantLock.java:494) at java.base/java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442) at java.base/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1056) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1116) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630) at java.base/java.lang.Thread.run(Thread.java:831) Exception in thread "pool-1-thread-1" java.lang.IllegalMonitorStateException at java.base/java.util.concurrent.locks.ReentrantLock$Sync.tryRelease(ReentrantLock.java:175) at java.base/java.util.concurrent.locks.AbstractQueuedSynchronizer.release(AbstractQueuedSynchronizer.java:1006) at java.base/java.util.concurrent.locks.ReentrantLock.unlock(ReentrantLock.java:494) at java.base/java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442) at java.base/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1056) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1116) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630) at java.base/java.lang.Thread.run(Thread.java:831) 14-Dec-2020 08:41:49.046 INFO [main] org.apache.coyote.AbstractProtocol.destroy Destroying ProtocolHandler ["http-nio-127.0.0.1-auto-1-37203"] ------------- ---------------- --------------- Testcase: testTimerThreadLeak took 4.306 sec FAILED null junit.framework.AssertionFailedError at org.apache.catalina.loader.TestWebappClassLoaderExecutorMemoryLeak.testTimerThreadLeak(TestWebappClassLoaderExecutorMemoryLeak.java:63) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:78) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) Again the same test classes fail with this new error. > Rémy > > > > > > Regards, > > Martin > > > > On Sun, Dec 13, 2020 at 7:08 PM Rory O'Donnell <rory.odonn...@oracle.com > > > > wrote: > > > > > Hi Mark, > > > > > > *Per the JDK 16 schedule , we are in Rampdown Phase One* *[1] . > > > * > > > > > > *Please advise if you find any issues while testing the latest Early > > > Access builds.* > > > > > > * Schedule for JDK 16 > > > o *2020/12/10 Rampdown Phase One* > > > o 2021/01/14 Rampdown Phase Two > > > o 2021/02/04 Initial Release Candidate > > > o 2021/02/18 Final Release Candidate > > > o 2021/03/16 General Availability > > > * Release Notes [2] > > > > > > OpenJDK 16 Early Access build 28**is now available at > > > http://jdk.java.net/16 > > > > > > * Features - the overall feature set is frozen. No further JEPs will > > > be targeted to this release. > > > * Significant Integrations in b28: > > > o *Integrated JEP 396: **Strongly Encapsulate JDK Internals by > > > Default <https://openjdk.java.net/jeps/396>** > > > * > > > + Strongly encapsulate all internal elements of the JDK by > > > default, except for critical internal APIs > > > <https://openjdk.java.net/jeps/260#Description> such as > > > |sun.misc.Unsafe|. > > > + Allow end users to choose the relaxed strong encapsulation > > > that has been the default since JDK 9. > > > o Integrated JEP 397: Sealed Classes (Second Preview) > > > <https://openjdk.java.net/jeps/397> with this release. > > > + Enhance the Java programming language with sealed classes > > > and interfaces > > > <https://cr.openjdk.java.net/~briangoetz/amber/datum.html > >. > > > + Refines JEP 360 <https://openjdk.java.net/jeps/360> which > > > was delivered in JDK 15 as a preview feature. > > > > > > * These early-access , open-source builds are provided under the GNU > > > General Public License, version 2, with the Classpath Exception > > > <http://openjdk.java.net/legal/gplv2+ce.html>. > > > * Changes in recent builds that maybe of interest: > > > o Build 28 > > > + JDK-8256299: JEP 396: Strongly Encapsulate JDK Internals by > > > Default > > > + JDK-8166596: TLS support for the EdDSA signature algorithm > > > + JDK-8256718: Old tracing flags are now obsolete and must be > > > replaced with unified logging > > > o Build 27 > > > + JDK-8159746: (proxy) Support for default methods > > > + JDK-8254631: Better support ALPN byte wire values in > SunJSSE > > > > > > Project Loom Early-Access: *Build 16-loom+9-316 > > > <http://jdk.java.net/loom/>* (2020/11/30) - based on JDK-16+25 > > > <https://github.com/openjdk/jdk/releases/tag/jdk-16%2B25> > > > > > > * These early-access builds are provided under the GNU General Public > > > License, version 2, with the Classpath Exception > > > <http://openjdk.java.net/legal/gplv2+ce.html> > > > * These builds are intended for developers looking to "kick the > tyres" > > > and provide feedback on using the API or by sending bug reports. > > > * Please send feedback via e-mail to loom-...@openjdk.java.net > > > <mailto:loom-...@openjdk.java.net>. To send e-mail to this address > > > you must first subscribe to the mailing list > > > <http://mail.openjdk.java.net/mailman/listinfo/loom-dev>. > > > > > > Rgds, Rory > > > > > > [1] > > > > > > https://mail.openjdk.java.net/pipermail/jdk-dev/2020-December/004991.html > > > [2] https://jdk.java.net/16/release-notes > > > > > > > > >