Hello,
I'm trying to upgrade to 7.3.0 but there seems to be a performance issue with the file watcher.
This is a test server so there is no traffic involved.
The CPU usage is quite low but as soon as I create or modify a file under a folder monitored by CAS (e.g. `/etc/cas/config/`), the RAM usage dazzles and thus the GC is running and making the CPU usage exploding.
The server is running through a sandboxed Systemd service but running it manually, with no Systemd invovled, creates the exact same issue.
* Java : Adoptium Temurin 21.0.8+9
* OS : Debian 11
* CPU : 2 cores
* Memory : 8 GB (with 6 dedicated to Java)
First, I run the server (like this or manually, it's the same):
$ sudo systemctl start tomcat-cas
It looks like there needs to be at least a single sign-on for the issue
to appear. Then, CPU usage is low:
$ top -bn 20 -d 0.3 -p $(pidof java) | grep cas | tr -s ' ' | cut -d ' ' -f 10 | sort | uniq
0,0
3,2
3,3
Then I create a file in a monitored folder:
$ touch /etc/cas/config/test
Finally, CPU usage explodes:
$ top -bn 20 -d 0.3 -p $(pidof java) | grep cas | tr -s ' ' | cut -d ' ' -f 10 | sort | uniq
106,7
154,8
193,3
196,7
200,0
After waiting for a few minutes, the logs have such error messages:
Exception: java.lang.OutOfMemoryError thrown from the UncaughtExceptionHandler in thread "..."
Here's the command used to start the server:
$ java -jar -Xms3076m -Xmx6144m cas.war -Djava.net.preferIPv4Stack=true -Djava.util.logging.config.file=/etc/cas/config/logging.properties
Here's what I've tested:
- 7.2.7 with
- Tomcat 10.11.14
- Spring Boot 3.4.4
- Issue present: No
- 7.3.0 with
- Tomcat 10.11.14
- Spring Boot 3.4.4
- Issue present: Yes
- 7.3.0 with
- Tomcat 11.0.11
- Spring Boot 3.5.6
- Issue present: Yes
- 7.3.0 with
- Tomcat 11.0.13
- Spring Boot 3.5.6
- Issue present: Yes
Thanks for your time!