Brainstorm crashes at startup

Hi,

Brainstorm crashes MATLAB while "Reading plugins folder..."
I bisected the problem. It seems to have appeared on
Nov. 3 at 23h13 d766e32bb3d296a8ad1e47ef1994ab668630a711
When I reset to the previous commit, it works fine.

This is the error report of the MATLAB segmentation fault:
MATLAB crash file:/home/maximilien.chaumon/matlab_crash_dump.20430-1:

--------------------------------------------------------------------------------
      Segmentation violation detected at mar. nov. 12 16:03:56 2019 +0100
--------------------------------------------------------------------------------

Configuration:
  Crash Decoding           : Disabled - No sandbox or build area path
  Crash Mode               : continue (default)
  Default Encoding         : UTF-8
  Deployed                 : false
  Desktop Environment      : X-Cinnamon
  GNU C Library            : 2.27 stable
  Graphics Driver          : NVIDIA Corporation Quadro K2200/PCIe/SSE2 Version 4.6.0 NVIDIA 440.26
  Graphics card 1          : 0x10de ( 0x10de ) 0x13ba Version 440.26.0.0 (0-0-0)
  Java Version             : Java 1.8.0_181-b13 with Oracle Corporation Java HotSpot(TM) 64-Bit Server VM mixed mode
  MATLAB Architecture      : glnxa64
  MATLAB Entitlement ID    : 2095170
  MATLAB Root              : /usr/local/MATLAB/R2019a
  MATLAB Version           : 9.6.0.1072779 (R2019a)
  OpenGL                   : hardware
  Operating System         : Linux Mint 19.1 Tessa
  Process ID               : 20430
  Processor ID             : x86 Family 6 Model 79 Stepping 1, GenuineIntel
  Session Key              : 41c4a8e1-d3a9-40b3-9b0d-75cbbde74369
  Static TLS mitigation    : Enabled: Full
  Window System            : The X.Org Foundation (11906000), display :0

Fault Count: 1


Abnormal termination:
Segmentation violation

Register State (from fault):
  RAX = 0000000000000000  RBX = 00007f3e00000001
  RCX = 00007f3edbb504c0  RDX = 0000000000000000
  RSP = 00007f40325e9ed0  RBP = 00007f40325eabe0
  RSI = 00007f3edbb504c0  RDI = 00007f40325ead00

   R8 = 00007f40325ead10   R9 = 0000000000000000
  R10 = 00007f3e00000001  R11 = 0000000000000001
  R12 = 0000000000000002  R13 = 00007f3edbb504c0
  R14 = 00007f3edbb504c0  R15 = 00007f40325ead10

  RIP = 00007f3f43fd4b79  EFL = 0000000000010202

   CS = 0033   FS = 0000   GS = 0000

Stack Trace (from fault):
[  0] 0x00007f3f43fd4b79        /usr/local/MATLAB/R2019a/bin/glnxa64/mkl.so+21568377 mkl_blas_avx2_xsdot+00001497
[  1] 0x00007f3f4315ccbc        /usr/local/MATLAB/R2019a/bin/glnxa64/mkl.so+06397116 mkl_blas_sdot+00000796
[  2] 0x00007f3f42f68bea        /usr/local/MATLAB/R2019a/bin/glnxa64/mkl.so+04348906 mkl_blas__sdot+00000154
[  3] 0x00007f3ec485f551 /home/maximilien.chaumon/anaconda3/envs/mne/lib/python3.6/site-packages/numpy/core/../../../../libmkl_intel_lp64.so+01848657 cblas_sdot+00000033
[  4] 0x00007f3ecf0c1832 /home/maximilien.chaumon/anaconda3/envs/mne/lib/python3.6/site-packages/numpy/core/multiarray.cpython-36m-x86_64-linux-gnu.so+00243762
[  5] 0x00007f3ecf1bd407 /home/maximilien.chaumon/anaconda3/envs/mne/lib/python3.6/site-packages/numpy/core/multiarray.cpython-36m-x86_64-linux-gnu.so+01274887
[  6] 0x00007f3ecf18d191 /home/maximilien.chaumon/anaconda3/envs/mne/lib/python3.6/site-packages/numpy/core/multiarray.cpython-36m-x86_64-linux-gnu.so+01077649
[  7] 0x00007f3ecf18414f /home/maximilien.chaumon/anaconda3/envs/mne/lib/python3.6/site-packages/numpy/core/multiarray.cpython-36m-x86_64-linux-gnu.so+01040719
[  8] 0x00007f3ed082de6b /home/maximilien.chaumon/anaconda3/envs/mne/lib/libpython3.6m.so+01961579 _PyCFunction_FastCallDict+00000571
[  9] 0x00007f3ed0714aa9 /home/maximilien.chaumon/anaconda3/envs/mne/lib/libpython3.6m.so+00809641
[ 10] 0x00007f3ed071681b /home/maximilien.chaumon/anaconda3/envs/mne/lib/libpython3.6m.so+00817179 _PyEval_EvalFrameDefault+00005675
[ 11] 0x00007f3ed0712ea0 /home/maximilien.chaumon/anaconda3/envs/mne/lib/libpython3.6m.so+00802464
[ 12] 0x00007f3ed0714bcf /home/maximilien.chaumon/anaconda3/envs/mne/lib/libpython3.6m.so+00809935
[ 13] 0x00007f3ed071681b /home/maximilien.chaumon/anaconda3/envs/mne/lib/libpython3.6m.so+00817179 _PyEval_EvalFrameDefault+00005675
[ 14] 0x00007f3ed0714383 /home/maximilien.chaumon/anaconda3/envs/mne/lib/libpython3.6m.so+00807811
[ 15] 0x00007f3ed0714d8e /home/maximilien.chaumon/anaconda3/envs/mne/lib/libpython3.6m.so+00810382 PyEval_EvalCodeEx+00000062
[ 16] 0x00007f3ed0714dbc /home/maximilien.chaumon/anaconda3/envs/mne/lib/libpython3.6m.so+00810428 PyEval_EvalCode+00000028
[ 17] 0x00007f3ed0865cfe /home/maximilien.chaumon/anaconda3/envs/mne/lib/libpython3.6m.so+02190590
[ 18] 0x00007f3ed082e025 /home/maximilien.chaumon/anaconda3/envs/mne/lib/libpython3.6m.so+01962021 PyCFunction_Call+00000197
[ 19] 0x00007f3ed071b9e1 /home/maximilien.chaumon/anaconda3/envs/mne/lib/libpython3.6m.so+00838113 _PyEval_EvalFrameDefault+00026609
[ 20] 0x00007f3ed0714383 /home/maximilien.chaumon/anaconda3/envs/mne/lib/libpython3.6m.so+00807811
[ 21] 0x00007f3ed0714936 /home/maximilien.chaumon/anaconda3/envs/mne/lib/libpython3.6m.so+00809270
[ 22] 0x00007f3ed071681b /home/maximilien.chaumon/anaconda3/envs/mne/lib/libpython3.6m.so+00817179 _PyEval_EvalFrameDefault+00005675
[ 23] 0x00007f3ed0712ea0 /home/maximilien.chaumon/anaconda3/envs/mne/lib/libpython3.6m.so+00802464
[ 24] 0x00007f3ed0714bcf /home/maximilien.chaumon/anaconda3/envs/mne/lib/libpython3.6m.so+00809935
[ 25] 0x00007f3ed071681b /home/maximilien.chaumon/anaconda3/envs/mne/lib/libpython3.6m.so+00817179 _PyEval_EvalFrameDefault+00005675
[ 26] 0x00007f3ed0712ea0 /home/maximilien.chaumon/anaconda3/envs/mne/lib/libpython3.6m.so+00802464
[ 27] 0x00007f3ed0714bcf /home/maximilien.chaumon/anaconda3/envs/mne/lib/libpython3.6m.so+00809935
[ 28] 0x00007f3ed071681b /home/maximilien.chaumon/anaconda3/envs/mne/lib/libpython3.6m.so+00817179 _PyEval_EvalFrameDefault+00005675
[ 29] 0x00007f3ed0712ea0 /home/maximilien.chaumon/anaconda3/envs/mne/lib/libpython3.6m.so+00802464
[ 30] 0x00007f3ed0714bcf /home/maximilien.chaumon/anaconda3/envs/mne/lib/libpython3.6m.so+00809935
[ 31] 0x00007f3ed071681b /home/maximilien.chaumon/anaconda3/envs/mne/lib/libpython3.6m.so+00817179 _PyEval_EvalFrameDefault+00005675
[ 32] 0x00007f3ed0712ea0 /home/maximilien.chaumon/anaconda3/envs/mne/lib/libpython3.6m.so+00802464
[ 33] 0x00007f3ed0714720 /home/maximilien.chaumon/anaconda3/envs/mne/lib/libpython3.6m.so+00808736 _PyFunction_FastCallDict+00000720
[ 34] 0x00007f3ed08395ff /home/maximilien.chaumon/anaconda3/envs/mne/lib/libpython3.6m.so+02008575 _PyObject_FastCallDict+00000367
[ 35] 0x00007f3ed0839d8c /home/maximilien.chaumon/anaconda3/envs/mne/lib/libpython3.6m.so+02010508 _PyObject_CallMethodIdObjArgs+00000252
[ 36] 0x00007f3ed07538ad /home/maximilien.chaumon/anaconda3/envs/mne/lib/libpython3.6m.so+01067181 PyImport_ImportModuleLevelObject+00000973
[ 37] 0x00007f3ed071afbe /home/maximilien.chaumon/anaconda3/envs/mne/lib/libpython3.6m.so+00835518 _PyEval_EvalFrameDefault+00024014
[ 38] 0x00007f3ed0714383 /home/maximilien.chaumon/anaconda3/envs/mne/lib/libpython3.6m.so+00807811
[ 39] 0x00007f3ed0714d8e /home/maximilien.chaumon/anaconda3/envs/mne/lib/libpython3.6m.so+00810382 PyEval_EvalCodeEx+00000062
[ 40] 0x00007f3ed0714dbc /home/maximilien.chaumon/anaconda3/envs/mne/lib/libpython3.6m.so+00810428 PyEval_EvalCode+00000028
[ 41] 0x00007f3ed0865cfe /home/maximilien.chaumon/anaconda3/envs/mne/lib/libpython3.6m.so+02190590
[ 42] 0x00007f3ed082e025 /home/maximilien.chaumon/anaconda3/envs/mne/lib/libpython3.6m.so+01962021 PyCFunction_Call+00000197
[ 43] 0x00007f3ed071b9e1 /home/maximilien.chaumon/anaconda3/envs/mne/lib/libpython3.6m.so+00838113 _PyEval_EvalFrameDefault+00026609
[ 44] 0x00007f3ed0714383 /home/maximilien.chaumon/anaconda3/envs/mne/lib/libpython3.6m.so+00807811
[ 45] 0x00007f3ed0714936 /home/maximilien.chaumon/anaconda3/envs/mne/lib/libpython3.6m.so+00809270
[ 46] 0x00007f3ed071681b /home/maximilien.chaumon/anaconda3/envs/mne/lib/libpython3.6m.so+00817179 _PyEval_EvalFrameDefault+00005675
[ 47] 0x00007f3ed0712ea0 /home/maximilien.chaumon/anaconda3/envs/mne/lib/libpython3.6m.so+00802464
[ 48] 0x00007f3ed0714bcf /home/maximilien.chaumon/anaconda3/envs/mne/lib/libpython3.6m.so+00809935
[ 49] 0x00007f3ed071681b /home/maximilien.chaumon/anaconda3/envs/mne/lib/libpython3.6m.so+00817179 _PyEval_EvalFrameDefault+00005675
[ 50] 0x00007f3ed0712ea0 /home/maximilien.chaumon/anaconda3/envs/mne/lib/libpython3.6m.so+00802464
[ 51] 0x00007f3ed0714bcf /home/maximilien.chaumon/anaconda3/envs/mne/lib/libpython3.6m.so+00809935
[ 52] 0x00007f3ed071681b /home/maximilien.chaumon/anaconda3/envs/mne/lib/libpython3.6m.so+00817179 _PyEval_EvalFrameDefault+00005675
[ 53] 0x00007f3ed0712ea0 /home/maximilien.chaumon/anaconda3/envs/mne/lib/libpython3.6m.so+00802464
[ 54] 0x00007f3ed0714bcf /home/maximilien.chaumon/anaconda3/envs/mne/lib/libpython3.6m.so+00809935
[ 55] 0x00007f3ed071681b /home/maximilien.chaumon/anaconda3/envs/mne/lib/libpython3.6m.so+00817179 _PyEval_EvalFrameDefault+00005675
[ 56] 0x00007f3ed0712ea0 /home/maximilien.chaumon/anaconda3/envs/mne/lib/libpython3.6m.so+00802464
[ 57] 0x00007f3ed0714720 /home/maximilien.chaumon/anaconda3/envs/mne/lib/libpython3.6m.so+00808736 _PyFunction_FastCallDict+00000720
[ 58] 0x00007f3ed08395ff /home/maximilien.chaumon/anaconda3/envs/mne/lib/libpython3.6m.so+02008575 _PyObject_FastCallDict+00000367
[ 59] 0x00007f3ed0839d8c /home/maximilien.chaumon/anaconda3/envs/mne/lib/libpython3.6m.so+02010508 _PyObject_CallMethodIdObjArgs+00000252
[ 60] 0x00007f3ed07538ad /home/maximilien.chaumon/anaconda3/envs/mne/lib/libpython3.6m.so+01067181 PyImport_ImportModuleLevelObject+00000973
[ 61] 0x00007f3ed071afbe /home/maximilien.chaumon/anaconda3/envs/mne/lib/libpython3.6m.so+00835518 _PyEval_EvalFrameDefault+00024014
[ 62] 0x00007f3ed0714383 /home/maximilien.chaumon/anaconda3/envs/mne/lib/libpython3.6m.so+00807811
[ 63] 0x00007f3ed0714d8e /home/maximilien.chaumon/anaconda3/envs/mne/lib/libpython3.6m.so+00810382 PyEval_EvalCodeEx+00000062
[ 64] 0x00007f3ed0714dbc /home/maximilien.chaumon/anaconda3/envs/mne/lib/libpython3.6m.so+00810428 PyEval_EvalCode+00000028
[ 65] 0x00007f3ed0865cfe /home/maximilien.chaumon/anaconda3/envs/mne/lib/libpython3.6m.so+02190590
[ 66] 0x00007f3ed082e025 /home/maximilien.chaumon/anaconda3/envs/mne/lib/libpython3.6m.so+01962021 PyCFunction_Call+00000197
[ 67] 0x00007f3ed071b9e1 /home/maximilien.chaumon/anaconda3/envs/mne/lib/libpython3.6m.so+00838113 _PyEval_EvalFrameDefault+00026609
[ 68] 0x00007f3ed0714383 /home/maximilien.chaumon/anaconda3/envs/mne/lib/libpython3.6m.so+00807811
[ 69] 0x00007f3ed0714936 /home/maximilien.chaumon/anaconda3/envs/mne/lib/libpython3.6m.so+00809270
[ 70] 0x00007f3ed071681b /home/maximilien.chaumon/anaconda3/envs/mne/lib/libpython3.6m.so+00817179 _PyEval_EvalFrameDefault+00005675
[ 71] 0x00007f3ed0712ea0 /home/maximilien.chaumon/anaconda3/envs/mne/lib/libpython3.6m.so+00802464
[ 72] 0x00007f3ed0714bcf /home/maximilien.chaumon/anaconda3/envs/mne/lib/libpython3.6m.so+00809935
[ 73] 0x00007f3ed071681b /home/maximilien.chaumon/anaconda3/envs/mne/lib/libpython3.6m.so+00817179 _PyEval_EvalFrameDefault+00005675
[ 74] 0x00007f3ed0712ea0 /home/maximilien.chaumon/anaconda3/envs/mne/lib/libpython3.6m.so+00802464
[ 75] 0x00007f3ed0714bcf /home/maximilien.chaumon/anaconda3/envs/mne/lib/libpython3.6m.so+00809935
[ 76] 0x00007f3ed071681b /home/maximilien.chaumon/anaconda3/envs/mne/lib/libpython3.6m.so+00817179 _PyEval_EvalFrameDefault+00005675
[ 77] 0x00007f3ed0712ea0 /home/maximilien.chaumon/anaconda3/envs/mne/lib/libpython3.6m.so+00802464
[ 78] 0x00007f3ed0714bcf /home/maximilien.chaumon/anaconda3/envs/mne/lib/libpython3.6m.so+00809935
[ 79] 0x00007f3ed071681b /home/maximilien.chaumon/anaconda3/envs/mne/lib/libpython3.6m.so+00817179 _PyEval_EvalFrameDefault+00005675
[ 80] 0x00007f3ed0712ea0 /home/maximilien.chaumon/anaconda3/envs/mne/lib/libpython3.6m.so+00802464
[ 81] 0x00007f3ed0714720 /home/maximilien.chaumon/anaconda3/envs/mne/lib/libpython3.6m.so+00808736 _PyFunction_FastCallDict+00000720
[ 82] 0x00007f3ed08395ff /home/maximilien.chaumon/anaconda3/envs/mne/lib/libpython3.6m.so+02008575 _PyObject_FastCallDict+00000367
[ 83] 0x00007f3ed0839d8c /home/maximilien.chaumon/anaconda3/envs/mne/lib/libpython3.6m.so+02010508 _PyObject_CallMethodIdObjArgs+00000252
[ 84] 0x00007f3ed07538ad /home/maximilien.chaumon/anaconda3/envs/mne/lib/libpython3.6m.so+01067181 PyImport_ImportModuleLevelObject+00000973
[ 85] 0x00007f3ed071afbe /home/maximilien.chaumon/anaconda3/envs/mne/lib/libpython3.6m.so+00835518 _PyEval_EvalFrameDefault+00024014
[ 86] 0x00007f3ed0714383 /home/maximilien.chaumon/anaconda3/envs/mne/lib/libpython3.6m.so+00807811
[ 87] 0x00007f3ed0714d8e /home/maximilien.chaumon/anaconda3/envs/mne/lib/libpython3.6m.so+00810382 PyEval_EvalCodeEx+00000062
[ 88] 0x00007f3ed0714dbc /home/maximilien.chaumon/anaconda3/envs/mne/lib/libpython3.6m.so+00810428 PyEval_EvalCode+00000028
[ 89] 0x00007f3ed0865cfe /home/maximilien.chaumon/anaconda3/envs/mne/lib/libpython3.6m.so+02190590
[ 90] 0x00007f3ed082e025 /home/maximilien.chaumon/anaconda3/envs/mne/lib/libpython3.6m.so+01962021 PyCFunction_Call+00000197
[ 91] 0x00007f3ed071b9e1 /home/maximilien.chaumon/anaconda3/envs/mne/lib/libpython3.6m.so+00838113 _PyEval_EvalFrameDefault+00026609
[ 92] 0x00007f3ed0714383 /home/maximilien.chaumon/anaconda3/envs/mne/lib/libpython3.6m.so+00807811
[ 93] 0x00007f3ed0714936 /home/maximilien.chaumon/anaconda3/envs/mne/lib/libpython3.6m.so+00809270
[ 94] 0x00007f3ed071681b /home/maximilien.chaumon/anaconda3/envs/mne/lib/libpython3.6m.so+00817179 _PyEval_EvalFrameDefault+00005675
[ 95] 0x00007f3ed0712ea0 /home/maximilien.chaumon/anaconda3/envs/mne/lib/libpython3.6m.so+00802464
[ 96] 0x00007f3ed0714bcf /home/maximilien.chaumon/anaconda3/envs/mne/lib/libpython3.6m.so+00809935
[ 97] 0x00007f3ed071681b /home/maximilien.chaumon/anaconda3/envs/mne/lib/libpython3.6m.so+00817179 _PyEval_EvalFrameDefault+00005675
[ 98] 0x00007f3ed0712ea0 /home/maximilien.chaumon/anaconda3/envs/mne/lib/libpython3.6m.so+00802464
[ 99] 0x00007f3ed0714bcf /home/maximilien.chaumon/anaconda3/envs/mne/lib/libpython3.6m.so+00809935
[100] 0x00007f3ed071681b /home/maximilien.chaumon/anaconda3/envs/mne/lib/libpython3.6m.so+00817179 _PyEval_EvalFrameDefault+00005675
[101] 0x00007f3ed0712ea0 /home/maximilien.chaumon/anaconda3/envs/mne/lib/libpython3.6m.so+00802464
[102] 0x00007f3ed0714bcf /home/maximilien.chaumon/anaconda3/envs/mne/lib/libpython3.6m.so+00809935
[103] 0x00007f3ed071681b /home/maximilien.chaumon/anaconda3/envs/mne/lib/libpython3.6m.so+00817179 _PyEval_EvalFrameDefault+00005675
[104] 0x00007f3ed0712ea0 /home/maximilien.chaumon/anaconda3/envs/mne/lib/libpython3.6m.so+00802464
[105] 0x00007f3ed0714720 /home/maximilien.chaumon/anaconda3/envs/mne/lib/libpython3.6m.so+00808736 _PyFunction_FastCallDict+00000720
[106] 0x00007f3ed08395ff /home/maximilien.chaumon/anaconda3/envs/mne/lib/libpython3.6m.so+02008575 _PyObject_FastCallDict+00000367
[107] 0x00007f3ed0839d8c /home/maximilien.chaumon/anaconda3/envs/mne/lib/libpython3.6m.so+02010508 _PyObject_CallMethodIdObjArgs+00000252
[108] 0x00007f3ed07538ad /home/maximilien.chaumon/anaconda3/envs/mne/lib/libpython3.6m.so+01067181 PyImport_ImportModuleLevelObject+00000973
[109] 0x00007f3ed0864656 /home/maximilien.chaumon/anaconda3/envs/mne/lib/libpython3.6m.so+02184790
[110] 0x00007f3ed082df93 /home/maximilien.chaumon/anaconda3/envs/mne/lib/libpython3.6m.so+01961875 PyCFunction_Call+00000051
[111] 0x00007f3ed083a208 /home/maximilien.chaumon/anaconda3/envs/mne/lib/libpython3.6m.so+02011656 PyObject_Call+00000072
[112] 0x00007f3ed083ae4a /home/maximilien.chaumon/anaconda3/envs/mne/lib/libpython3.6m.so+02014794 PyObject_CallFunction+00000282
[113] 0x00007f3ed0754048 /home/maximilien.chaumon/anaconda3/envs/mne/lib/libpython3.6m.so+01069128 PyImport_Import+00000248
[114] 0x00007f3ed0c3dccb /usr/local/MATLAB/R2019a/bin/glnxa64/builtins/pycli/../../../../bin/glnxa64/libmwpycli.so+00687307
[115] 0x00007f3ed0c34ed5 /usr/local/MATLAB/R2019a/bin/glnxa64/builtins/pycli/../../../../bin/glnxa64/libmwpycli.so+00650965
[116] 0x00007f3ed0c76ee2 /usr/local/MATLAB/R2019a/bin/glnxa64/builtins/pycli/../../../../bin/glnxa64/libmwpycli.so+00921314
[117] 0x00007f4031a30f4e /usr/local/MATLAB/R2019a/bin/glnxa64/libmwmcos_impl.so+03092302
[118] 0x00007f4031a31459 /usr/local/MATLAB/R2019a/bin/glnxa64/libmwmcos_impl.so+03093593
[119] 0x00007f4031a31650 /usr/local/MATLAB/R2019a/bin/glnxa64/libmwmcos_impl.so+03094096
[120] 0x00007f4031c6a12c /usr/local/MATLAB/R2019a/bin/glnxa64/libmwmcos_impl.so+05423404
[121] 0x00007f403ca1323d /usr/local/MATLAB/R2019a/bin/glnxa64/libmwm_dispatcher.so+00893501
[122] 0x00007f403ca1a358 /usr/local/MATLAB/R2019a/bin/glnxa64/libmwm_dispatcher.so+00922456 _Z12mdFindImportP11MdispatcherN7mwboost14iterator_rangeIPKPKcEES4_16FindStaticMethod+00000296
[123] 0x00007f403a0297d1 /usr/local/MATLAB/R2019a/bin/glnxa64/libmwm_lxe.so+13907921
[124] 0x00007f4039fd8eed /usr/local/MATLAB/R2019a/bin/glnxa64/libmwm_lxe.so+13577965
[125] 0x00007f403bf50d40 /usr/local/MATLAB/R2019a/bin/glnxa64/libmwm_parser.so+01985856
[126] 0x00007f403bf5b80f /usr/local/MATLAB/R2019a/bin/glnxa64/libmwm_parser.so+02029583
[127] 0x00007f403bf5ae79 /usr/local/MATLAB/R2019a/bin/glnxa64/libmwm_parser.so+02027129

What crashes is the bridge between your Matlab install and your Python interpreter.
This was never used in Brainstorm until this commit you pointed at, which is a first draft for calling MNE-Python functions from Brainstorm. But nothing python-related should be called at the Brainstorm startup.

The one possibility I see is that the Matlab parser initializes the Python engine as soon as it finds a "py..." statement in a .m file, even if it doesn't execute the corresponding function...

What happens if you run "pyversion" from your Matlab command window?
What version of Matlab are you using?
If you have multiple versions of Matlab installed, can you try the others?
Can you update Anaconda/your python interpreter?
Can you try on a different Linux system with a different distribution (other than Mint)?
If you put a breakpoint at line 34 in process_mne_maxwell and then start Brainstorm, does it crash too?

Can you please post this as a bug report on the Mathworks website too?

This crash is most likely not directly related with Brainstorm, but with Matlab. But we should find a solution so it that it doesn't cause any problem with the combination of Matlab/Python/OS versions you have.

@MartinC @Marc.Lalancette Have you observed anything like this when starting Brainstorm on the Linux workstations at the MNI ?

I have not finished testing every scenario but I definitely have not encountered a crash when starting Brainstorm, including on Linux.

It does seem like Matlab parses the whole process file and not just the GetDescription() function on startup as I get warnings on startup when Python is not set up. It might not be ideal but one easy solution would be to move all py... statements to an external file that is not read on startup. We still obviously need to investigate this crash though.

Martin

I stand corrected. I can reproduce this after all: Ubuntu 14.04, Matlab 2019b (and others), Anaconda3, Python 3.7.4. However, if you put a breakpoint at line 34 in process_mne_maxwell and then start Brainstorm (continue execution after breakpoint reached), it does not crash...

Matlab on Linux has always been finicky and this might prove tedious to debug. I'll look at this further.

Martin

@MartinC Could you also post this as a bug report on the Mathworks website?
The more requests they get, the faster they will fix it.

@DNAcombo In the meantime, you can simply deplete process_mne_maxwell.m

2 Likes

I removed temporarily process_mne_maxwell, while we figure out a solution to avoid these Matlab crashes: https://github.com/brainstorm-tools/brainstorm3/commit/703fc2c92ed47abc94beb71691ad1e5f2d856436

@MartinC @DNAcombo What do you get when you type "pyversion" in the Matlab command line, on the OS where Matlab crashes?

@DNAcombo Have you posted a bug report on the Mathworks website?

pyversion = 3.6
I haven't filed a bug report.

I finally added this process back into Brainstorm.

Solution:

  • The "py." references were causing some Matlab versions to crash on some Linux computers.
  • I removed all the "py." references from the process function, and moving them to a companion function process_mne_maxwell_py.m.
  • The functions with a _py tag at the end are now skipped when searching the process folder for valid plugins, therefore building the process list does not involve parsing any file with a "py." reference.
  • Trying to use the process "MNE-Python: maxwell_filter (SSS/tSSS)" will still crash Matlab, but at least it doesn't crash when starting Brainstorm anymore.

@Marc.Lalancette You can try using it now.