Eugeny / russh

Rust SSH client & server library
https://docs.rs/russh
870 stars 91 forks source link

Error with CryptoVec #305

Open pythops opened 3 months ago

pythops commented 3 months ago

Hi, I used the russh library to build a TUI with ratatui, inspired by your example, and from time to time I get those errors:

Failed to send data: Err(CryptoVec { p: 0xffffb8001920, size: 25, capacity: 32 })
Failed to send data: Err(CryptoVec { p: 0xffffb8029ef0, size: 0, capacity: 1 })
Failed to send data: Err(CryptoVec { p: 0xffffb8000d00, size: 25, capacity: 32 })
Failed to send data: Err(CryptoVec { p: 0xffffb8029ef0, size: 0, capacity: 1 })
Failed to send data: Err(CryptoVec { p: 0xffffb8024aa0, size: 25, capacity: 32 })
Failed to send data: Err(CryptoVec { p: 0xffffb8029ef0, size: 0, capacity: 1 })

When those errors start to happen then the server can not take any new request.

It happens in the Handler when trying to send the data.

...
        futures::executor::block_on(async move {
            let result = handle.data(channel_id, data).await;
            if result.is_err() {
                eprintln!("Failed to send data: {:?}", result);
            }
        });
...

I do not know why they suddenly happen.

Have you seen this before ?