Could you provide us with the sample? (MissingSample)
You can create a sample clip using the commands mentioned above (ffmpeg and mkvtoolnix). If that is not convenient, I can generate one and attach here. Please, let me know.
Ah indeed I can reproduce with a forged sample. I might have screwed up when testing with an already created (but quite longer) sample with linked files.
../../modules/demux/mkv/virtual_segment.cpp:445:9: runtime error: member access within null pointer of type 'struct chapter_item_c'ASAN:DEADLYSIGNAL===================================================================31232==ERROR: AddressSanitizer: SEGV on unknown address 0x000000000000 (pc 0x7fdf7bb0c525 bp 0x7fdf6a4d6860 sp 0x7fdf6a4d6820 T22) [#0](https://code.videolan.org/videolan/vlc/-/issues/0) 0x7fdf7bb0c524 in virtual_segment_c::UpdateCurrentToChapter(stream_t&) ../../modules/demux/mkv/virtual_segment.cpp:445 [#1](https://code.videolan.org/videolan/vlc/-/issues/1) 0x7fdf7bcc4188 in Demux ../../modules/demux/mkv/mkv.cpp:707 [#2](https://code.videolan.org/videolan/vlc/-/issues/2) 0x7fdfb58f11f3 in demux_Demux ../../include/vlc_demux.h:295 [#3](https://code.videolan.org/videolan/vlc/-/issues/3) 0x7fdfb58f5c65 in MainLoopDemux ../../src/input/input.c:572 [#4](https://code.videolan.org/videolan/vlc/-/issues/4) 0x7fdfb58f740b in MainLoop ../../src/input/input.c:719 [#5](https://code.videolan.org/videolan/vlc/-/issues/5) 0x7fdfb58f5639 in Run ../../src/input/input.c:508 [#6](https://code.videolan.org/videolan/vlc/-/issues/6) 0x7fdfb3b79493 in start_thread (/lib/x86_64-linux-gnu/libpthread.so.0+0x7493) [#7](https://code.videolan.org/videolan/vlc/-/issues/7) 0x7fdfb38bbace in __clone (/lib/x86_64-linux-gnu/libc.so.6+0xe8ace)AddressSanitizer can not provide additional info.SUMMARY: AddressSanitizer: SEGV ../../modules/demux/mkv/virtual_segment.cpp:445 in virtual_segment_c::UpdateCurrentToChapter(stream_t&)Thread T22 created by T2 here: [#0](https://code.videolan.org/videolan/vlc/-/issues/0) 0x7fdfb6589f59 in __interceptor_pthread_create (/usr/lib/x86_64-linux-gnu/libasan.so.3+0x30f59) [#1](https://code.videolan.org/videolan/vlc/-/issues/1) 0x7fdfb5a4569a in vlc_clone_attr ../../src/posix/thread.c:488 [#2](https://code.videolan.org/videolan/vlc/-/issues/2) 0x7fdfb5a4587c in vlc_clone ../../src/posix/thread.c:500 [#3](https://code.videolan.org/videolan/vlc/-/issues/3) 0x7fdfb58f2a9d in input_Start ../../src/input/input.c:183 [#4](https://code.videolan.org/videolan/vlc/-/issues/4) 0x7fdfb5853ac2 in PlayItem ../../src/playlist/thread.c:227 [#5](https://code.videolan.org/videolan/vlc/-/issues/5) 0x7fdfb5855f2a in Next ../../src/playlist/thread.c:468 [#6](https://code.videolan.org/videolan/vlc/-/issues/6) 0x7fdfb5856133 in Thread ../../src/playlist/thread.c:493 [#7](https://code.videolan.org/videolan/vlc/-/issues/7) 0x7fdfb3b79493 in start_thread (/lib/x86_64-linux-gnu/libpthread.so.0+0x7493)Thread T2 created by T0 here: [#0](https://code.videolan.org/videolan/vlc/-/issues/0) 0x7fdfb6589f59 in __interceptor_pthread_create (/usr/lib/x86_64-linux-gnu/libasan.so.3+0x30f59) [#1](https://code.videolan.org/videolan/vlc/-/issues/1) 0x7fdfb5a4569a in vlc_clone_attr ../../src/posix/thread.c:488 [#2](https://code.videolan.org/videolan/vlc/-/issues/2) 0x7fdfb5a4587c in vlc_clone ../../src/posix/thread.c:500 [#3](https://code.videolan.org/videolan/vlc/-/issues/3) 0x7fdfb5851fa6 in playlist_Activate ../../src/playlist/thread.c:55 [#4](https://code.videolan.org/videolan/vlc/-/issues/4) 0x7fdfb585a1ff in playlist_Create ../../src/playlist/engine.c:279 [#5](https://code.videolan.org/videolan/vlc/-/issues/5) 0x7fdfb584f00a in intf_GetPlaylist ../../src/interface/interface.c:145 [#6](https://code.videolan.org/videolan/vlc/-/issues/6) 0x7fdfb584f288 in libvlc_InternalAddIntf ../../src/interface/interface.c:203 [#7](https://code.videolan.org/videolan/vlc/-/issues/7) 0x7fdfb5a4244f in system_ConfigureDbus ../../src/posix/specific.c:52 [#8](https://code.videolan.org/videolan/vlc/-/issues/8) 0x7fdfb5a42caa in system_Configure ../../src/posix/specific.c:160 [#9](https://code.videolan.org/videolan/vlc/-/issues/9) 0x7fdfb5804e65 in libvlc_InternalInit ../../src/libvlc.c:275 [#10](https://code.videolan.org/videolan/vlc/-/issues/10) 0x7fdfb62922a3 in libvlc_new ../../lib/core.c:59 [#11](https://code.videolan.org/videolan/vlc/-/issues/11) 0x55ae6babb995 in main ../../bin/vlc.c:230 [#12](https://code.videolan.org/videolan/vlc/-/issues/12) 0x7fdfb37f32e0 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x202e0)==31232==ABORTING
The NULL dereference is fixed, however it now asserts:
vlc: ../../modules/demux/mkv/mkv.cpp:878: mkv_track_t::~mkv_track_t(): Assertion `p_es == NULL' failed.Thread 21 "vlc" received signal SIGABRT, Aborted.[Switching to Thread 0x7fffafe1c700 (LWP 20540)]__GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:5151 ../sysdeps/unix/sysv/linux/raise.c: No such file or directory.(gdb) back[#0](https://code.videolan.org/videolan/vlc/-/issues/0) __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51[#1](https://code.videolan.org/videolan/vlc/-/issues/1) 0x00007ffff40ef42a in __GI_abort () at abort.c:89[#2](https://code.videolan.org/videolan/vlc/-/issues/2) 0x00007ffff40e6e67 in __assert_fail_base (fmt=<optimized out>, assertion=assertion@entry=0x7fffac273060 "p_es == NULL", file=file@entry=0x7fffac272660 "../../modules/demux/mkv/mkv.cpp", line=line@entry=878, function=function@entry=0x7fffac2736c0 "mkv_track_t::~mkv_track_t()") at assert.c:92[#3](https://code.videolan.org/videolan/vlc/-/issues/3) 0x00007ffff40e6f12 in __GI___assert_fail (assertion=0x7fffac273060 "p_es == NULL", file=0x7fffac272660 "../../modules/demux/mkv/mkv.cpp", line=878, function=0x7fffac2736c0 "mkv_track_t::~mkv_track_t()") at assert.c:101[#4](https://code.videolan.org/videolan/vlc/-/issues/4) 0x00007fffac19f4f5 in mkv_track_t::~mkv_track_t (this=0x615000272980, __in_chrg=<optimized out>) at ../../modules/demux/mkv/mkv.cpp:878[#5](https://code.videolan.org/videolan/vlc/-/issues/5) 0x00007fffac04751a in std::default_delete<mkv_track_t>::operator() (this=0x6040003eda78, __ptr=0x615000272980) at /usr/include/c++/6/bits/unique_ptr.h:76[#6](https://code.videolan.org/videolan/vlc/-/issues/6) 0x00007fffac0466cb in std::unique_ptr<mkv_track_t, std::default_delete<mkv_track_t> >::~unique_ptr (this=0x6040003eda78, __in_chrg=<optimized out>) at /usr/include/c++/6/bits/unique_ptr.h:239[#7](https://code.videolan.org/videolan/vlc/-/issues/7) 0x00007fffac045a6d in std::pair<unsigned int const, std::unique_ptr<mkv_track_t, std::default_delete<mkv_track_t> > >::~pair (this=0x6040003eda70, __in_chrg=<optimized out>) at /usr/include/c++/6/bits/stl_pair.h:194[#8](https://code.videolan.org/videolan/vlc/-/issues/8) 0x00007fffac045ad9 in __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<unsigned int const, std::unique_ptr<mkv_track_t, std::default_delete<mkv_track_t> > > > >::destroy<std::pair<unsigned int const, std::unique_ptr<mkv_track_t, std::default_delete<mkv_track_t> > > > (this=0x6170000d74b0, __p=0x6040003eda70) at /usr/include/c++/6/ext/new_allocator.h:124[#9](https://code.videolan.org/videolan/vlc/-/issues/9) 0x00007fffac044d1c in std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<unsigned int const, std::unique_ptr<mkv_track_t, std::default_delete<mkv_track_t> > > > > >::destroy<std::pair<unsigned int const, std::unique_ptr<mkv_track_t, std::default_delete<mkv_track_t> > > > (__a=..., __p=0x6040003eda70) at /usr/include/c++/6/bits/alloc_traits.h:487[#10](https://code.videolan.org/videolan/vlc/-/issues/10) 0x00007fffac04336d in std::_Rb_tree<unsigned int, std::pair<unsigned int const, std::unique_ptr<mkv_track_t, std::default_delete<mkv_track_t> > >, std::_Select1st<std::pair<unsigned int const, std::unique_ptr<mkv_track_t, std::default_delete<mkv_track_t> > > >, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, std::unique_ptr<mkv_track_t, std::default_delete<mkv_track_t> > > > >::_M_destroy_node (this=0x6170000d74b0, __p=0x6040003eda50) at /usr/include/c++/6/bits/stl_tree.h:567[#11](https://code.videolan.org/videolan/vlc/-/issues/11) 0x00007fffac03eb78 in std::_Rb_tree<unsigned int, std::pair<unsigned int const, std::unique_ptr<mkv_track_t, std::default_delete<mkv_track_t> > >, std::_Select1st<std::pair<unsigned int const, std::unique_ptr<mkv_track_t, std::default_delete<mkv_track_t> > > >, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, std::unique_ptr<mkv_track_t, std::default_delete<mkv_track_t> > > > >::_M_drop_node (this=0x6170000d74b0, __p=0x6040003eda50) at /usr/include/c++/6/bits/stl_tree.h:575[#12](https://code.videolan.org/videolan/vlc/-/issues/12) 0x00007fffac039427 in std::_Rb_tree<unsigned int, std::pair<unsigned int const, std::unique_ptr<mkv_track_t, std::default_delete<mkv_track_t> > >, std::_Select1st<std::pair<unsigned int const, std::unique_ptr<mkv_track_t, std::default_delete<mkv_track_t> > > >, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, std::unique_ptr<mkv_track_t, std::default_delete<mkv_track_t> > > > >::_M_erase (this=0x6170000d74b0, __x=0x6040003eda50) at /usr/include/c++/6/bits/stl_tree.h:1640[#13](https://code.videolan.org/videolan/vlc/-/issues/13) 0x00007fffac0393df in std::_Rb_tree<unsigned int, std::pair<unsigned int const, std::unique_ptr<mkv_track_t, std::default_delete<mkv_track_t> > >, std::_Select1st<std::pair<unsigned int const, std::unique_ptr<mkv_track_t, std::default_delete<mkv_track_t> > > >, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, std::unique_ptr<mkv_track_t, std::default_delete<mkv_track_t> > > > >::_M_erase (this=0x6170000d74b0, __x=0x6040003eda90) at /usr/include/c++/6/bits/stl_tree.h:1638[#14](https://code.videolan.org/videolan/vlc/-/issues/14) 0x00007fffac034f19 in std::_Rb_tree<unsigned int, std::pair<unsigned int const, std::unique_ptr<mkv_track_t, std::default_delete<mkv_track_t> > >, std::_Select1st<std::pair<unsigned int const, std::unique_ptr<mkv_track_t, std::default_delete<mkv_track_t> > > >, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, std::unique_ptr<mkv_track_t, std::default_delete<mkv_track_t> > > > >::~_Rb_tree (this=0x6170000d74b0, __in_chrg=<optimized out>) at /usr/include/c++/6/bits/stl_tree.h:873[#15](https://code.videolan.org/videolan/vlc/-/issues/15) 0x00007fffac0341b7 in std::map<unsigned int, std::unique_ptr<mkv_track_t, std::default_delete<mkv_track_t> >, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, std::unique_ptr<mkv_track_t, std::default_delete<mkv_track_t> > > > >::~map (this=0x6170000d74b0, __in_chrg=<optimized out>) at /usr/include/c++/6/bits/stl_map.h:96[#16](https://code.videolan.org/videolan/vlc/-/issues/16) 0x00007fffabff92d9 in matroska_segment_c::~matroska_segment_c (this=0x6170000d7480, __in_chrg=<optimized out>) at ../../modules/demux/mkv/matroska_segment.cpp:67[#17](https://code.videolan.org/videolan/vlc/-/issues/17) 0x00007fffabff9320 in matroska_segment_c::~matroska_segment_c (this=0x6170000d7480, __in_chrg=<optimized out>) at ../../modules/demux/mkv/matroska_segment.cpp:83[#18](https://code.videolan.org/videolan/vlc/-/issues/18) 0x00007fffac0ee0a5 in demux_sys_t::~demux_sys_t (this=0x618000074c80, __in_chrg=<optimized out>) at ../../modules/demux/mkv/demux.cpp:439[#19](https://code.videolan.org/videolan/vlc/-/issues/19) 0x00007fffac0ee740 in demux_sys_t::~demux_sys_t (this=0x618000074c80, __in_chrg=<optimized out>) at ../../modules/demux/mkv/demux.cpp:450[#20](https://code.videolan.org/videolan/vlc/-/issues/20) 0x00007fffac1919e0 in Close (p_this=0x61400009a500) at ../../modules/demux/mkv/mkv.cpp:273[#21](https://code.videolan.org/videolan/vlc/-/issues/21) 0x00007ffff611fbab in generic_stop (func=0x7fffac19158a <Close(vlc_object_t*)>, ap=0x7fffafe1ba90) at ../../src/modules/modules.c:329[#22](https://code.videolan.org/videolan/vlc/-/issues/22) 0x00007ffff611f935 in vlc_module_unload (obj=0x61400009a500, module=0x60b00000d610, deinit=0x7ffff611faa3 <generic_stop>) at ../../src/modules/modules.c:308[#23](https://code.videolan.org/videolan/vlc/-/issues/23) 0x00007ffff611fc74 in module_unneed (obj=0x61400009a500, module=0x60b00000d610) at ../../src/modules/modules.c:343[#24](https://code.videolan.org/videolan/vlc/-/issues/24) 0x00007ffff6197257 in demux_DestroyDemux (demux=0x61400009a500) at ../../src/input/demux.c:158[#25](https://code.videolan.org/videolan/vlc/-/issues/25) 0x00007ffff6201733 in vlc_stream_Delete (s=0x61400009a500) at ../../src/input/stream.c:138[#26](https://code.videolan.org/videolan/vlc/-/issues/26) 0x00007ffff61d7c47 in demux_Delete (demux=0x61400009a500) at ../../include/vlc_demux.h:282[#27](https://code.videolan.org/videolan/vlc/-/issues/27) 0x00007ffff61f022d in InputSourceDestroy (in=0x6120002e9d80) at ../../src/input/input.c:2692[#28](https://code.videolan.org/videolan/vlc/-/issues/28) 0x00007ffff61e47f7 in End (p_input=0x61d0005cb340) at ../../src/input/input.c:1420[#29](https://code.videolan.org/videolan/vlc/-/issues/29) 0x00007ffff61dc161 in Run (data=0x61d0005cb340) at ../../src/input/input.c:511[#30](https://code.videolan.org/videolan/vlc/-/issues/30) 0x00007ffff4461494 in start_thread (arg=0x7fffafe1c700) at pthread_create.c:333[#31](https://code.videolan.org/videolan/vlc/-/issues/31) 0x00007ffff41a3acf in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:97
Jean-Baptiste Kempfchanged title from Crash when playing linked MKV to Assert when playing linked MKV
changed title from Crash when playing linked MKV to Assert when playing linked MKV