Skip to content

Segfaults on macOS ARM #2322

@maxlund

Description

@maxlund

Hi!

Getting some crashes on macOS ARM (MBP M1 Pro), which we believe happens when parsing MXF files from Avid Media Composer (i.e. they can be audio, video, image, or pure data files). Example log:

Crashed Thread:        42

Exception Type:        EXC_BAD_ACCESS (SIGSEGV)
Exception Codes:       KERN_INVALID_ADDRESS at 0x0000000000000025
Exception Codes:       0x0000000000000001, 0x0000000000000025

Termination Reason:    Namespace SIGNAL, Code 11 Segmentation fault: 11
Terminating Process:   exc handler [25968]

Thread 42 Crashed:
0   libmediainfo.0.dylib          	       0x382f2d554 MediaInfoLib::Reader_File::Format_Test(MediaInfoLib::MediaInfo_Internal*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t>>) + 808
1   libmediainfo.0.dylib          	       0x382b657b4 MediaInfoLib::MediaInfo_Internal::Entry() + 19188
2   libmediainfo.0.dylib          	       0x382b609e0 MediaInfoLib::MediaInfo_Internal::Open(std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t>> const&) + 504
3   libmediainfo.0.dylib          	       0x382fd55dc MediaInfo_Open + 176
4   libffi.dylib                  	       0x1a2af5050 ffi_call_SYSV + 80

We're calling MediaInfo from Python via pymediainfo:

import platform

import pymediainfo
from pymediainfo import MediaInfo

print(f"{pymediainfo.__version__}")
print(f"macOS {platform.mac_ver()}")
print(MediaInfo._get_library())

prints:

7.0.1
macOS ('15.0.1', ('', '', ''), 'arm64')
(<CDLL '/Users/maxlund/pymediainfo-test/.venv/lib/python3.10/site-packages/pymediainfo/libmediainfo.0.dylib', handle 65874810 at 0x122263d30>, 105553140273472, '24.12', (24, 12))

I downloaded libmediainfo via homebrew, I see that it's a later version:

print(MediaInfo._get_library("/opt/homebrew/Cellar/libmediainfo/25.04/lib/libmediainfo.0.dylib"))
-> (<CDLL '/opt/homebrew/Cellar/libmediainfo/25.04/lib/libmediainfo.0.dylib', handle 65874830 at 0x133723ac0>, 105553151484000, '25.04', (25, 4))

Think anything be fixed by changing to that version?
More logs from all the crashes we've seen (so far):

Thread 36 Crashed:
0   libmediainfo.0.dylib          	       0x344d5d554 MediaInfoLib::Reader_File::Format_Test(MediaInfoLib::MediaInfo_Internal*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t>>) + 808
1   libmediainfo.0.dylib          	       0x3449957b4 MediaInfoLib::MediaInfo_Internal::Entry() + 19188
2   libmediainfo.0.dylib          	       0x3449909e0 MediaInfoLib::MediaInfo_Internal::Open(std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t>> const&) + 504
3   libmediainfo.0.dylib          	       0x344e055dc MediaInfo_Open + 176
Thread 27 Crashed:
0   libmediainfo.0.dylib          	       0x38fd6d554 MediaInfoLib::Reader_File::Format_Test(MediaInfoLib::MediaInfo_Internal*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t>>) + 808
1   libmediainfo.0.dylib          	       0x38f9a57b4 MediaInfoLib::MediaInfo_Internal::Entry() + 19188
2   libmediainfo.0.dylib          	       0x38f9a09e0 MediaInfoLib::MediaInfo_Internal::Open(std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t>> const&) + 504
3   libmediainfo.0.dylib          	       0x38fe155dc MediaInfo_Open + 176
4   libffi.dylib                  	       0x1a2af5050 ffi_call_SYSV + 80
Thread 24 Crashed:
0   libmediainfo.0.dylib          	       0x359d21554 MediaInfoLib::Reader_File::Format_Test(MediaInfoLib::MediaInfo_Internal*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t>>) + 808
1   libmediainfo.0.dylib          	       0x3599597b4 MediaInfoLib::MediaInfo_Internal::Entry() + 19188
2   libmediainfo.0.dylib          	       0x3599549e0 MediaInfoLib::MediaInfo_Internal::Open(std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t>> const&) + 504
3   libmediainfo.0.dylib          	       0x359dc95dc MediaInfo_Open + 176
Thread 35 Crashed:
0   libsystem_kernel.dylib        	       0x196aba5d0 __pthread_kill + 8
1   libsystem_pthread.dylib       	       0x196af2c20 pthread_kill + 288
2   libsystem_c.dylib             	       0x1969ffa30 abort + 180
3   libsystem_malloc.dylib        	       0x19690fdc4 malloc_vreport + 896
4   libsystem_malloc.dylib        	       0x196913430 malloc_report + 64
5   libsystem_malloc.dylib        	       0x19692d494 find_zone_and_free + 528
6   libmediainfo.0.dylib          	       0x40d739938 MediaInfoLib::File__Analyze::Stream_Prepare(MediaInfoLib::stream_t, unsigned long) + 1408
7   libmediainfo.0.dylib          	       0x40dae2c94 MediaInfoLib::File_Mxf::Streams_Finish_Essence(unsigned int, ZenLib::uint128) + 1196
8   libmediainfo.0.dylib          	       0x40dae1b74 MediaInfoLib::File_Mxf::Streams_Finish_Track(ZenLib::uint128) + 156
9   libmediainfo.0.dylib          	       0x40dae1878 MediaInfoLib::File_Mxf::Streams_Finish_Package(ZenLib::uint128) + 152
10  libmediainfo.0.dylib          	       0x40dae0e24 MediaInfoLib::File_Mxf::Streams_Finish_ContentStorage(ZenLib::uint128) + 144
11  libmediainfo.0.dylib          	       0x40dae0504 MediaInfoLib::File_Mxf::Streams_Finish_Preface(ZenLib::uint128) + 128
12  libmediainfo.0.dylib          	       0x40dad96cc MediaInfoLib::File_Mxf::Streams_Finish() + 604
13  libmediainfo.0.dylib          	       0x40d70ec7c MediaInfoLib::File__Analyze::ForceFinish(char const*) + 1064
14  libmediainfo.0.dylib          	       0x40daf1898 MediaInfoLib::File_Mxf::Read_Buffer_AfterParsing() + 476
15  libmediainfo.0.dylib          	       0x40d70e5b8 MediaInfoLib::File__Analyze::Open_Buffer_Continue_Loop() + 444
16  libmediainfo.0.dylib          	       0x40d70d934 MediaInfoLib::File__Analyze::Open_Buffer_Continue(unsigned char const*, unsigned long) + 1344
17  libmediainfo.0.dylib          	       0x40d70ff20 MediaInfoLib::File__Analyze::Open_Buffer_Finalize(bool) + 312
18  libmediainfo.0.dylib          	       0x40d7c194c MediaInfoLib::MediaInfo_Internal::Open_Buffer_Finalize() + 52
19  libmediainfo.0.dylib          	       0x40db86b7c MediaInfoLib::Reader_File::Format_Test_PerParser_Continue(MediaInfoLib::MediaInfo_Internal*) + 3372
20  libmediainfo.0.dylib          	       0x40db85ce0 MediaInfoLib::Reader_File::Format_Test_PerParser(MediaInfoLib::MediaInfo_Internal*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t>> const&) + 1104
21  libmediainfo.0.dylib          	       0x40db856c8 MediaInfoLib::Reader_File::Format_Test(MediaInfoLib::MediaInfo_Internal*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t>>) + 1180
22  libmediainfo.0.dylib          	       0x40d7bd7b4 MediaInfoLib::MediaInfo_Internal::Entry() + 19188
23  libmediainfo.0.dylib          	       0x40d7b89e0 MediaInfoLib::MediaInfo_Internal::Open(std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t>> const&) + 504
24  libmediainfo.0.dylib          	       0x40dc2d5dc MediaInfo_Open + 176

Any assistance is much appreciated.
Thanks for all the great work!

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