
Skill
doris-debug-deployment
troubleshoot Apache Doris deployment failures
Description
Use for Doris FE/BE startup failures, port conflicts, priority_networks misrouting, meta_dir corruption, and ADD/DROP BACKEND issues.
SKILL.md
Deployment & Startup
Causes
| ID | Cause | Evidence | Source anchor |
|---|---|---|---|
| A | Port conflict | BE/FE fail to bind; Address already in use | brpc/server.cpp, doris_main.cpp |
| B | priority_networks misconfig | brpc connection refused / wrong interface | config.cpp |
| C | meta_dir / storage_root_path not writable | Permission denied / No such file at startup | olap/olap_meta.cpp |
| D | FE metadata corruption | FE fails to start after crash; meta/image.* errors | Image.java, BDBJEJournal.java |
| E | Mixed version cluster | Protocol mismatch in thrift/brpc between FE-BE | be/src/agent/, heartbeat |
| F | DNS / hostname resolution | UnknownHostException, BE heartbeat to wrong address | Env.java frontend host check |
10 min triage
# FE status
curl -s "http://$FE:8030/api/bootstrap"
curl -s "http://$FE:8030/api/health"
# BE status
curl -s "http://$BE:8040/api/health"
# Port check
ss -tlnp | grep -E "8030|8040|8060|9030"
-- Cluster membership
SHOW FRONTENDS\G
SHOW BACKENDS\G
Cause A — Port conflict
Default ports (from fe/conf/fe.conf and be/conf/be.conf):
| Service | Port | Config key |
|---|---|---|
| FE HTTP | 8030 | http_port |
| BE HTTP | 8040 | webserver_port |
| BE brpc | 8060 | brpc_port |
| FE MySQL | 9030 | query_port |
| FE Edit log | 9010 | edit_log_port |
# Kill stale process on target port
fuser -k 8060/tcp # BE brpc
# Then restart BE
Cause B — priority_networks
The most common cause of "BE shows Alive=true but brpc fails." priority_networks tells BE which network interface to bind brpc to.
# be.conf — match ONE subnet exactly
priority_networks = 10.0.0.0/24
Check what interface BE actually bound:
curl -s "http://$BE:8040/api/health" | grep -o '"ip":"[^"]*"'
Validation: the IP in SHOW BACKENDS must be reachable from every FE and every other BE on port 8060.
Cause D — FE metadata recovery
# Check FE meta directory
ls -la fe/doris-meta/image/
ls -la fe/doris-meta/bdb/
# If bdb is corrupt and this is a follower/observer:
# 1. Remove the bad FE from the cluster
# 2. Wipe doris-meta/
# 3. Re-add as a new follower: ALTER SYSTEM ADD FOLLOWER "host:9010"
Never remove doris-meta/ on the last healthy Master FE.
Source
fe/conf/fe.conf— port defaultsbe/src/common/config.cpp—priority_networksbe/src/service/doris_main.cpp— BE startupfe/.../master/Env.java— FE bootstrapfe/.../journal/bdbje/BDBJEJournal.java
More skills from the doris-skills repository
View all 14 skillsdoris-architecture-advisor
design Apache Doris data architectures
Jul 12ArchitectureData EngineeringData PipelineDatabasedoris-best-practices
optimize Apache Doris table design and clusters
Jul 12DatabaseEngineeringPerformancedoris-debug
diagnose Apache Doris production issues
Jul 25DebuggingMonitoringOperationsdoris-debug-cloud
debug Apache Doris cloud mode issues
Jul 25CloudDebuggingPerformancedoris-debug-compaction
resolve Apache Doris compaction lag
Jul 25DatabaseDebuggingPerformancedoris-debug-data-lake
debug Apache Doris data lake connectivity
Jul 25Data EngineeringDatabaseDebugging
More from Apache Software Foundation
View publisherdatafusion-python
write Apache DataFusion Python code
datafusion-python
Jul 12Data AnalysisPythonSQLbydbql
generate and execute BanyanDB BydbQL queries
skywalking-banyandb
Jul 12AnalyticsDatabaseSQLcompiling
compile and build BanyanDB projects
skywalking-banyandb
Jul 12BuildEngineeringgh-pull-request
create GitHub pull requests for BanyanDB
skywalking-banyandb
Jul 12GitHubPull Requestsvendor-update
update Go and Node.js vendor dependencies
skywalking-banyandb
Jul 12GoNode.jscayenne-cgen
generate Cayenne entity Java classes
cayenne
Jul 12Data ModelingJavaORM