Skip to content

mars.framework崩溃(Mars MessageDB SQLite page cache EXC_BAD_ACCESS(APPLE-IOS-JJ)) #539

Description

@Omgmaple

 我们在iOS端抓到了一个崩溃,APPLE-IOS-JJ 目前 1 次、release 1.5.5+267。完整 native 调用链全部位于 WFChatClient.framework:
MessageQueue::RunLoop -> LongLinkTaskManager::__OnResponse -> ModifyUserSettingPublishCallback::onSuccess -> MessageDB::UpdateUserSettings -> wfsqlite3_step -> pcache1FetchStage2。

现象

iOS production / com.fchat.foxchat@1.5.5+267 最近 5 小时新增:

Sentry:APPLE-IOS-JJ

异常:EXC_BAD_ACCESS / KERN_INVALID_ADDRESS at 0x16

事件数:1 次 fatal

环境:iPhone18,2 / iOS 26.5.1

关键 native 链路:

ModifyUserSettingPublishCallback::onSuccess → MessageDB::UpdateUserSettings → RecyclableStatement::executeInsert → wfsqlite3_step → sqlite3VdbeExec → getPageNormal → pcache1FetchStage2

初步判断

Mars/WFChatClient 在更新用户设置时访问 SQLite page cache 发生非法内存访问。可能涉及数据库连接或 statement 已释放、并发关闭/写入、page cache 损坏,或 SDK 内部 use-after-free。

ai分析后说这是 WildFire MessageDB/内置 SQLite page cache 的无效地址访问,业务层没有可直接修改的 frame。 需要Mars 内部:让 MessageDB/DB2 的所有入口统一进入一条串行数据库队列,包括 business.o、stn_callback.o、UI 查询、事务以及关闭操作;statement 创建、执行、销毁必须全部在该队列完成。

麻烦给mars.framework做下修复

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions