Am 05.02.25 um 01:55 schrieb Rainer Jung:
Am 04.02.25 um 21:29 schrieb Rémy Maucherat:
The proposed Apache Tomcat 9.0.99 release is now available for voting.

The notable changes compared to 9.0.98 are:

- Allow readOnly attribute configuration on the Resources element and
    allow configuration of the readOnly attribute value of the main
    resources. The attribute value will also be used by the default and
    WebDAV Servlets.

- Correct a regression in the fix for bug 69382 that broke JSP
    include actions if both the page attribute and the body contained
    parameters. Pull request #803 provided by Chenjp.

- Expand the options for handling encoded '/' and '\' characters in
    URLs both in the Connector and when using a RequestDispatcher.

For full details, see the changelog:
https://nightlies.apache.org/tomcat/tomcat-9.0.x/docs/changelog.html

It can be obtained from:
https://dist.apache.org/repos/dist/dev/tomcat/tomcat-9/v9.0.99/

The Maven staging repo is:
https://repository.apache.org/content/repositories/orgapachetomcat-1529

The tag is:
https://github.com/apache/tomcat/tree/9.0.99
7145107845fe82dafee783bb0bfd6bea028e173b

The proposed 9.0.99 release is:
[ ] -1, Broken - do not release
[ ] +1, Stable - go ahead and release as 9.0.99

I see java.lang.OutOfMemoryError for Adoptium Temurin 1.8.0_442-b06. It seems it happens when running org.apache.tomcat.websocket.TestWebSocketFrameClient. At least on several VMs the thread running this test does not come to an end, whereas the other thread proceeds until it finishes the last test.

It seems this is due to the new 256MB memory limit for the unit test JVM configured in build.xml. I can reproduce the OOME running the single test with the default size 256m, but not with 512m or 384m.

I will start my test zoo gaian using 512m and check, whether it still shows any problems.

It happens in NIO and NIO2 using JSSE. I do not yet know, whether it happens for other JDK vendors or versions. One VM made enough progress to read tcnative based tests and it happens there too.

I have not seen this before, at least I do not remember.

It does happen for SLES 11, 12, 15 and RHEL 6, 7, 8 and 9. I do not observe this on Solaris 10 or 11, but those have more system memory. The Linux VMs typically run with 4 GB OS memory. The JVM heap seems to be 256MB.

Eclipse MAT points to the following Queue, which contains more than 90.000 nodes (shown with incoming references):

Class Name               | Shallow Heap | Retained Heap
----------------------------------------------------------------------------------------------------------------------
java.util.concurrent.LinkedBlockingQueue @ 0xf1945eb0               |            48 |   204.135.592 '- messages org.apache.tomcat.websocket.TesterMessageCountClient$BasicText @ 0xf1945e88|           24 |   204.135.696    |- textMessageHandler org.apache.tomcat.websocket.WsSession @ 0xf193d9a0            |          152 |   204.195.664    '- textMsgHandler org.apache.tomcat.websocket.WsFrameClient @ 0xf193db00            |          120 |        41.984
----------------------------------------------------------------------------------------------------------------------


I see this stack sometimes, but it could be just a victim of the memory shortage:

Exception in thread "WebSocketClient-SecureIO-1" java.lang.OutOfMemoryError: GC overhead limit exceeded
at java.util.Arrays.copyOf(Arrays.java:3236)
at java.io.ByteArrayOutputStream.grow(ByteArrayOutputStream.java:118)
at java.io.ByteArrayOutputStream.ensureCapacity(ByteArrayOutputStream.java:93)
at java.io.ByteArrayOutputStream.write(ByteArrayOutputStream.java:153)
at com.sun.crypto.provider.GaloisCounterMode.decrypt(GaloisCounterMode.java:537)
at com.sun.crypto.provider.CipherCore.update(CipherCore.java:782)
at com.sun.crypto.provider.CipherCore.update(CipherCore.java:667)
at com.sun.crypto.provider.AESCipher.engineUpdate(AESCipher.java:380)
at javax.crypto.CipherSpi.bufferCrypt(CipherSpi.java:824)
at javax.crypto.CipherSpi.engineDoFinal(CipherSpi.java:730)
at javax.crypto.Cipher.doFinal(Cipher.java:2463)
at sun.security.ssl.SSLCipher$T13GcmReadCipherGenerator$GcmReadCipher.decrypt(SSLCipher.java:1880) at sun.security.ssl.SSLEngineInputRecord.decodeInputRecord(SSLEngineInputRecord.java:240) at sun.security.ssl.SSLEngineInputRecord.decode(SSLEngineInputRecord.java:197) at sun.security.ssl.SSLEngineInputRecord.decode(SSLEngineInputRecord.java:160)
at sun.security.ssl.SSLTransport.decode(SSLTransport.java:109)
at sun.security.ssl.SSLEngineImpl.decode(SSLEngineImpl.java:588)
at sun.security.ssl.SSLEngineImpl.readRecord(SSLEngineImpl.java:544)
at sun.security.ssl.SSLEngineImpl.unwrap(SSLEngineImpl.java:411)
at sun.security.ssl.SSLEngineImpl.unwrap(SSLEngineImpl.java:390)
at javax.net.ssl.SSLEngine.unwrap(SSLEngine.java:626)
at org.apache.tomcat.websocket.AsyncChannelWrapperSecure$ReadTask.run(AsyncChannelWrapperSecure.java:269) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:750)

JVM size info:

JVM version is 25.442-b06

using thread-local object allocation.
Parallel GC with 2 thread(s)

Heap Configuration:
    MinHeapFreeRatio         = 0
    MaxHeapFreeRatio         = 100
    MaxHeapSize              = 268435456 (256.0MB)
    NewSize                  = 20971520 (20.0MB)
    MaxNewSize               = 89128960 (85.0MB)
    OldSize                  = 41943040 (40.0MB)
    NewRatio                 = 2
    SurvivorRatio            = 8
    MetaspaceSize            = 21807104 (20.796875MB)
    CompressedClassSpaceSize = 1073741824 (1024.0MB)
    MaxMetaspaceSize         = 17592186044415 MB
    G1HeapRegionSize         = 0 (0.0MB)

Heap Usage:
PS Young Generation
Eden Space:
    capacity = 30408704 (29.0MB)
    used     = 30408704 (29.0MB)
    free     = 0 (0.0MB)
    100.0% used
 From Space:
    capacity = 29360128 (28.0MB)
    used     = 0 (0.0MB)
    free     = 29360128 (28.0MB)
    0.0% used
To Space:
    capacity = 29360128 (28.0MB)
    used     = 0 (0.0MB)
    free     = 29360128 (28.0MB)
    0.0% used
PS Old Generation
    capacity = 179306496 (171.0MB)
    used     = 178862408 (170.57648468017578MB)
    free     = 444088 (0.42351531982421875MB)
    99.75233022232501% used

10301 interned Strings occupying 923704 bytes.

Heap histogram:

  num     #instances         #bytes  class name
----------------------------------------------
    1:        117372      201481240  [C
    2:        117231        2813544  java.lang.String
   3:         96658        2319792 java.util.concurrent.LinkedBlockingQueue$Node
    4:          1023         422040  [B
    5:          3366         379696  java.lang.Class
    6:          5959         190688  java.util.HashMap$Node
   7:          5552         177664 java.util.concurrent.ConcurrentHashMap$Node
    8:          2703         157816  [Ljava.lang.Object;
    9:          1312         115456  java.lang.reflect.Method
   10:          1722          87376  [I
   11:           530          75552  [Ljava.util.HashMap$Node;
  12:            64          50920 [Ljava.util.concurrent.ConcurrentHashMap$Node;   13:          1020          48960 org.apache.tomcat.util.modeler.AttributeInfo
   14:          2897          46352  java.lang.Object
   15:           621          39680  [Ljava.lang.String;
   16:           896          35840  java.util.LinkedHashMap$Entry
   17:           678          32544  java.util.HashMap
   18:           894          28608  java.util.Hashtable$Entry
  19:           512          24576 java.util.concurrent.locks.ReentrantReadWriteLock$NonfairSync
   20:           526          21040  java.lang.ref.SoftReference
   21:             9          20656  [Ljava.nio.ByteBuffer;
   22:           638          20416  javax.management.MBeanAttributeInfo
  23:           414          19872 org.apache.tomcat.util.modeler.OperationInfo
   24:           896          19616  [Ljava.lang.Class;
   25:           408          16320  java.math.BigInteger
   26:           273          15288  java.lang.invoke.MemberName
   27:           550          13200  java.util.LinkedList$Node
  28:           513          12312 java.util.concurrent.locks.ReentrantReadWriteLock
   29:           166          11952  java.util.logging.Logger
   30:           280          11200  javax.management.MBeanOperationInfo
   31:           341          10912  sun.misc.FDBigInteger
  32:           314          10048 org.apache.tomcat.util.modeler.ParameterInfo
   33:            40           9584  [Ljava.util.Hashtable$Entry;
   34:            59           9120  [Z
   35:           223           8920  java.lang.invoke.MethodType
  36:           414           8608 [Lorg.apache.tomcat.util.modeler.ParameterInfo;
   37:           262           8384  java.lang.ref.WeakReference
  38:           172           8256 java.util.logging.LogManager$LoggerWeakRef   39:           513           8208 java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock   40:           513           8208 java.util.concurrent.locks.ReentrantReadWriteLock$Sync$ThreadLocalHoldCounter   41:           513           8208 java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock   42:           235           7520 java.util.concurrent.locks.ReentrantLock$NonfairSync
   43:           233           7456  javax.management.MBeanParameterInfo
  44:           224           7168 java.lang.invoke.MethodType$ConcurrentWeakInternSet$WeakEntry
   45:           223           7136  java.lang.invoke.LambdaForm$Name
   46:           110           6600  [Ljava.lang.ref.SoftReference;
   47:           103           6592  java.util.concurrent.ConcurrentHashMap
   48:           261           6264  java.util.ArrayList
   49:           256           6144  java.lang.Long
   50:           152           6080  java.util.TreeMap$Entry
  51:           188           6016 com.sun.org.apache.xerces.internal.xni.QName
   52:           248           5952  javax.management.ImmutableDescriptor
   53:           183           5856  java.util.LinkedList
   54:           145           5800  java.util.WeakHashMap$Entry
   55:            89           5696  java.net.URL
   56:            70           5600  java.lang.reflect.Constructor
   57:            84           5560  [Ljavax.management.MBeanAttributeInfo;
   58:            52           5312  [Ljava.util.WeakHashMap$Entry;
  59:           216           5184 java.util.concurrent.CopyOnWriteArrayList   60:           154           4928 com.sun.jmx.mbeanserver.ConvertingMethod
   61:           307           4912  java.lang.Integer
   62:            13           4888  java.lang.Thread
   63:            84           4704  java.lang.Package
  64:            12           4608 org.apache.tomcat.util.threads.TaskThread   65:            74           4144 org.apache.tomcat.util.modeler.ManagedBean
   66:           164           4120  [Ljavax.management.MBeanParameterInfo;
   67:           256           4096  java.lang.Byte
   68:           256           4096  java.lang.Short
   69:           125           4000  java.lang.invoke.DirectMethodHandle
   70:            83           3984  javax.management.MBeanInfo
   71:            70           3920  java.util.LinkedHashMap
   72:           244           3904  java.util.HashMap$Values
  73:           160           3840 org.apache.juli.ClassLoaderLogManager$LogNode   74:           235           3760 java.util.concurrent.locks.ReentrantLock
   75:            75           3600  java.lang.invoke.LambdaForm
   76:            80           3520  [Ljava.lang.invoke.LambdaForm$Name;
   77:            60           3360  java.lang.invoke.MethodTypeForm
  78:           165           3288 [Lcom.sun.jmx.mbeanserver.MXBeanMapping;   79:            49           3136 javax.management.openmbean.OpenMBeanAttributeInfoSupport
   80:           130           3120  java.time.LocalDateTime
  81:           111           2976 [Ljavax.management.ObjectName$Property;
   82:            29           2944  [Ljava.lang.invoke.MethodHandle;
   83:            22           2880  [S
  84:            10           2848 [Lcom.sun.org.apache.xerces.internal.xni.QName;
   85:            17           2816  [J
   86:           117           2808  javax.management.ObjectName$Property
   87:            70           2800  java.io.ObjectStreamField
   88:            74           2776  [Ljavax.management.MBeanOperationInfo;
   89:            48           2688  java.util.ResourceBundle$CacheKey
  90:           110           2640 java.lang.invoke.LambdaForm$NamedFunction
   91:            64           2560  java.lang.ref.Finalizer
   92:            49           2352  java.util.WeakHashMap
  93:            48           2304 java.util.ResourceBundle$BundleReference
   94:            48           2304  org.apache.tomcat.util.buf.ByteChunk
   95:            56           2240  javax.management.ObjectName
   96:            69           2208  java.lang.ref.ReferenceQueue
   97:            15           2160  java.text.DecimalFormat
   98:            53           2120  sun.security.util.NamedCurve
   99:           128           2048  java.lang.Character
  100:            13           2016  [Ljava.lang.reflect.Method;
 101:            36           2016 org.apache.tomcat.util.res.StringManager$1
  102:            41           1968  org.apache.tomcat.util.buf.CharChunk
 103:            40           1920 org.apache.tomcat.util.buf.MessageBytes  104:            48           1920 sun.management.DiagnosticCommandArgumentInfo  105:            40           1920 sun.util.locale.LocaleObjectCache$CacheEntry
  106:            75           1800  java.security.Provider$ServiceKey
  107:            32           1792  java.security.Provider$Service
  108:            32           1792  sun.misc.URLClassPath$JarLoader
  109:            53           1696  java.security.spec.EllipticCurve
  110:            68           1632  java.time.LocalDate
  111:            16           1624  [[Ljava.lang.String;
 112:            66           1584 sun.reflect.generics.tree.SimpleClassTypeSignature
  113:            14           1568  java.util.GregorianCalendar
 114:            48           1536 java.util.ResourceBundle$LoaderReference
  115:            16           1536  java.util.jar.JarFile$JarFileEntry
  116:            27           1512  sun.nio.cs.UTF_8$Encoder
  117:             3           1488  [[B
  118:            23           1472  java.util.jar.JarFile
  119:            30           1440  java.time.temporal.ValueRange
  120:            36           1440  java.util.PropertyResourceBundle
  121:            88           1408  org.apache.juli.logging.DirectJDKLog
  122:             1           1376  [Lsun.misc.FDBigInteger;
  123:            28           1344  java.nio.HeapByteBuffer
  124:            14           1344  sun.util.calendar.Gregorian$Date
  125:            55           1320  com.sun.jmx.mbeanserver.NamedObject
  126:            54           1296  java.security.spec.ECPoint
  127:            32           1280  java.security.AccessControlContext
 128:            66           1248 [Lsun.reflect.generics.tree.TypeArgument;
  129:            26           1248  java.util.TreeMap
  130:            50           1200  java.lang.Class$AnnotationData
  131:            30           1200  java.time.temporal.ChronoField
  132:            38           1184  [Ljava.math.BigInteger;
 133:            74           1184 [Lorg.apache.tomcat.util.modeler.NotificationInfo;  134:            37           1184 java.lang.invoke.BoundMethodHandle$Species_L
  135:            37           1184  java.util.regex.Pattern$Curly
  136:            49           1176  org.apache.coyote.ActionCode
  137:            71           1136  java.lang.ref.ReferenceQueue$Lock
  138:            23           1104  sun.management.DiagnosticCommandInfo
  139:            19           1064  javax.management.openmbean.ArrayType
  140:            33           1056  java.io.File
 141:            66           1056 sun.reflect.generics.tree.ClassTypeSignature

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