【问题标题】:How can I fix Resource temporarily unavailable error in Rust?如何修复 Rust 中的资源暂时不可用错误?
【发布时间】:2019-07-28 11:02:12
【问题描述】:

这是一个错误日志:

note: Run with `RUST_BACKTRACE=1` environment variable to display a backtrace.
        thread 'arbiter:724dcce3-b3b3-4523-8b02-3b2e9fa035dd:actix-net-worker-62' panicked at 'called `Result::unwrap()` on an `Err` value: Os { code: 11, kind: WouldBlock, message: "Resource temporarily unavailable" }', src/libcore/result.rs:997:5

这是我的服务器设置:

let _ = server::new(move || {
        App::with_state()
            // Enable logger
            .middleware(middleware::Logger::default())
            .resource("/default", |r| HttpResponse::Ok)
    })
    .bind(&localhost_port)
    .unwrap_or_else(|_| panic!("Can not bind to {}", &localhost_port))
    .start();

我确实看过另一个actix 示例,其中includes

.shutdown_timeout(0)    // <- Set shutdown timeout to 0 seconds (default 60s)

但不认为它可以为我解决问题。

在本地运行正常,但是当我在 Ubuntu 16.04 上执行二进制文件时出现此错误。

这是一个相关的问题:https://stackoverflow.com/a/14370767,建议设置一个setting a send timeout with the SO_SNDTIMEO socket option

【问题讨论】:

    标签: rust rust-actix


    【解决方案1】:

    您的问题与 Rust(或 Actix)无关。您的问题是其他一些程序已经在您尝试绑定的同一端口上侦听。您需要确定它是哪个程序,例如:

    sudo netstat -an --program | grep $PORT
    

    (将$PORT 替换为您的端口号),然后终止该程序或使用另一个端口。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-11-21
      • 2017-02-10
      • 2012-03-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多