Skip to content

EXCEPTION_ACCESS_VIOLATION crash on Windows 10. #249

Description

@beatonma
sample-crash.mp4

Sample app here.


It generally seems to occur when navigating away from a screen that contains a video player, so it may have something to do with how the player state is disposed?

This is a typical log - the actual crash point is usually WindowsNativeBridge.nReadVideoFrame and usually mentions NativeVideoPlayer.dll.

# Problematic frame:
# C  [NativeVideoPlayer.dll+0x3adb]

...

Stack: [0x000000d1b7f70000,0x000000d1b8070000],  sp=0x000000d1b806ed90,  free space=1019k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
C  [NativeVideoPlayer.dll+0x2071]

Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
J 2624  io.github.kdroidfilter.composemediaplayer.windows.WindowsNativeBridge.nReadVideoFrame(J[I)Ljava/nio/ByteBuffer; (0 bytes) @ 0x000001d887bdd82d [0x000001d887bdd7c0+0x000000000000006d]
J 2951 c1 io.github.kdroidfilter.composemediaplayer.windows.WindowsVideoPlayerState.processOneFrame(J)Lio/github/kdroidfilter/composemediaplayer/windows/WindowsVideoPlayerState$ProduceOutcome; (762 bytes) @ 0x000001d8805aedfc [0x000001d8805aec40+0x00000000000001bc]
J 2810 c1 io.github.kdroidfilter.composemediaplayer.windows.WindowsVideoPlayerState.produceFrames(Lkotlin/coroutines/Continuation;)Ljava/lang/Object; (1135 bytes) @ 0x000001d880555874 [0x000001d880552340+0x0000000000003534]
J 2811 c1 io.github.kdroidfilter.composemediaplayer.windows.WindowsVideoPlayerState$produceFrames$1.invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object; (28 bytes) @ 0x000001d88055bf44 [0x000001d88055be40+0x0000000000000104]
J 3904 c2 kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(Ljava/lang/Object;)V (124 bytes) @ 0x000001d887c50064 [0x000001d887c50000+0x0000000000000064]
J 3957 c2 kotlinx.coroutines.DispatchedTask.run()V (400 bytes) @ 0x000001d887c5a4bc [0x000001d887c5a080+0x000000000000043c]
J 2843 c1 kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(Lkotlinx/coroutines/scheduling/Task;)V (73 bytes) @ 0x000001d880567b74 [0x000001d880567a60+0x0000000000000114]
J 2710 c1 kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(Lkotlinx/coroutines/scheduling/Task;)V (168 bytes) @ 0x000001d8805275d4 [0x000001d880527160+0x0000000000000474]
j  kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker()V+44
j  kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run()V+1
v  ~StubRoutines::call_stub 0x000001d88753100d

siginfo: EXCEPTION_ACCESS_VIOLATION (0xc0000005), reading address 0x0000000000000000

While recording a video example of the crash I also encountered this. I believe this is the first time I have seen this particular error but it seems like it may be related.

# Problematic frame:
# v  ~StubRoutines::jlong_disjoint_arraycopy

...

Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
C  0x0000023f28aa417c

Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
j  jdk.internal.misc.Unsafe.copyMemory0(Ljava/lang/Object;JLjava/lang/Object;JJ)V+0 java.base@17.0.2
j  jdk.internal.misc.Unsafe.copyMemory(Ljava/lang/Object;JLjava/lang/Object;JJ)V+29 java.base@17.0.2
j  jdk.internal.misc.ScopedMemoryAccess.copyMemoryInternal(Ljdk/internal/misc/ScopedMemoryAccess$Scope;Ljdk/internal/misc/ScopedMemoryAccess$Scope;Ljava/lang/Object;JLjava/lang/Object;JJ)V+32 java.base@17.0.2
j  jdk.internal.misc.ScopedMemoryAccess.copyMemory(Ljdk/internal/misc/ScopedMemoryAccess$Scope;Ljdk/internal/misc/ScopedMemoryAccess$Scope;Ljava/lang/Object;JLjava/lang/Object;JJ)V+12 java.base@17.0.2
j  java.nio.ByteBuffer.putBuffer(ILjava/nio/ByteBuffer;II)V+114 java.base@17.0.2
j  java.nio.ByteBuffer.put(Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer;+100 java.base@17.0.2
j  io.github.kdroidfilter.composemediaplayer.windows.WindowsFrameUtilsKt.copyBgraFrame(Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;III)V+296
J 2538 c1 io.github.kdroidfilter.composemediaplayer.windows.WindowsVideoPlayerState.processOneFrame(J)Lio/github/kdroidfilter/composemediaplayer/windows/WindowsVideoPlayerState$ProduceOutcome; (762 bytes) @ 0x0000023f294c94bc [0x0000023f294c7380+0x000000000000213c]
J 2355 c1 io.github.kdroidfilter.composemediaplayer.windows.WindowsVideoPlayerState.produceFrames(Lkotlin/coroutines/Continuation;)Ljava/lang/Object; (1135 bytes) @ 0x0000023f29452954 [0x0000023f2944f2e0+0x0000000000003674]
J 2357 c1 io.github.kdroidfilter.composemediaplayer.windows.WindowsVideoPlayerState$produceFrames$1.invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object; (28 bytes) @ 0x0000023f29458ebc [0x0000023f29458dc0+0x00000000000000fc]
J 3061 c2 kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(Ljava/lang/Object;)V (124 bytes) @ 0x0000023f30663054 [0x0000023f30663000+0x0000000000000054]
J 3112 c2 kotlinx.coroutines.DispatchedTask.run()V (400 bytes) @ 0x0000023f3066d1b8 [0x0000023f3066cda0+0x0000000000000418]
J 2385 c1 kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(Lkotlinx/coroutines/scheduling/Task;)V (73 bytes) @ 0x0000023f29462c44 [0x0000023f29462b40+0x0000000000000104]
J 2384 c1 kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(Lkotlinx/coroutines/scheduling/Task;)V (168 bytes) @ 0x0000023f2946243c [0x0000023f29461fc0+0x000000000000047c]
j  kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker()V+44
j  kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run()V+1
v  ~StubRoutines::call_stub

siginfo: EXCEPTION_ACCESS_VIOLATION (0xc0000005), reading address 0x0000023f6a498020


Please let me know if you need more information or a full log dump. Thank you for your work on this library.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions