rfxgen: Random crash on macOS (arm64)

It seems there could be some issue with miniaudio (or maybe CoreAudio) on macOS Ventura (arm64).

It’s a random issue that crashes the program.

Here the crash trace:

Process 5979 launched: '/Users/oskar/Desktop/rfxgen.app/Contents/MacOS/rfxgen' (arm64)
2023-09-19 20:14:21.663618+0200 rfxgen[5979:514122] [Window] Warning: Window GLFWWindow 0x1004058d0 ordered front from a non-active application and may order beneath the active application's windows.
2023-09-19 20:14:21.665867+0200 rfxgen[5979:514122] [Window] Warning: Window GLFWWindow 0x1004058d0 ordered front from a non-active application and may order beneath the active application's windows.
2023-09-19 20:14:21.701028+0200 rfxgen[5979:514122] [plugin] AddInstanceForFactory: No factory registered for id <CFUUID 0x600000204dc0> F8BB1C28-BAE8-11D6-9C31-00039315CD46
Process 5979 stopped
* thread #8, name = 'com.apple.audio.IOThread.client', stop reason = EXC_BAD_ACCESS (code=1, address=0x0)
    frame #0: 0x00000001000a3688 rfxgen`ma_linear_resampler_process_pcm_frames_f32_upsample + 352
rfxgen`ma_linear_resampler_process_pcm_frames_f32_upsample:
->  0x1000a3688 <+352>: ldr    s2, [x12, x9]
    0x1000a368c <+356>: ldr    s3, [x22, x9]
    0x1000a3690 <+360>: fmul   s3, s1, s3
    0x1000a3694 <+364>: fmul   s2, s0, s2
(lldb) bt
* thread #8, name = 'com.apple.audio.IOThread.client', stop reason = EXC_BAD_ACCESS (code=1, address=0x0)
  * frame #0: 0x00000001000a3688 rfxgen`ma_linear_resampler_process_pcm_frames_f32_upsample + 352
    frame #1: 0x0000000100075fa4 rfxgen`ma_linear_resampler_process_pcm_frames_f32 + 40
    frame #2: 0x0000000100075f38 rfxgen`ma_linear_resampler_process_pcm_frames + 56
    frame #3: 0x00000001000a390c rfxgen`ma_resampling_backend_process__linear + 32
    frame #4: 0x00000001000764a8 rfxgen`ma_resampler_process_pcm_frames + 80
    frame #5: 0x0000000100078924 rfxgen`ma_data_converter_process_pcm_frames__resample_only + 48
    frame #6: 0x0000000100078420 rfxgen`ma_data_converter_process_pcm_frames + 100
    frame #7: 0x00000001000be34c rfxgen`ReadAudioBufferFramesInMixingFormat + 224
    frame #8: 0x0000000100099f00 rfxgen`OnSendAudioDataToDevice + 224
    frame #9: 0x00000001000a2958 rfxgen`ma_device__on_data_inner + 104
    frame #10: 0x00000001000a28a8 rfxgen`ma_device__on_data + 500
    frame #11: 0x00000001000a261c rfxgen`ma_device__handle_data_callback + 280
    frame #12: 0x000000010006b030 rfxgen`ma_device__read_frames_from_client + 116
    frame #13: 0x000000010006aac0 rfxgen`ma_device_handle_backend_data_callback + 192
    frame #14: 0x00000001000a0390 rfxgen`ma_on_output__coreaudio + 200
    frame #15: 0x000000013480a59c
    frame #16: 0x00000001349065ac
    frame #17: 0x000000013480e89c
    frame #18: 0x00000001a6c8294c
    frame #19: 0x00000001a6c8088c
    frame #20: 0x00000001a6de3574
    frame #21: 0x00000001a49a7fa8
(lldb)

@mackron any idea about this issue?

About this issue

  • Original URL
  • State: closed
  • Created 9 months ago
  • Comments: 16 (6 by maintainers)

Most upvoted comments

I did a quick test using CMake and generated an Xcode project. I got what is maybe a different crash this time. And here definitely a NULL pointer:

Screenshot 2023-09-20 at 12 26 11

But the question is why that entire struct is zero of course.

Here are the values asked for at the time of this crash:

inputFramesToProcessThisIteration	480
outputFramesProcessedThisIteration	480

Some more values if that helps (pResampler->lpf):

Screenshot 2023-09-20 at 12 38 05

@oskarnp In case you try to compile it, please note that an VS2022 project is provided in projects directory, also CMake (despite not tested by me). And you also have a plain Makefile in src directory. You should call the Make with:

make PLATFORM=PLATFORM_DESKTOP PROJECT_NAME=rfxgen PROJECT_SOURCE_FILES=rfxgen.c -B