Release Notes / Version 10.2104
Table Of ContentsWe observed Out Of Memory exceptions in CAEs with small heap configurations (around 1.2 GB). We presume this is due to some bugs in the new garbage collector called G1 (Garbage First) which is the default algorithm for server configurations since JDK 9, e.g. https://bugs.java.com/bugdatabase/view_bug.do?bug_id=8192647 .
Therefore, we decided to reduce the default configuration for image transformation permits (com.coremedia.transform.throttle.permits) from 1/2 to 1/4 of the maximal java heap size.
This reduces the pressure on the garbage collector. It should not reduce the performance of image transformations in general, but if a lot of CPU cores are available and/or a lot of your images are huge, you might consider increasing this setting.
See also: ThrottlingBlobTransformer configuration in the CAE Developer Manual.
The default Garbage Collector is changed to UseParallelGC for Chef and Docker Deployment. To change the garbage collector:
for the Docker setup the new coremedia/java-application-base:2.1.7 image contains an environment variable toggle
JAVA_GC_PARALLEL
that isfalse
by default.for the Chef setup, a node attribute has been added.
default['blueprint']['spring-boot']['java_opts']['use_parallel_gc'] = '-XX:+UseParallelGC'
The change to the docker setup is non breaking unless the
JAVA_OPTS
environment variable has been used to set a different garbage collector.
Note: The default Garbage Collector has only changed for CMCC Versions > 1910, so it is non breaking for 1910. For 1910.2 the GC can be configured as described above.
(CMS-16168)