[vlc-devel] Regression: VLC master segfaults at startup on OSX
Marvin Scholz
epirat07 at gmail.com
Fri Jan 18 17:47:38 CET 2019
On 18 Jan 2019, at 16:50, Devin Heitmueller wrote:
> Pulled the latest master tonight, and found that VLC hits a
> segmentation fault on OSX, even when just running the application with
> no command line arguments.
>
> Did a git bisect, and came down to the following patch:
>
> commit e4d4a57831e75561ee7a1af3c39584803ba61794
> Author: Rémi Denis-Courmont <remi at remlab.net>
> Date: Tue Jan 15 18:39:10 2019 +0200
>
> filesystem: fix invalid conversions in vlc_scandir()
>
> I’m compiling on MacOS 10.13.5 with Xcode 9.4.1.
This is caused due to qsort_r on BSD having a different argument
order than on linux and the upcoming posix standard.
We have not yet agreed on a good way to workaround this, see:
https://mailman.videolan.org/pipermail/vlc-devel/2018-November/121891.html
and
https://mailman.videolan.org/pipermail/vlc-devel/2019-January/122206.html
>
> Devin
>
> * thread #1, queue = 'com.apple.main-thread', stop reason =
> EXC_BAD_ACCESS (code=EXC_I386_GPFLT)
> frame #0: 0x00007fff5f4606b3
> libsystem_platform.dylib`_platform_strcmp + 19
> libsystem_platform.dylib`_platform_strcmp:
> -> 0x7fff5f4606b3 <+19>: movzbq (%rdi), %rax
> 0x7fff5f4606b7 <+23>: movzbq (%rsi), %r8
> 0x7fff5f4606bb <+27>: incq %rdi
> 0x7fff5f4606be <+30>: incq %rsi
> Target 0: (vlc-osx-static) stopped.
> (lldb) bt
> error: libarclite_macosx.a(arclite.o) failed to load objfile for
> /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/arc/libarclite_macosx.a
> * thread #1, queue = 'com.apple.main-thread', stop reason =
> EXC_BAD_ACCESS (code=EXC_I386_GPFLT)
> * frame #0: 0x00007fff5f4606b3
> libsystem_platform.dylib`_platform_strcmp + 19
> frame #1: 0x00007fff5f201ea9 libsystem_c.dylib`_qsort + 728
> frame #2: 0x0000000100149697
> libvlccore.dylib`vlc_loaddir(dir=0x00000001005d1d10,
> namelist=0x00007ffeefbfea50, select=<unavailable>,
> compar=(liblua_plugin.dylib`file_compare at vlc.c:195)) at
> filesystem.c:164 [opt]
> frame #3: 0x000000010014977f
> libvlccore.dylib`vlc_scandir(dirname=<unavailable>,
> namelist=0x00007ffeefbfea50, select=(liblua_plugin.dylib`file_select
> at vlc.c:181), compar=(liblua_plugin.dylib`file_compare at vlc.c:195))
> at filesystem.c:195 [opt]
> frame #4: 0x0000000107c5cda8
> liblua_plugin.dylib`vlc_sd_probe_Open(obj=0x00000001005cf060) at
> vlc.c:550 [opt]
> frame #5: 0x00000001000e3312 libvlccore.dylib`vlc_module_load at
> modules.c:167 [opt]
> frame #6: 0x00000001000e32bc
> libvlccore.dylib`vlc_module_load(obj=<unavailable>,
> capability="services probe", name="", strict=false,
> probe=(libvlccore.dylib`generic_start at modules.c:316)) at
> modules.c:244 [opt]
> frame #7: 0x000000010014b6cb
> libvlccore.dylib`vlc_probe(obj=<unavailable>, capability="services
> probe", pcount=0x00007ffeefbfecb8) at probe.c:43 [opt]
> frame #8: 0x000000010011fa24
> libvlccore.dylib`vlc_sd_GetNames(obj=<unavailable>,
> pppsz_longnames=0x00007ffeefbfeda0, pp_categories=0x00007ffeefbfed98)
> at services_discovery.c:63 [opt]
> frame #9: 0x0000000108b1d507
> libmacosx_plugin.dylib`-[VLCMainWindow
> reloadSidebar](self=0x00000001005a79e0, _cmd=<unavailable>) at
> VLCMainWindow.m:299 [opt]
> frame #10: 0x0000000108b1c647
> libmacosx_plugin.dylib`-[VLCMainWindow
> awakeFromNib](self=0x00000001005a79e0, _cmd=<unavailable>) at
> VLCMainWindow.m:167 [opt]
> frame #11: 0x00007fff373472a9 CoreFoundation`-[NSSet
> makeObjectsPerformSelector:] + 249
> frame #12: 0x00007fff348ac7bd AppKit`-[NSIBObjectData
> nibInstantiateWithOwner:options:topLevelObjects:] + 1594
> frame #13: 0x00007fff348a3991 AppKit`loadNib + 435
> frame #14: 0x00007fff348a2eb5 AppKit`+[NSBundle(NSNibLoading)
> _loadNibFile:nameTable:options:withZone:ownerBundle:] + 696
> frame #15: 0x00007fff34ad8aba
> AppKit`+[NSBundle(NSNibLoadingInternal)
> _loadNibFile:externalNameTable:options:withZone:] + 150
> frame #16: 0x00007fff34ad8893 AppKit`-[NSWindowController
> loadWindow] + 322
> frame #17: 0x00007fff348ebcf5 AppKit`-[NSWindowController window]
> + 84
> frame #18: 0x0000000108aade88
> libmacosx_plugin.dylib`OpenIntf(p_this=0x000000010043f920) at
> VLCMain.m:99 [opt]
> frame #19: 0x00000001000e3312 libvlccore.dylib`vlc_module_load at
> modules.c:167 [opt]
> frame #20: 0x00000001000e32bc
> libvlccore.dylib`vlc_module_load(obj=<unavailable>,
> capability="interface", name="", strict=true,
> probe=(libvlccore.dylib`generic_start at modules.c:316)) at
> modules.c:244 [opt]
> frame #21: 0x00000001000e97bf
> libvlccore.dylib`intf_Create(playlist=0x000000010043c930,
> chain=0x0000000000000000) at interface.c:104 [opt]
> frame #22: 0x00000001000e9ba8
> libvlccore.dylib`libvlc_InternalAddIntf(libvlc=0x000000010030cdf0,
> name=<unavailable>) at interface.c:223 [opt]
> frame #23: 0x00000001000a87fc
> libvlc.dylib`libvlc_add_intf(p_instance=<unavailable>,
> name=0x0000000000000000) at playlist.c:43 [opt]
> frame #24: 0x0000000100003784 vlc-osx-static`main(i_argc=0,
> ppsz_argv=0x00007ffeefbff968) at darwinvlc.m:285 [opt]
> frame #25: 0x00007fff5f152015 libdyld.dylib`start + 1
>
> ---
> Devin Heitmueller - LTN Global Communications
> dheitmueller at ltnglobal.com
>
>
>
>
> _______________________________________________
> vlc-devel mailing list
> To unsubscribe or modify your subscription options:
> https://mailman.videolan.org/listinfo/vlc-devel
More information about the vlc-devel
mailing list