单节点部署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问题表现不同,希望了解是否有其他用户遇到类似问题及可能原因。
复现步骤
- 启动服务:
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
- 创建表并插入数据:
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
相关产品推荐
相关产品推荐

