使用CPython FFI的Rust程序默默地被杀死

时间:2019-01-09 19:00:57

标签: rust ffi cpython

我有一个Rust程序,它在没有任何日志原因的情况下静默退出。多次成功调用同一方法后,就会发生这种情况。我看到的最后一条日志是进行FFI调用之后的日志。 FFI通话返回后,我没有收到日志。

use cpython;
use cpython::ObjectProtocol;
use cpython::PyResult;
fn is_complete(&self, check: bool) -> Result<bool, PyModuleError> {
    let gil = cpython::Python::acquire_gil();
    let py = gil.python();
    debug!("Calling complete"); //This is the last log
    let res = self
        .py_complete
        .call_method(py, "complete", (check,), None)
        .expect("No method complete on python module")
        .extract::<bool>(py).unwrap();
    if res {
        debug!("Returning true"); //This does not appear
        Ok(true)                
    }
    else {
        debug!("Returning false"); //This does not appear
        Ok(false)
    }
}

Python模块确实返回一个值,因为我在那里也有调试日志以确认。

我尝试使用RUST_BACKTRACE=1,但徒劳。

0 个答案:

没有答案