Программа Rust с использованием CPython FFI молча убивается - PullRequest
0 голосов
/ 09 января 2019

У меня есть программа 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, но тщетно.

...