[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