Camel 4.8.1 Doesn't Play Well With Hawtio in Karaf 4.4.6
I am running Karaf 4.4.6 atop Java 17 (AWS Coretto) on MacOS 12.7.5.
I clean the data/cache directory and automatically deploy, via the org.apache.karaf.features.cfg file, Hawtio as follows and all is good.
featuresRepositories =
mvn:org.apache.karaf.features/enterprise/4.4.6/xml/features,
mvn:org.apache.karaf.features/specs/4.4.6/xml/features,
mvn:org.apache.karaf.features/standard/4.4.6/xml/features,
mvn:org.apache.karaf.features/framework/4.4.6/xml/features,
mvn:org.apache.karaf.features/spring/4.4.6/xml/features,
mvn:org.apache.camel.karaf/apache-camel/4.8.1/xml/features,
mvn:org.apache.activemq/artemis-features/2.39.0/xml/features,
mvn:io.hawt/hawtio-karaf/2.17.7/xml/features
featuresBoot =
(instance/4.4.6,
package/4.4.6,
log/4.4.6,
ssh/4.4.6,
framework/4.4.6,
system/4.4.6,
eventadmin/4.4.6,
feature/4.4.6,
shell/4.4.6,
management/4.4.6,
service/4.4.6,
jaas/4.4.6,
deployer/4.4.6,
diagnostic/4.4.6,
wrap/2.6.14,
bundle/4.4.6,
config/4.4.6,
kar/4.4.6),
(hawtio-core,
hawtio-rbac,
hawtio-log,
hawtio)
You will note that I am including the Camel 4.8.1 features repo, but have not deployed any Camel features. However, if I include Camel features (see below), then during a virgin (removed data/cache) startup, Karaf just spins and pegs the CPU. It doesn't happen every time, but I would say half the time during virgin startups.
featuresRepositories =
mvn:org.apache.karaf.features/enterprise/4.4.6/xml/features,
mvn:org.apache.karaf.features/specs/4.4.6/xml/features,
mvn:org.apache.karaf.features/standard/4.4.6/xml/features,
mvn:org.apache.karaf.features/framework/4.4.6/xml/features,
mvn:org.apache.karaf.features/spring/4.4.6/xml/features,
mvn:org.apache.camel.karaf/apache-camel/4.8.1/xml/features,
mvn:org.apache.activemq/artemis-features/2.39.0/xml/features,
mvn:io.hawt/hawtio-karaf/2.17.7/xml/features
featuresBoot =
(instance/4.4.6,
package/4.4.6,
log/4.4.6,
ssh/4.4.6,
framework/4.4.6,
system/4.4.6,
eventadmin/4.4.6,
feature/4.4.6,
shell/4.4.6,
management/4.4.6,
service/4.4.6,
jaas/4.4.6,
deployer/4.4.6,
diagnostic/4.4.6,
wrap/2.6.14,
bundle/4.4.6,
config/4.4.6,
kar/4.4.6),
(hawtio-core,
hawtio-rbac,
hawtio-log,
hawtio,
camel-blueprint,
camel-jackson,
camel-jacksonxml,
camel-jsonpath,
camel-jasypt,
camel-jaxb,
camel-saxon,
camel-quartz,
camel-sql,
camel-groovy,
camel-ftp,
camel-stax,
camel-velocity,
camel-zip-deflater,
camel-zipfile,
camel-xslt-saxon,
camel-http,
camel-servlet,
jasypt-encryption,
mail)
If I then leave the Camel features and remove Hawtio, then all is good.
I have not taken any thread dumps during the spinning, but can if it helps.
I have attached a screenshot showing the stats for the JVM whilst it is spinning and also the karaf log file
.
Thanks for the report. The resolver probably find multiple resolution chains and that's why it consumes CPU. It can happen depending of the feature install order (race condition). With the details you provided, I will try to reproduce.
FYI, in Karaf 4.5.x, I'm working on a new resolver that should avoid this kind of problem.
@jbonofre - When are you expecting to roll out Karaf 4.5.x ?
I moved to Karaf 4.4.7, Java 21, and MacOS 15.2. With that the spinning issue does not arise. I am still testing, but so far so good.