MATLAB: Does MATLAB Crash while using mex function that uses library which uses Boost Library

_zn5boost9iostreams6detail11gzip_header5resetev_zn5boost9iostreams6detail11gzip_headerc2evboostlibboost_iostreamsMATLABmex

I am using a mex function that calls an external library which itself is linked to the boost library. And that then crashed MATLAB in the Boost libraries.
The crash dump is 
------------------------------------------------------------------------
Segmentation violation detected at Fri Mar 2 10:24:17 2018
------------------------------------------------------------------------
Configuration:
Crash Decoding : Disabled - No sandbox or build area path
Crash Mode : continue (default)
Current Graphics Driver: Unknown hardware
Current Visual : 0x21 (class 4, depth 24)
Default Encoding : UTF-8
Deployed : false
GNU C Library : 2.23 stable
Host Name : metis
MATLAB Architecture : glnxa64
MATLAB Entitlement ID: 870270
MATLAB Root : /opt/MATLAB/R2017b
MATLAB Version : 9.3.0.713579 (R2017b)
OpenGL : hardware
Operating System : Linux 4.4.0-116-generic #140-Ubuntu SMP Mon Feb 12 21:23:04 UTC 2018 x86_64
Processor ID : x86 Family 6 Model 63 Stepping 2, GenuineIntel
Virtual Machine : Java 1.8.0_121-b13 with Oracle Corporation Java HotSpot(TM) 64-Bit Server VM mixed mode
Window System : The X.Org Foundation (11804000), display :0
Fault Count: 1
Abnormal termination:
Segmentation violation
Register State (from fault):
RAX = 0000000000000000 RBX = 00007fbdbe0028c0
RCX = 0000000000000000 RDX = 00007fbdbe0028b8
RSP = 00007fbdbe002630 RBP = 00007fbdbe002660
RSI = 0000000000000000 RDI = 00007fbdbe0028c8
R8 = 00007fbdb00000c8 R9 = 00007fbc08177e80
R10 = 0000000000000328 R11 = 00007fbddd3870e0
R12 = 0000000000000000 R13 = 0000000000000003
R14 = 00007fbc080f45c0 R15 = 00007fbdbe003bc0
RIP = 00007fbdd7cfcc40 EFL = 0000000000010246
CS = 0033 FS = 0000 GS = 0000
Stack Trace (from fault):
[ 0] 0x00007fbdd7cfcc40 /opt/MATLAB/R2017b/bin/glnxa64/libboost_iostreams.so.1.56.0+00060480 _ZN5boost9iostreams6detail11gzip_header5resetEv+00000032
[ 1] 0x00007fbc0fa7a7a9 /opt/piropa/lib/libpiropa.so.0.103+02385833 _ZN5boost9iostreams6detail11gzip_headerC2Ev+00000053
[ 2] 0x00007fbc0fa825ff /opt/piropa/lib/libpiropa.so.0.103+02418175 _ZN5boost9iostreams23basic_gzip_decompressorISaIcEEC2Eii+00000125
[ 3] 0x00007fbc0fa77027 /opt/piropa/lib/libpiropa.so.0.103+02371623
[ 4] 0x00007fbc0fa76bb2 /opt/piropa/lib/libpiropa.so.0.103+02370482 _ZN6piropa8readFileENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERNS_11StaticSceneE+00000148
[ 5] 0x00007fbc0fa509ee /opt/piropa/lib/libpiropa.so.0.103+02214382 _ZN6piropa9PiropaAPI25loadStaticEnvironmentDataERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE+00000248
[ 6] 0x00007fbc0fdfbfcd /home/schmitz/work/matlab/piropa_mex_interface/piropa_interface_mex.mexa64+00008141 mexFunction+00000837
[ 7] 0x00007fbdcb8a73c7 bin/glnxa64/libmex.so+00172999 mexRunMexFile+00000439
[ 8] 0x00007fbdcb8a0c23 bin/glnxa64/libmex.so+00146467
[ 9] 0x00007fbdcb8a1385 bin/glnxa64/libmex.so+00148357
[ 10] 0x00007fbdcd612c83 bin/glnxa64/libmwm_dispatcher.so+00830595 _ZN8Mfh_file16dispatch_fh_implEMS_FviPP11mxArray_tagiS2_EiS2_iS2_+00000947
[ 11] 0x00007fbdcd61354e bin/glnxa64/libmwm_dispatcher.so+00832846 _ZN8Mfh_file11dispatch_fhEiPP11mxArray_tagiS2_+00000030
[ 12] 0x00007fbdc9c7e90a bin/glnxa64/libmwm_lxe.so+12519690
[ 13] 0x00007fbdc9c7fd9e bin/glnxa64/libmwm_lxe.so+12524958
[ 14] 0x00007fbdc9d4bb46 bin/glnxa64/libmwm_lxe.so+13359942
[ 15] 0x00007fbdc9cf76b1 bin/glnxa64/libmwm_lxe.so+13014705
[ 16] 0x00007fbdc95cde50 bin/glnxa64/libmwm_lxe.so+05504592
[ 17] 0x00007fbdc95d00e4 bin/glnxa64/libmwm_lxe.so+05513444
[ 18] 0x00007fbdc95cc8d1 bin/glnxa64/libmwm_lxe.so+05499089
[ 19] 0x00007fbdc95c8861 bin/glnxa64/libmwm_lxe.so+05482593
[ 20] 0x00007fbdc95c8c89 bin/glnxa64/libmwm_lxe.so+05483657
[ 21] 0x00007fbdc95cc100 bin/glnxa64/libmwm_lxe.so+05497088
[ 22] 0x00007fbdc95cc1cf bin/glnxa64/libmwm_lxe.so+05497295
[ 23] 0x00007fbdc96cc1d1 bin/glnxa64/libmwm_lxe.so+06545873
[ 24] 0x00007fbdc96cef53 bin/glnxa64/libmwm_lxe.so+06557523
[ 25] 0x00007fbdc9b7e4ce bin/glnxa64/libmwm_lxe.so+11470030
[ 26] 0x00007fbdc9c6ff1e bin/glnxa64/libmwm_lxe.so+12459806
[ 27] 0x00007fbdcd612c83 bin/glnxa64/libmwm_dispatcher.so+00830595 _ZN8Mfh_file16dispatch_fh_implEMS_FviPP11mxArray_tagiS2_EiS2_iS2_+00000947
[ 28] 0x00007fbdcd61354e bin/glnxa64/libmwm_dispatcher.so+00832846 _ZN8Mfh_file11dispatch_fhEiPP11mxArray_tagiS2_+00000030
[ 29] 0x00007fbdc9c7e90a bin/glnxa64/libmwm_lxe.so+12519690
[ 30] 0x00007fbdc9c7fd9e bin/glnxa64/libmwm_lxe.so+12524958
[ 31] 0x00007fbdc9d408c9 bin/glnxa64/libmwm_lxe.so+13314249
[ 32] 0x00007fbdc9ce5f01 bin/glnxa64/libmwm_lxe.so+12943105
[ 33] 0x00007fbdc95cde50 bin/glnxa64/libmwm_lxe.so+05504592
[ 34] 0x00007fbdc95d00e4 bin/glnxa64/libmwm_lxe.so+05513444
[ 35] 0x00007fbdc95cc8d1 bin/glnxa64/libmwm_lxe.so+05499089
[ 36] 0x00007fbdc95c8861 bin/glnxa64/libmwm_lxe.so+05482593
[ 37] 0x00007fbdc95c8c89 bin/glnxa64/libmwm_lxe.so+05483657
[ 38] 0x00007fbdc95cc100 bin/glnxa64/libmwm_lxe.so+05497088
[ 39] 0x00007fbdc95cc1cf bin/glnxa64/libmwm_lxe.so+05497295
[ 40] 0x00007fbdc96cc1d1 bin/glnxa64/libmwm_lxe.so+06545873
[ 41] 0x00007fbdc96cef53 bin/glnxa64/libmwm_lxe.so+06557523
[ 42] 0x00007fbdc9b7e4ce bin/glnxa64/libmwm_lxe.so+11470030
[ 43] 0x00007fbdc9b438fa bin/glnxa64/libmwm_lxe.so+11229434
[ 44] 0x00007fbdc9b43e78 bin/glnxa64/libmwm_lxe.so+11230840
[ 45] 0x00007fbdc9b456e2 bin/glnxa64/libmwm_lxe.so+11237090
[ 46] 0x00007fbdc9bbb24e bin/glnxa64/libmwm_lxe.so+11719246
[ 47] 0x00007fbdc9bbb5da bin/glnxa64/libmwm_lxe.so+11720154
[ 48] 0x00007fbdcbae4a8e bin/glnxa64/libmwbridge.so+00199310 _Z8mnParserv+00000862
[ 49] 0x00007fbdcdae1793 bin/glnxa64/libmwmcr.so+00558995
[ 50] 0x00007fbdcdae392e bin/glnxa64/libmwmcr.so+00567598
[ 51] 0x00007fbdcdae4099 bin/glnxa64/libmwmcr.so+00569497 _ZN5boost6detail17task_shared_stateINS_3_bi6bind_tIvPFvRKNS_8functionIFvvEEEENS2_5list1INS2_5valueIS6_EEEEEEvE6do_runEv+00000025
[ 52] 0x00007fbdcdae28b6 bin/glnxa64/libmwmcr.so+00563382
[ 53] 0x00007fbdce4c6259 bin/glnxa64/libmwiqm.so+00860761
[ 54] 0x00007fbdce4b2b6c bin/glnxa64/libmwiqm.so+00781164 _ZN5boost6detail8function21function_obj_invoker0ISt8functionIFNS_3anyEvEES4_E6invokeERNS1_15function_bufferE+00000028
[ 55] 0x00007fbdce4b284c bin/glnxa64/libmwiqm.so+00780364 _ZN3iqm18PackagedTaskPlugin7executeEP15inWorkSpace_tagRN5boost10shared_ptrIN14cmddistributor17IIPCompletedEventEEE+00000428
[ 56] 0x00007fbdce4908b8 bin/glnxa64/libmwiqm.so+00641208
[ 57] 0x00007fbdce47e53f bin/glnxa64/libmwiqm.so+00566591
[ 58] 0x00007fbdce480759 bin/glnxa64/libmwiqm.so+00575321
[ 59] 0x00007fbdde02baba bin/glnxa64/libmwservices.so+02702010
[ 60] 0x00007fbdde02d06f bin/glnxa64/libmwservices.so+02707567
[ 61] 0x00007fbdde02d81a bin/glnxa64/libmwservices.so+02709530 _Z25svWS_ProcessPendingEventsiib+00000186
[ 62] 0x00007fbdcdae1f0e bin/glnxa64/libmwmcr.so+00560910
[ 63] 0x00007fbdcdae22b4 bin/glnxa64/libmwmcr.so+00561844
[ 64] 0x00007fbdcdacfc06 bin/glnxa64/libmwmcr.so+00486406
[ 65] 0x00007fbddce8c6ba /lib/x86_64-linux-gnu/libpthread.so.0+00030394
[ 66] 0x00007fbddcbc241d /lib/x86_64-linux-gnu/libc.so.6+01078301 clone+00000109
[ 67] 0x0000000000000000 <unknown-module>+00000000

Best Answer

Use the same gcc version as matlab uses to compile customer's external library as well as for the mex.
Also, make sure that you are linking against the MATLAB supplied boost libraries. That's why it is important to use a compatible c++ compiler version, otherwise this can't work.
 
Related Question