AD
Тут такой момент: в java пакете catboost при использовании достаточно большого батча (300 документов, 15 признаков) после нескольких сотен итераций программа падает с SIGSEGV. Причиной оказался код освобождения памяти в ai_catboost_CatBoostJNIImpl.cpp:
Y_SCOPE_EXIT(jenv, &catFeatureMatrixRowObjects, &catFeatureMatrixRows) {Если закомментировать этот участок, то SIGSEGV не возникает, но память, соответственно, не очищается. Хотелось бы как-то исправить эту ошибку, не вызывая мемори лик. Возможно ли узнать ваше мнение, почему такой баг при ReleaseIntArrayElements вообще может происходить? Заранее спасибо!
const auto size = catFeatureMatrixRows.size();
for (size_t i = 0; i < size; ++i) {
jenv->ReleaseIntArrayElements(
catFeatureMatrixRowObjects[i],
const_cast<jint*>(reinterpret_cast<const jint*>(catFeatureMatrixRows[i].data())),
0);
}
};