-
Notifications
You must be signed in to change notification settings - Fork 18
Segmentation fault #23
Description
mAX, [09/07/2023 18:04]
Последняя весрия из исходников выдает вот такое[supervisor:92944] ipc message from child: Err(InvalidMarkerRead(Error { kind: UnexpectedEof, message: "failed to fill whole buffer" })) [supervisor:92944] subprocess finished: Signaled(Pid(92945), SIGABRT, false)в дебаге вот этот unwrap() падал
https://git.picodata.io/picodata/picodata/picodata/-/blob/master/src/main.rs#L172
mAX, [10/07/2023 12:56]
да, ошибка где-то в либе, немного исследовал проблему
подумал может со старой версией tarantool-module “0.6.2” не работает.. обновил до “1.1.0”в новой версии десериализация перечеслений сломалась
похоже она проходит с serde_plain в тестах, но если взять yaml, то уже не работает
Проблема вот в этой строке
let tmp = <&str>::deserialize(deserializer)?;
Заменил<&str>наStringи yaml дисериализаетсяПростейшая демка работает с picodata, start_service вызывается спамит в консоль
Но как только импортирую пакет с криптографией ring, то уже падаетuse ring::aead::MAX_TAG_LEN; // импорт приводит к падению #[no_mangle] pub extern "C" fn start_service( _: ::tarantool::tuple::FunctionCtx, _: ::tarantool::tuple::FunctionArgs ) -> std::os::raw::c_int { println!("RUST IS ALIVE"); 0 }вероятно ring статически инициализирует себе что-то
ну и естественно при импорте в сошке появляется много новых символов
Но старый тарантул с этим всем отлично работает
mAX, [10/07/2023 13:45]
т.к. падает в NSProcessInfo arguments проверил такое..для теста получаю аргументы запущенного процесса
println!("args {:?}", std::env::args());в оригинальном tarantool все нормально, печатает
args Args { inner: [ "/opt/homebrew/Cellar/tarantool/2.11.0_1/bin/tarantool", "app/app.lua", ], }в picodata падает
Segmentation fault code: SEGV_ACCERR addr: 0x0 context: 0x105dfa758 siginfo: 0x105dfa6f0 Current time: 1688985877 Please file a bug at https://github.com/tarantool/tarantool/issues Attempting backtrace... Note: since the server has already crashed, this may fail as well #1 0x425f000101419a14 in crash_signal_cb+4782541329290756228 #2 0xd334000183b32a24 in _sigtramp+15218789040791748664 #3 0x9710001098eed40 in std::env::args_os::h96ff0542fae51d42+680325018709655732 #4 0xfb788001098eec74 in std::env::args::h1590a8f54bc20489+18120373838213546012 #5 0x1a5c0001098da298 in start_service+1899393142843506744 #6 0xe17c800101571b24 in module_func_call+16248002293134262448 #7 0xfd0f0001015d1378 in func_c_call+18234793416246427716 #8 0xaf240001015d18c8 in func_call_no_access_check+12620212055798972624 #9 0x673480010167ee08 in lbox_func_call+7436709622183887068 #10 0x64010001017099f4 in lj_BC_FUNCC+7206040878769504300 #11 0x8d23000101722f6c in lj_cf_dofile+10169972383532712028 #12 0x6e560001017099f4 in lj_BC_FUNCC+7950542192169189420 #13 0x3169000101710de8 in lua_pcall+3560376980413087916 #14 0xc96b80010117b3ac in tlua::object::imp::call::h2ba83543273cd945+14513834961619911104 #15 0xf311000101369050 in tlua::object::Call::into_call_with::h2fe43b06c7c7f001+17514780425820569744 #1[supervisor:56412] ipc message from child: None [supervisor:56412] subprocess finished: Signaled(Pid(56414), SIGABRT, false) Process finished with exit code 6