Hello SonarQube Community,
I’m encountering an issue with SonarQube and would appreciate your help. Here are the details:
Environment:
-
SonarQube Version: 25.1.0.102122-community
-
Plugin(s): sonar-l10n-zh-plugin-25.1.jar, sonarqube-community-branch-plugin-1.23.0.jar
-
Deployed by: helm
-
Kubernetes version: 1.30+
Issue Description:
Today, while upgrading SonarQube Community Edition, I noticed that the SonarQube pod failed to start properly. The logs don’t show any obvious error messages, causing the startup probe to fail and the pod to restart. Could you please help me analyze the issue? Is there something wrong with my configuration?
here is my probe configs and logs:
readinessProbe:
exec:
command:
- sh
- -c
- |
#!/bin/bash
# A Sonarqube container is considered ready if the status is UP, DB_MIGRATION_NEEDED or DB_MIGRATION_RUNNING
# status about migration are added to prevent the node to be kill while SonarQube is upgrading the database.
if wget --no-proxy -qO- http://localhost:{{ .Values.service.internalPort }}{{ .Values.readinessProbe.sonarWebContext | default (include "sonarqube.webcontext" .) }}api/system/status | grep -q -e '"status":"UP"' -e '"status":"DB_MIGRATION_NEEDED"' -e '"status":"DB_MIGRATION_RUNNING"'; then
exit 0
fi
exit 1
initialDelaySeconds: 300
periodSeconds: 10
failureThreshold: 6
# Note that timeoutSeconds was not respected before Kubernetes 1.20 for exec probes
timeoutSeconds: 60
# If an ingress *path* other than the root (/) is defined, it should be reflected here
# A trailing "/" must be included
# deprecated please use sonarWebContext at the value top level
# sonarWebContext: /
livenessProbe:
exec:
command:
- sh
- -c
- |
wget --no-proxy --quiet -O /dev/null --timeout={{ .Values.livenessProbe.timeoutSeconds }} --header="X-Sonar-Passcode: $SONAR_WEB_SYSTEMPASSCODE" "http://localhost:{{ .Values.service.internalPort }}{{ .Values.livenessProbe.sonarWebContext | default (include "sonarqube.webcontext" .) }}api/system/liveness"
initialDelaySeconds: 360
periodSeconds: 10
failureThreshold: 6
# Note that timeoutSeconds was not respected before Kubernetes 1.20 for exec probes
timeoutSeconds: 60
# If an ingress *path* other than the root (/) is defined, it should be reflected here
# A trailing "/" must be included
# deprecated please use sonarWebContext at the value top level
# sonarWebContext: /
startupProbe:
initialDelaySeconds: 300
periodSeconds: 10
failureThreshold: 10
# Note that timeoutSeconds was not respected before Kubernetes 1.20 for exec probes
timeoutSeconds: 60
2025.11.22 13:43:42 INFO app[][o.s.a.AppFileSystem] Cleaning or creating temp directory /opt/sonarqube/temp
2025.11.22 13:43:42 INFO app[][o.s.a.es.EsSettings] Elasticsearch listening on [HTTP: 127.0.0.1:9001, TCP: 127.0.0.1:{}]
2025.11.22 13:43:42 INFO app[][o.s.a.ProcessLauncherImpl] Launch process[ELASTICSEARCH] from [/opt/sonarqube/elasticsearch]: /opt/java/openjdk/bin/java -Xms4m -Xmx64m -XX:+UseSerialGC -Dcli.name=server -Dcli.script=./bin/elasticsearch -Dcli.libs=lib/tools/server-cli -Des.path.home=/opt/sonarqube/elasticsearch -Des.path.conf=/opt/sonarqube/temp/conf/es -Des.distribution.type=tar -cp /opt/sonarqube/elasticsearch/lib/*:/opt/sonarqube/elasticsearch/lib/cli-launcher/* org.elasticsearch.launcher.CliToolLauncher
2025.11.22 13:43:42 INFO app[][o.s.a.SchedulerImpl] Waiting for Elasticsearch to be up and running
Standard Commons Logging discovery in action with spring-jcl: please remove commons-logging.jar from classpath in order to avoid potential conflicts
2025.11.22 13:43:47 INFO es[][o.e.n.NativeAccess] Using [jna] native provider and native methods for [Linux]
2025.11.22 13:43:49 INFO es[][o.e.n.Node] version[8.16.1], pid[79], build[tar/ffe992aa682c1968b5df375b5095b3a21f122bf3/2024-11-19T16:00:31.793213192Z], OS[Linux/5.10.134-15.al8.x86_64/amd64], JVM[Eclipse Adoptium/OpenJDK 64-Bit Server VM/17.0.14/17.0.14+7]
2025.11.22 13:43:49 INFO es[][o.e.n.Node] JVM home [/opt/java/openjdk], using bundled JDK [false]
2025.11.22 13:43:49 INFO es[][o.e.n.Node] JVM arguments [-Des.networkaddress.cache.ttl=60, -Des.networkaddress.cache.negative.ttl=10, -Djava.security.manager=allow, -XX:+AlwaysPreTouch, -Xss1m, -Djava.awt.headless=true, -Dfile.encoding=UTF-8, -Djna.nosys=true, -XX:-OmitStackTraceInFastThrow, -Dio.netty.noUnsafe=true, -Dio.netty.noKeySetOptimization=true, -Dio.netty.recycler.maxCapacityPerThread=0, -Dlog4j.shutdownHookEnabled=false, -Dlog4j2.disable.jmx=true, -Dlog4j2.formatMsgNoLookups=true, -Djava.locale.providers=SPI,COMPAT, -XX:ReplayDataFile=logs/replay_pid%p.log, -Des.distribution.type=tar, -XX:+UseG1GC, -Djava.io.tmpdir=/opt/sonarqube/temp, -XX:ErrorFile=/opt/sonarqube/logs/es_hs_err_pid%p.log, -Xlog:disable, -Des.networkaddress.cache.ttl=60, -Des.networkaddress.cache.negative.ttl=10, -XX:+AlwaysPreTouch, -Xss1m, -Djava.awt.headless=true, -Dfile.encoding=UTF-8, -Djna.nosys=true, -Djna.tmpdir=/opt/sonarqube/temp, -XX:-OmitStackTraceInFastThrow, -Dio.netty.noUnsafe=true, -Dio.netty.noKeySetOptimization=true, -Dio.netty.recycler.maxCapacityPerThread=0, -Dio.netty.allocator.numDirectArenas=0, -Dlog4j.shutdownHookEnabled=false, -Dlog4j2.disable.jmx=true, -Dlog4j2.formatMsgNoLookups=true, -Djava.locale.providers=COMPAT, -Des.enforce.bootstrap.checks=true, -Xmx512m, -Xms512m, -XX:MaxDirectMemorySize=256m, -XX:+HeapDumpOnOutOfMemoryError, -XX:G1HeapRegionSize=4m, -XX:InitiatingHeapOccupancyPercent=30, -XX:G1ReservePercent=15, --module-path=/opt/sonarqube/elasticsearch/lib, --add-modules=jdk.net, --add-modules=ALL-MODULE-PATH, -Djdk.module.main=org.elasticsearch.server]
2025.11.22 13:43:49 INFO es[][o.e.n.Node] Default Locale [en_US]
2025.11.22 13:43:51 INFO es[][o.e.p.PluginsService] loaded module [rest-root]
2025.11.22 13:43:51 INFO es[][o.e.p.PluginsService] loaded module [x-pack-core]
2025.11.22 13:43:51 INFO es[][o.e.p.PluginsService] loaded module [x-pack-redact]
2025.11.22 13:43:51 INFO es[][o.e.p.PluginsService] loaded module [reindex]
2025.11.22 13:43:51 INFO es[][o.e.p.PluginsService] loaded module [x-pack-security]
2025.11.22 13:43:51 INFO es[][o.e.p.PluginsService] loaded module [x-pack-geoip-enterprise-downloader]
2025.11.22 13:43:51 INFO es[][o.e.p.PluginsService] loaded module [x-pack-esql-core]
2025.11.22 13:43:51 INFO es[][o.e.p.PluginsService] loaded module [x-pack-apm-data]
2025.11.22 13:43:51 INFO es[][o.e.p.PluginsService] loaded module [old-lucene-versions]
2025.11.22 13:43:51 INFO es[][o.e.p.PluginsService] loaded module [parent-join]
2025.11.22 13:43:51 INFO es[][o.e.p.PluginsService] loaded module [lang-painless]
2025.11.22 13:43:51 INFO es[][o.e.p.PluginsService] loaded module [counted-keyword]
2025.11.22 13:43:51 INFO es[][o.e.p.PluginsService] loaded module [logsdb]
2025.11.22 13:43:51 INFO es[][o.e.p.PluginsService] loaded module [x-pack-inference]
2025.11.22 13:43:51 INFO es[][o.e.p.PluginsService] loaded module [analysis-common]
2025.11.22 13:43:51 INFO es[][o.e.p.PluginsService] loaded module [dot-prefix-validation]
2025.11.22 13:43:51 INFO es[][o.e.p.PluginsService] loaded module [health-shards-availability]
2025.11.22 13:43:51 INFO es[][o.e.p.PluginsService] loaded module [transport-netty4]
2025.11.22 13:43:51 INFO es[][o.e.p.PluginsService] loaded module [x-pack-otel-data]
2025.11.22 13:43:51 INFO es[][o.e.p.PluginsService] loaded module [aggregations]
2025.11.22 13:43:51 INFO es[][o.e.p.PluginsService] loaded module [apm]
2025.11.22 13:43:52 INFO es[][o.e.e.NodeEnvironment] using [1] data paths, mounts [[/opt/sonarqube/data (/dev/nvme1n1)]], net usable_space [19.4gb], net total_space [19.5gb], types [ext4]
2025.11.22 13:43:52 INFO es[][o.e.e.NodeEnvironment] heap size [512mb], compressed ordinary object pointers [true]
2025.11.22 13:43:53 INFO es[][o.e.n.Node] node name [sonarqube], node ID [JsDMy9e7TNKWCwzq-znMfw], cluster name [sonarqube], roles [transform, data_hot, ml, data_frozen, ingest, data_cold, data, remote_cluster_client, master, data_warm, data_content]
2025.11.22 13:43:56 INFO es[][o.e.i.r.RecoverySettings] using rate limit [40mb] with [default=40mb, read=0b, write=0b, max=0b]
2025.11.22 13:43:57 INFO es[][o.e.f.FeatureService] Registered local node features [desired_node.version_deprecated, features_supported, file_settings, flattened.ignore_above_support, geoip.downloader.database.configuration, get_database_configuration_action.multi_node, health.extended_repository_indicator, knn_retriever_supported, license-trial-independent-version, mapper.boolean_dimension, mapper.flattened.ignore_above_with_arrays_support, mapper.ignore_above_index_level_setting, mapper.index_sorting_on_nested, mapper.keyword_dimension_ignore_above, mapper.keyword_normalizer_synthetic_source, mapper.pass_through_priority, mapper.query_index_mode, mapper.range.null_values_off_by_one_fix, mapper.segment_level_fields_stats, mapper.source.synthetic_source_copy_to_fix, mapper.source.synthetic_source_copy_to_inside_objects_fix, mapper.source.synthetic_source_fallback, mapper.source.synthetic_source_stored_fields_advance_fix, mapper.source.synthetic_source_with_copy_to_and_doc_values_false, mapper.subobjects_auto, mapper.subobjects_auto_fixes, mapper.synthetic_source_keep, mapper.track_ignored_source, mapper.vectors.bbq, mapper.vectors.bit_vectors, mapper.vectors.int4_quantization, put_database_configuration_action.ipinfo, random_reranker_retriever_supported, repositories.supports_usage_stats, rest.capabilities_action, rest.local_only_capabilities, retrievers_supported, routing.boolean_routing_path, routing.multi_value_routing_path, script.hamming, script.term_stats, search.vectors.k_param_supported, security.migration_framework, security.role_mapping_cleanup, security.roles_metadata_flattened, semantic_text.search_inference_id, simulate.component.template.substitutions, simulate.index.template.substitutions, simulate.mapping.validation, simulate.mapping.validation.templates, standard_retriever_supported, stats.include_disk_thresholds, text_similarity_reranker_retriever_composition_supported, text_similarity_reranker_retriever_supported, tsdb.ts_routing_hash_doc_value_parse_byte_ref, unified_highlighter_matched_fields, usage.data_tiers.precalculate_stats]
2025.11.22 13:43:57 INFO es[][o.e.c.m.DataStreamGlobalRetentionSettings] Updated default factory retention to [null]
2025.11.22 13:43:57 INFO es[][o.e.c.m.DataStreamGlobalRetentionSettings] Updated max factory retention to [null]
2025.11.22 13:43:57 INFO es[][o.e.x.s.Security] Security is disabled
2025.11.22 13:43:57 INFO es[][o.e.x.a.APMPlugin] APM ingest plugin is enabled
2025.11.22 13:43:57 INFO es[][o.e.x.c.t.YamlTemplateRegistry] apm index template registry is enabled
2025.11.22 13:43:57 INFO es[][o.e.x.o.OTelPlugin] OTel ingest plugin is enabled
2025.11.22 13:43:57 INFO es[][o.e.x.c.t.YamlTemplateRegistry] OpenTelemetry index template registry is enabled
2025.11.22 13:43:57 INFO es[][o.e.t.a.APM] Sending apm metrics is disabled
2025.11.22 13:43:57 INFO es[][o.e.t.a.APM] Sending apm tracing is disabled
2025.11.22 13:43:58 INFO es[][o.e.t.n.NettyAllocator] creating NettyAllocator with the following configs: [name=unpooled, suggested_max_allocation_size=1mb, factors={es.unsafe.use_unpooled_allocator=null, g1gc_enabled=true, g1gc_region_size=4mb, heap_size=512mb}]
2025.11.22 13:43:58 INFO es[][o.e.d.DiscoveryModule] using discovery type [single-node] and seed hosts providers [settings]
2025.11.22 13:43:59 INFO es[][o.e.n.Node] initialized
2025.11.22 13:43:59 INFO es[][o.e.n.Node] starting ...
2025.11.22 13:43:59 INFO es[][o.e.t.TransportService] publish_address {127.0.0.1:44287}, bound_addresses {127.0.0.1:44287}
2025.11.22 13:43:59 INFO es[][o.e.b.BootstrapChecks] explicitly enforcing bootstrap checks
2025.11.22 13:43:59 INFO es[][o.e.c.c.ClusterBootstrapService] this node is locked into cluster UUID [QinXuBBGQgiFGTR7HnvNfg] and will not attempt further cluster bootstrapping
2025.11.22 13:43:59 INFO es[][o.e.c.s.MasterService] elected-as-master ([1] nodes joined in term 5)[_FINISH_ELECTION_, {sonarqube}{JsDMy9e7TNKWCwzq-znMfw}{T8hxxTEiRdaH09uW_Yd_qA}{sonarqube}{127.0.0.1}{127.0.0.1:44287}{cdfhilmrstw}{8.16.1}{7000099-8518000} completing election], term: 5, version: 22, delta: master node changed {previous [], current [{sonarqube}{JsDMy9e7TNKWCwzq-znMfw}{T8hxxTEiRdaH09uW_Yd_qA}{sonarqube}{127.0.0.1}{127.0.0.1:44287}{cdfhilmrstw}{8.16.1}{7000099-8518000}]}
2025.11.22 13:43:59 INFO es[][o.e.c.s.ClusterApplierService] master node changed {previous [], current [{sonarqube}{JsDMy9e7TNKWCwzq-znMfw}{T8hxxTEiRdaH09uW_Yd_qA}{sonarqube}{127.0.0.1}{127.0.0.1:44287}{cdfhilmrstw}{8.16.1}{7000099-8518000}]}, term: 5, version: 22, reason: Publication{term=5, version=22}
2025.11.22 13:43:59 INFO es[][o.e.c.c.NodeJoinExecutor] node-join: [{sonarqube}{JsDMy9e7TNKWCwzq-znMfw}{T8hxxTEiRdaH09uW_Yd_qA}{sonarqube}{127.0.0.1}{127.0.0.1:44287}{cdfhilmrstw}{8.16.1}{7000099-8518000}] with reason [completing election]
2025.11.22 13:43:59 INFO es[][o.e.h.AbstractHttpServerTransport] publish_address {127.0.0.1:9001}, bound_addresses {127.0.0.1:9001}
2025.11.22 13:43:59 INFO es[][o.e.n.Node] started {sonarqube}{JsDMy9e7TNKWCwzq-znMfw}{T8hxxTEiRdaH09uW_Yd_qA}{sonarqube}{127.0.0.1}{127.0.0.1:44287}{cdfhilmrstw}{8.16.1}{7000099-8518000}{rack_id=sonarqube, xpack.installed=true}
2025.11.22 13:44:00 INFO es[][o.e.l.ClusterStateLicenseService] license [83ed3987-84cd-4e28-a58a-3a6b4cb17939] mode [basic] - valid
2025.11.22 13:44:00 INFO es[][o.e.c.f.AbstractFileWatchingService] starting file watcher ...
2025.11.22 13:44:00 INFO es[][o.e.c.f.AbstractFileWatchingService] file settings service up and running [tid=34]
2025.11.22 13:44:00 INFO es[][o.e.g.GatewayService] recovered [0] indices into cluster_state
2025.11.22 13:44:00 INFO es[][o.e.r.s.FileSettingsService] setting file [/opt/sonarqube/temp/conf/es/operator/settings.json] not found, initializing [file_settings] as empty
2025.11.22 13:44:00 INFO app[][o.s.a.SchedulerImpl] Process[es] is up
2025.11.22 13:44:00 INFO app[][o.s.a.ProcessLauncherImpl] Launch process[WEB_SERVER] from [/opt/sonarqube]: /opt/java/openjdk/bin/java -Djava.awt.headless=true -Dfile.encoding=UTF-8 -Djava.io.tmpdir=/opt/sonarqube/temp -XX:-OmitStackTraceInFastThrow --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED --add-exports=java.base/jdk.internal.ref=ALL-UNNAMED --add-opens=java.base/java.nio=ALL-UNNAMED --add-opens=java.base/sun.nio.ch=ALL-UNNAMED --add-opens=java.management/sun.management=ALL-UNNAMED --add-opens=jdk.management/com.sun.management.internal=ALL-UNNAMED -Xms2048m -Xmx6144m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/opt/sonarqube/temp/ -XX:+UseG1GC -Djava.net.preferIPv4Stack=true -javaagent:/opt/sonarqube/extensions/plugins/sonarqube-community-branch-plugin-1.23.0.jar=web -Dhttp.nonProxyHosts=localhost|127.*|[::1] -cp ./lib/sonar-application-25.1.0.102122.jar:/opt/sonarqube/lib/jdbc/postgresql/postgresql-42.7.4.jar org.sonar.server.app.WebServer /opt/sonarqube/temp/sq-process4740447611220076906properties
2025.11.22 13:44:00 INFO es[][o.e.h.n.s.HealthNodeTaskExecutor] Node [{sonarqube}{JsDMy9e7TNKWCwzq-znMfw}] is selected as the current health node.
13:44:00.547 [main] INFO com.github.mc1arke.sonarqube.plugin.CommunityBranchAgent -- Loading agent
WARNING: A terminally deprecated method in java.lang.System has been called
WARNING: System::setSecurityManager has been called by org.sonar.process.PluginSecurityManager (file:/opt/sonarqube/lib/sonar-application-25.1.0.102122.jar)
WARNING: Please consider reporting this to the maintainers of org.sonar.process.PluginSecurityManager
WARNING: System::setSecurityManager will be removed in a future release
2025.11.22 13:44:01 INFO web[][o.s.p.ProcessEntryPoint] Starting Web Server
2025.11.22 13:44:01 INFO web[][o.s.s.a.TomcatHttpConnectorFactory] Starting Tomcat on port 9000
2025.11.22 13:48:27 INFO app[][o.s.a.SchedulerImpl] Stopping SonarQube
2025.11.22 13:48:27 INFO app[][o.s.a.SchedulerImpl] Sonarqube has been requested to stop
2025.11.22 13:48:27 INFO app[][o.s.a.SchedulerImpl] Stopping [Compute Engine] process...
2025.11.22 13:48:27 INFO app[][o.s.a.SchedulerImpl] Stopping [Web Server] process...
2025.11.22 13:48:28 INFO web[][o.s.p.ProcessEntryPoint] Gracefully stopping process
2025.11.22 13:48:28 INFO web[][o.s.s.app.WebServer] Web Server stopped
2025.11.22 13:48:28 INFO app[][o.s.a.SchedulerImpl] Process[Web Server] is stopped
2025.11.22 13:48:28 INFO app[][o.s.a.SchedulerImpl] Stopping [ElasticSearch] process...
2025.11.22 13:48:28 WARN app[][o.s.a.p.AbstractManagedProcess] Process exited with exit value [ElasticSearch]: 143
2025.11.22 13:48:28 INFO app[][o.s.a.SchedulerImpl] Process[ElasticSearch] is stopped
2025.11.22 13:48:28 INFO app[][o.s.a.SchedulerImpl] SonarQube is stopped