{"record":{"id":"73594126c0803446","repo":"influxdata/influxdb","slug":"multi-thread-alt-runtime-requires-tokio-unstable","errorCode":null,"errorMessage":"multi-thread-alt runtime requires `tokio_unstable`","messagePattern":"multi-thread-alt runtime requires `tokio_unstable`","errorType":"console","errorClass":"std::io::Error","httpStatus":null,"severity":"error","filePath":"influxdb3_clap_blocks/src/tokio.rs","lineNumber":172,"sourceCode":"                }\n\n                /// Creates the tokio runtime builder.\n                pub fn builder_with_name(&self, name: &str) -> Result<::tokio::runtime::Builder, std::io::Error> {\n                    // NOTE: no log macros will work here!\n                    //\n                    // That means use eprintln!() instead of error!() and so on. The log emitter\n                    // requires a running tokio runtime and is initialised after this function.\n\n                    let mut builder = match self.runtime_type {\n                        TokioRuntimeType::MultiThread => tokio::runtime::Builder::new_multi_thread(),\n                        TokioRuntimeType::MultiThreadAlt => {\n                            #[cfg(tokio_unstable)]\n                            {\n                                tokio::runtime::Builder::new_multi_thread()\n                            }\n                            #[cfg(not(tokio_unstable))]\n                            {\n                                return Err(std::io::Error::new(\n                                    std::io::ErrorKind::Other,\n                                    \"multi-thread-alt runtime requires `tokio_unstable`\",\n                                ));\n                            }\n                        }\n                    };\n\n                    // enable subsystems\n                    // - always enable timers\n                    builder.enable_time();\n                    builder.enable_io();\n\n                    // set up proper thread names\n                    let thread_counter = Arc::new(AtomicUsize::new(1));\n                    let name = name.to_owned();\n                    builder.thread_name_fn(move || {\n                        format!(\"InfluxDB 3 Core Tokio {} {}\", name, thread_counter.fetch_add(1, Ordering::SeqCst))\n                    });","sourceCodeStart":154,"sourceCodeEnd":190,"githubUrl":"https://github.com/influxdata/influxdb/blob/d28e26e048401c53cbb98cf2d6ab0cf1e98048ca/influxdb3_clap_blocks/src/tokio.rs#L154-L190","documentation":"influxdb3's CLI blocks expose a runtime-type option; multi-thread-alt selects tokio's experimental alternate multi-thread scheduler. That scheduler is only compiled when tokio is built with RUSTFLAGS=\"--cfg tokio_unstable\"; on ordinary builds (including official releases) the matching cfg arm returns this io::Error at startup, before any runtime is constructed, so the process refuses to start.","triggerScenarios":"Passing --runtime-type multi-thread-alt (or the equivalent config/env setting) to an influxdb3 binary compiled without the tokio_unstable cfg.","commonSituations":"Copying performance-tuning flags from internal or experimental documentation into a stock release config; upgrading influxdb3 while keeping an experimental flag that the new build does not support.","solutions":["Remove the option or set runtime type back to the default multi-thread","If you genuinely need the alt scheduler, rebuild from source with RUSTFLAGS=\"--cfg tokio_unstable\" cargo build --release (experimental, unsupported)","Check the flag's help text on your binary for the supported values"],"exampleFix":"# before\ninfluxdb3 serve --runtime-type multi-thread-alt ...\n\n# after\ninfluxdb3 serve ...\n","handlingStrategy":"validation","validationCode":"# only use experimental schedulers on builds that support them\nif [ \"$RUNTIME_TYPE\" = \"multi-thread-alt\" ]; then\n  # official builds are not compiled with tokio_unstable\n  echo \"unsupported runtime type on this build; falling back\" >&2\n  RUNTIME_TYPE=\"multi-thread\"\nfi\n","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Do not carry experimental runtime flags into production configs","Keep deployment configs version-pinned and review them after influxdb3 upgrades","If you build from source and need alt scheduling, set RUSTFLAGS=\"--cfg tokio_unstable\" consistently in CI"],"tags":["tokio","runtime","cli","config","tokio-unstable"],"backgroundTag":"tokio-unstable-feature-missing","analyzedSha":"d28e26e048401c53cbb98cf2d6ab0cf1e98048ca","analyzedAt":"2026-08-16T19:53:34.623Z","schemaVersion":2},"datasetVersion":"2026-08-16T23:17:17.608Z"}