You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android R车机ScheduledThreadPoolExecutor报Thread::park failed异常

Android R车载端ScheduledThreadPoolExecutor偶发SIGABRT崩溃问题

在Android R车载设备上使用ScheduledThreadPoolExecutor实现周期性任务时,偶发native signal 6异常,相关信息如下:

代码实现

private static class NamedThreadFactory implements ThreadFactory {
    private final AtomicInteger mThreadNumber = new AtomicInteger(1);
    private final String mNamePrefix;

    NamedThreadFactory(String namePrefix) {
        mNamePrefix = namePrefix + "-thread-";
    }

    @Override
    public Thread newThread(Runnable r) {
        final Thread thread = new Thread(r, mNamePrefix + mThreadNumber.getAndIncrement());
        return thread;
    }
}

private ScheduledThreadPoolExecutor mPopDataRefreshExecutor =
    new ScheduledThreadPoolExecutor(1, new NamedThreadFactory("refreshPopData"));

mPopDataRefreshExecutor.scheduleAtFixedRate(new PopDataRefresher(),
    TimeUnit.MINUTES.toMillis(5),
    TimeUnit.MINUTES.toMillis(10),
    TimeUnit.MILLISECONDS);

崩溃基础信息

  • 系统Revision: 0
  • CPU ABI: arm
  • 崩溃时间戳: 1912-01-03 13:32:13+0800
  • 进程线程信息: pid 9441, tid 11146, 线程名RefreshPopData-,所属进程com.demo,uid 1010065
  • 崩溃信号: signal 6 (SIGABRT), code -1 (SI_QUEUE)
  • 终止原因: Failed to park: Invalid argument

崩溃时寄存器快照:

r0  00000000  r1  00002b8a  r2  00000006  r3  bb98eb00
r4  bb98eb14  r5  bb98eaf8  r6  000024e1  r7  0000016b
r8  bb98eb10  r9  bb98eb00  r10 bb98eb30  r11 bb98eb20
ip  00002b8a  sp  bb98ead0  lr  f1fa158f  pc  f1fa15a2

崩溃调用栈

#00 pc 000545a2  /apex/com.android.runtime/lib/bionic/libc.so (abort+166) (BuildId: ced36bae419d8d9438cf6f91c6feea37)
  #01 pc 003a0f7d  /apex/com.android.runtime/lib/libart.so (art::Runtime::Abort(char const*)+1980) (BuildId: b1931727e2af1deddf3d63be01bc9e06)
  #02 pc 000085e1  /system/lib/libbase.so (android::base::LogMessage::~LogMessage()+488) (BuildId: d8f9959168f480e25050a2b6cf313736)
  #03 pc 003cff97  /apex/com.android.runtime/lib/libart.so (art::Thread::Park(bool, long long)+1570) (BuildId: b1931727e2af1deddf3d63be01bc9e06)
  #04 pc 003417e9  /apex/com.android.runtime/lib/libart.so (art::Unsafe_park(_JNIEnv*, _jobject*, unsigned char, long long)+440) (BuildId: b1931727e2af1deddf3d63be01bc9e06)
  #05 pc 000edfc9  /system/framework/arm/boot.oat (art_jni_trampoline+96) (BuildId: 16090464612e7610f7b849552ef4a978eef87738)
  #06 pc 0024e283  /system/framework/arm/boot.oat (java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos+818) (BuildId: 16090464612e7610f7b849552ef4a978eef87738)
  #07 pc 003914f7  /system/framework/arm/boot.oat (java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take+326) (BuildId: 16090464612e7610f7b849552ef4a978eef87738)
  #08 pc 003600dd  /system/framework/arm/boot.oat (sun.nio.fs.UnixPath.getParent [DEDUPED]+36) (BuildId: 16090464612e7610f7b849552ef4a978eef87738)
  #09 pc 0034b265  /system/framework/arm/boot.oat (java.util.concurrent.ThreadPoolExecutor.getTask+428) (BuildId: 16090464612e7610f7b849552ef4a978eef87738)
  #10 pc 0034c9ff  /system/framework/arm/boot.oat (java.util.concurrent.ThreadPoolExecutor.runWorker+222) (BuildId: 16090464612e7610f7b849552ef4a978eef87738)
  #11 pc 0034a0a7  /system/framework/arm/boot.oat (java.util.concurrent.ThreadPoolExecutor$Worker.run+54) (BuildId: 16090464612e7610f7b849552ef4a978eef87738)
  #12 pc 001da039  /system/framework/arm/boot.oat (java.lang.Thread.run+64) (BuildId: 16090464612e7610f7b849552ef4a978eef87738)
  #13 pc 000e4bc5  /apex/com.android.runtime/lib/libart.so (art_quick_invoke_stub_internal+68) (BuildId: b1931727e2af1deddf3d63be01bc9e06)
  #14 pc 0045e97b  /apex/com.android.runtime/lib/libart.so (art_quick_invoke_stub+250) (BuildId: b1931727e2af1deddf3d63be01bc9e06)
  #15 pc 000ecffd  /apex/com.android.runtime/lib/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+160) (BuildId: b1931727e2af1deddf3d63be01bc9e06)
  #16 pc 0039ab77  /apex/com.android.runtime/lib/libart.so (art::(anonymous namespace)::InvokeWithArgArray(art::ScopedObjectAccessAlreadyRunnable const&, art::ArtMethod*, art::(anonymous namespace)::ArgArray*, art::JValue*, char const*)+54) (BuildId: b1931727e2af1deddf3d63be01bc9e06)
  #17 pc 0039b881  /apex/com.android.runtime/lib/libart.so (art::InvokeVirtualOrInterfaceWithJValues(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, _jmethodID*, jvalue const*)+300) (BuildId: b1931727e2af1deddf3d63be01bc9e06)
  #18 pc 003d0e73  /apex/com.android.runtime/lib/libart.so (art::Thread::CreateCallback(void*)+982) (BuildId: b1931727e2af1deddf3d63be01bc9e06)
  #19 pc 0009c5e7  /apex/com.android.runtime/lib/bionic/libc.so (__pthread_start(void*)+20) (BuildId: ced36bae419d8d9438cf6f91c6feea37)
  #20 pc 00055a97  /apex/com.android.runtime/lib/bionic/libc.so (__start_thread+30) (BuildId: ced36bae419d8d9438cf6f91c6feea37)

已开展排查

  • 为定位问题添加调试日志后,使用相同APK在同一设备上复测,问题未再复现。
  • 查阅AOSP中Thread::park对应源码,确认崩溃点对应futex wait操作返回EINVAL错误,但无法明确Failed to park: Invalid argument的具体触发场景,需要对应的排查方向与修复建议。

内容的提问来源于stack exchange,提问作者Deson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 21:45:38