Android API inference crash: SIGABRT in MNN::DeferBufferAllocator::apply() / MNN::Session::resize()
Hi, I am testing MNN Chat on Android as a local OpenAI-compatible API server and I am seeing a reproducible native crash during repeated sequential inference.
The model can stay loaded and idle for several hours without issues. However, after sending 1–2 requests to /v1/chat/completions, MNN Chat sometimes freezes and the whole process exits.
The requests are not concurrent — I always wait until the previous request has fully completed.
Device / environment
Xiaomi 12X (psyche) Android 13 ROM: V816.0.9.0.TLDEUXM ABI: arm64 Package: com.alibaba.mnnllm.android.release Model: Qwen3.5-4B Backend: CPU API: /v1/chat/completions stream: false
Crash
Fatal signal 6 (SIGABRT) Abort message: 'Pointer tag for 0x3f9760004091c000 was truncated'
libc.so (abort) libc.so (free) libMNN.so (MNN::DeferBufferAllocator::apply()) libMNN.so (MNN::Session::resize()) libMNN.so (MNN::Transformer::Llm::forwardRaw(...)) libMNN.so (MNN::Transformer::Llm::generate(...)) libMNN.so (MNN::Transformer::Llm::response(...)) libmnnllmapp.so (mls::LlmSession::ResponseWithHistory(...))
The API stack continues through:
ResponseHandler.processNonStreamGeneration MNNChatService.processLlmGeneration RequestQueueManager.processRequest
After the crash, adb shell pidof com.alibaba.mnnllm.android.release returns no PID, so the whole application process has terminated.
This looks like a native memory-management issue during repeated LLM generation/session resize rather than an Android low-memory kill.
I can attach the full adb logcat and adb logcat -b crash output if useful.
Expected: sequential API requests should remain stable. Actual: repeated inference can trigger SIGABRT inside libMNN.so and terminate the app.
Source: alibaba/MNN