Bug: rog-control-center crashes at startup — console-subscriber panics because --cfg tokio_unstable is not committed anywhere in the repo
Platform: Linux. Reproduced with the official Arch Linux extra package (rog-control-center 6.4.0-2), built from the release tarball.
Behavior
The GUI aborts on every launch (SIGABRT → core dump):
thread 'main' panicked at .../console-subscriber-0.5.0/src/lib.rs:266:9:
task tracing requires Tokio to be built with RUSTFLAGS="--cfg tokio_unstable"!
asusd and the asusctl CLI are unaffected — only the GUI crashes.
Root cause
console-subscriber ^0.5.0 is an unconditional workspace dependency (Cargo.toml, 6.4.0 and main).
rog-control-center/src/main.rs calls console_subscriber::init() unconditionally (line 100 in 6.4.0, line 94 on main). That function panics if Tokio was not compiled with --cfg tokio_unstable.
- The required cfg is not committed anywhere in the repo:
.cargo/config.toml → only a linker + resolver setting, no rustflags
Makefile → cargo build $(ARGS), no RUSTFLAGS
distro-packaging/PKGBUILD → make build, no RUSTFLAGS
.github/workflows/* → no RUSTFLAGS/tokio_unstable anywhere
So any build of the source tarball without a specially-set RUSTFLAGS env produces a GUI that cannot start — including the project's own release.yml build path, which is how Arch and the OGC repo both build it.
Suggested fix
Commit the flag in .cargo/config.toml so every Cargo build gets it by default:
[build]
rustflags = ["--cfg", "tokio_unstable"]
Implemented in PR #362 and verified locally: rebuilding 6.4.0 with this flag starts the GUI correctly; without it, it crashes at startup.
Alternative considered
- Gate
console-subscriber behind a feature that distro builds leave off, or
- Use the non-panicking
console_subscriber::Builder API.
Committing the cfg is the simplest robust fix, and matches what the code already requires.
Workaround for users
Build with RUSTFLAGS="--cfg tokio_unstable". On Arch: rebuild the asusctl PKGBUILD with that line added in build(). (This is also how the crash was confirmed and the fix verified.)
Bug:
rog-control-centercrashes at startup —console-subscriberpanics because--cfg tokio_unstableis not committed anywhere in the repoPlatform: Linux. Reproduced with the official Arch Linux
extrapackage (rog-control-center 6.4.0-2), built from the release tarball.Behavior
The GUI aborts on every launch (SIGABRT → core dump):
asusdand theasusctlCLI are unaffected — only the GUI crashes.Root cause
console-subscriber ^0.5.0is an unconditional workspace dependency (Cargo.toml,6.4.0andmain).rog-control-center/src/main.rscallsconsole_subscriber::init()unconditionally (line 100 in6.4.0, line 94 onmain). That function panics if Tokio was not compiled with--cfg tokio_unstable..cargo/config.toml→ only a linker + resolver setting, norustflagsMakefile→cargo build $(ARGS), no RUSTFLAGSdistro-packaging/PKGBUILD→make build, no RUSTFLAGS.github/workflows/*→ noRUSTFLAGS/tokio_unstableanywhereSo any build of the source tarball without a specially-set
RUSTFLAGSenv produces a GUI that cannot start — including the project's ownrelease.ymlbuild path, which is how Arch and the OGC repo both build it.Suggested fix
Commit the flag in
.cargo/config.tomlso every Cargo build gets it by default:Implemented in PR #362 and verified locally: rebuilding
6.4.0with this flag starts the GUI correctly; without it, it crashes at startup.Alternative considered
console-subscriberbehind a feature that distro builds leave off, orconsole_subscriber::BuilderAPI.Committing the cfg is the simplest robust fix, and matches what the code already requires.
Workaround for users
Build with
RUSTFLAGS="--cfg tokio_unstable". On Arch: rebuild theasusctlPKGBUILD with that line added inbuild(). (This is also how the crash was confirmed and the fix verified.)