Pure-Rust asynchronous SSH library, both client and server

#22 Compiling thrussh sometimes manages to kill the rust compiler

Opened by fogti on February 14, 2021
fogti on February 14, 2021

Happens pretty non-deterministic. Hard to debug.

pmeunier on February 14, 2021

Strange. Do you compile it with plain cargo build, or with more sophisticated things? Does it happen both in release and debug mode?

fogti on February 14, 2021

It happend multiple times, with really different errors (first one was an Rust ICE, other one was a SIGSEGV while compiling pijul via default.nix). I’m just leaving this for now until it becomes more frequent, it’s not a big problem, as repeating-until-it-works has helped in the past (sometimes cargo update was needed to fix more complicated stuff). It just seems that some parts of the thrussh code effective in crashing rust. Normally, this should be catched via crater runs (as thrussh, at least v0.20.2, is on crates.io). Happend mostly in release mode.

pmeunier on February 16, 2021

I get segfaults sometimes when compiling very large rust expressions (it seems flakes tend to make that even worse, unlike in the advertisements).

It even became annoying to the point that I resurrected my Carnix (the ancestor to crate2nix) at some point, just to compile and deploy the Nest.

My understanding is that this is probably just a stack overflow (or a failure of Nix to allocate on the heap).