influxdata/influxdb · error · std::io::Error
disabling LIFO slot requires `tokio_unstable`
Error message
disabling LIFO slot requires `tokio_unstable`
What it means
The tokio runtime builder block in influxdb3_clap_blocks maps the disable-lifo option to builder.disable_lifo_slot(), which only exists when tokio is compiled with RUSTFLAGS="--cfg tokio_unstable". On a normal build the cfg(not(tokio_unstable)) arm returns this io::Error during runtime construction, so startup fails before the server runs.
Source
Thrown at influxdb3_clap_blocks/src/tokio.rs:207
format!("InfluxDB 3 Core Tokio {} {}", name, thread_counter.fetch_add(1, Ordering::SeqCst))
});
// worker thread count
let num_threads = match self.num_threads {
None => std::thread::available_parallelism()
.map_err(|e| std::io::Error::new(std::io::ErrorKind::Other, e))?,
Some(n) => n,
};
builder.worker_threads(num_threads.get());
if self.disable_lifo == Some(true) {
#[cfg(tokio_unstable)]
{
builder.disable_lifo_slot();
}
#[cfg(not(tokio_unstable))]
{
return Err(std::io::Error::new(
std::io::ErrorKind::Other,
"disabling LIFO slot requires `tokio_unstable`",
));
}
}
if let Some(x) = self.event_interval {
builder.event_interval(x.get());
}
if let Some(x) = self.global_queue_interval {
builder.global_queue_interval(x.get());
}
if let Some(x) = self.max_blocking_threads {
builder.max_blocking_threads(x.get());
}
View on GitHub (pinned to d28e26e048)
Solutions
- Remove the disable-lifo option from the command line/config
- If you need it, rebuild from source with RUSTFLAGS="--cfg tokio_unstable" cargo build --release (experimental, unsupported)
- Prefer supported tuning knobs (worker-threads, event-interval, global-queue-interval) instead
Example fix
# before influxdb3 serve --disable-lifo-slot ... # after influxdb3 serve ...
Defensive patterns
Strategy: validation
Validate before calling
# reject experimental tokio knobs unless the build supports them if [ "$DISABLE_LIFO" = "true" ]; then echo "--disable-lifo-slot requires a tokio_unstable build; ignoring" >&2 DISABLE_LIFO="" fi
Prevention
- Treat disable-lifo as benchmark-only tooling, not a production knob
- Prefer supported tuning options (worker-threads, event-interval, global-queue-interval)
- Document which build flags each environment's binary was compiled with
When it happens
Trigger: Passing --disable-lifo-slot (or setting disable_lifo=true in config/env) on an influxdb3 binary compiled without the tokio_unstable cfg.
Common situations: Latency-tuning flags carried over from an internal benchmark build; release binaries that never enable unstable tokio features.
Related errors
- multi-thread-alt runtime requires `tokio_unstable`
- You've incorrectly specified a cluster-id for InfluxDB 3 Cor
- must be formatted as "key=value"
- request trigger execution cancelled
- num_columns_in_parallel should be above zero
AI-assisted analysis of influxdata/influxdb@d28e26e048 (2026-08-16).
Data as JSON: /api/errors/47390ec550cc906f.
Report an issue: GitHub.