You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

单节点部署CnosDB写入数据偶发报错:Valid node is not enough

单节点CnosDB 2.4.1偶发写入报错:Valid node is not enough, need: 1, but found: 0

在单节点模式部署CnosDB 2.4.1版本(修订版本9b25565)时,偶发遇到写入数据失败,报错信息如下:

422 Unprocessable Entity, details: {"error_code":"030053","error_message":"Valid node is not enough, need: 1, but found: 0"}

该问题复现不稳定,且与已修复的Stack Overflow问题表现不同,希望了解是否有其他用户遇到类似问题及可能原因。

复现步骤

  1. 启动服务:
docker run -d --name dfosssi-main -p 12007:8902 -v /data/DF_OSS_SI_main/conf/:/etc/cnosdb/ -v /data/DF_OSS_SI_main/data/:/var/  cnosdb/cnosdb:community-latest-20240627 cnosdb run -c 8 -m 32 --config /etc/cnosdb/cnosdb.conf -M singleton
  1. 创建表并插入数据:
cnosdb-cli -P 12007
CnosDB CLI v2.3.0
Input arguments: Args { host: "localhost", port: 12007, user: "root", password: None, private_key_path: None, database: "public", tenant: "cnosdb", target_partitions: None, stream_trigger_interval: None, data_path: None, file: [], rc: None, format: Table, quiet: false, write_line_protocol: None, precision: None }
public ❯ CREATE TABLE air001 (visibility DOUBLE,temperature DOUBLE,pressure DOUBLE,TAGS(station));
Query took 0.004 seconds.
public ❯
INSERT INTO air001 (TIME, station, visibility, temperature, pressure) VALUES (1667456411000000000, 'XiaoMaiDao1', 56, 69, 411);

执行插入后触发报错,完整栈追踪:

422 Unprocessable Entity, details: {"error_code":"030053","error_message":"Valid node is not enough, need: 1, but found: 0"}

Stack backtrace:
   0: anyhow::error::<impl anyhow::Error>::msg
   1: anyhow::__private::format_err
   2: client::ctx::SessionContext::sql::{{closure}}
   3: client::exec::exec_and_print::{{closure}}
   4: client::exec::exec_from_repl::{{closure}}
   5: cnosdb_cli::main::{{closure}}
   6: cnosdb_cli::main
   7: std::sys_common::backtrace::__rust_begin_short_backtrace
   8: std::rt::lang_start::{{closure}}
   9: core::ops::function::impls::<impl core::ops::function::FnOnce<A> for &F>::call_once
             at /rustc/39f2657d1101b50f9b71ae460b762d330cc8426b/library/core/src/ops/function.rs:287:13
  10: std::panicking::try::do_call
             at /rustc/39f2657d1101b50f9b71ae460b762d330cc8426b/library/std/src/panicking.rs:487:40
  11: std::panicking::try
             at /rustc/39f2657d1101b50f9b71ae460b762d330cc8426b/library/std/src/panicking.rs:451:19
  12: std::panic::catch_unwind
             at /rustc/39f2657d1101b50f9b71ae460b762d330cc8426b/library/std/src/panic.rs:140:14
  13: std::rt::lang_start_internal::{{closure}}
             at /rustc/39f2657d1101b50f9b71ae460b762d330cc8426b/library/std/src/rt.rs:148:48
  14: std::panicking::try::do_call
             at /rustc/39f2657d1101b50f9b71ae460b762d330cc8426b/library/std/src/panicking.rs:487:40
  15: std::panicking::try
             at /rustc/39f2657d1101b50f9b71ae460b762d330cc8426b/library/std/src/panicking.rs:451:19
  16: std::panic::catch_unwind
             at /rustc/39f2657d1101b50f9b71ae460b762d330cc8426b/library/std/src/panic.rs:140:14
  17: std::rt::lang_start_internal
             at /rustc/39f2657d1101b50f9b71ae460b762d330cc8426b/library/std/src/rt.rs:148:20
  18: main
  19: __libc_start_main
             at /usr/src/debug/glibc-2.17-c758a686/csu/../csu/libc-start.c:266
  20: <unknown>

配置文件内容

[global]
node_id = 1001
host = "dfosssi-main"
cluster_name = 'cluster_xxx'
store_metrics = true


[deployment]
# mode = 'query_tskv'
# cpu = 8
# memory = 16

[meta]
service_addr = ["127.0.0.1:8901"]
report_time_interval = "30s"

[query]
max_server_connections = 10240
query_sql_limit = "16777216B"  # 16 * 1024 * 1024
write_sql_limit = "167772160B" # 160 * 1024 * 1024
auth_enabled = false
read_timeout = "300000ms"
write_timeout = "300000ms"
stream_trigger_cpu = 1
stream_executor_cpu = 2
sql_record_timeout = "10s"

[storage]
path = '/var/lib/cnosdb/data'
strict_write = false

max_datablock_size = "100KB"

[wal]
enabled = true
path = '/var/lib/cnosdb/wal'


[cache]


[log]
level = 'info'
path = '/var/log/cnosdb'
[security]
# [security.tls_config]
# certificate = "/etc/config/tls/server.crt"
# private_key = "/etc/config/tls/server.key"

[service]
http_listen_port = 8902
grpc_listen_port = 8903
grpc_enable_gzip = false
flight_rpc_listen_port = 8904
tcp_listen_port = 8905
vector_listen_port = 8906
enable_report = true


[cluster]
# raft_logs_to_keep = 5000
# using_raft_replication = false

[hinted_off]
enable = true
path = '/var/lib/cnosdb/hh'
threads = 3

内容的提问来源于stack exchange,提问作者Baker X

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 11:50:14