"Kernel died" issue in Jupyter and not working IntelliSense in conda env

Dear developers,

Installing the OVITO pip package into a clean conda environment results in a partially broken environment. I can execute everything as a script, but Jupyter doesn't want to work, making the kernel die again and again. The VSCode IntelliSense doesn't work with OVITO objects either.

Steps to reproduce:

  1. Create a new conda environment with ovito
conda create --name ovito_env jupyterlab
conda activate ovito_env
pip install ovito 
  1. Start Jupyter

jupyter lab

  1. Enter the minimal example:
from ovito.io import import_file
pipeline = import_file('test_file.xyz')
data = pipeline.source.compute(0)

print(data.particles.positions.shape) # works fine

data.[TAB]

When pressing TAB, the kernel dies almost instantly.

P.S. I wish OVITO was available as a conda package with GUI. Too bad it's not going to happen in the near future, considering the lack of funding/changing business model you've mentioned earlier. Anyways, good luck with OVITO!

EDIT: Short follow-up I see the same issue with the system python+venv. So, it's not an issue with conda.

python3 -m venv env
source ./env/bin/activate
pip install ovito
pip install jupyterlab

EDIT 2019/12/10: This line, used to list all available methods, seems to cause the crash of GUI program as well:

object_methods = [method_name for method_name in dir(data.particles_)
                  if callable(getattr(data.particles_, method_name))]

Here's the backtrace

Thread 1 "ovito" received signal SIGSEGV, Segmentation fault.
0x00007ffff69c9d6e in Ovito::DataObject::makeMutable(Ovito::DataObject const*) ()
   from /home/arkadii/OVITO/ovito-3.0.0-dev592-x86_64/bin/../lib/ovito/plugins/Core.so
(gdb) bt
#0  0x00007ffff69c9d6e in Ovito::DataObject::makeMutable(Ovito::DataObject const*) ()
   from /home/arkadii/OVITO/ovito-3.0.0-dev592-x86_64/bin/../lib/ovito/plugins/Core.so
#1  0x00007fffe825b158 in ?? () from /home/arkadii/OVITO/ovito-3.0.0-dev592-x86_64/lib/ovito/plugins/ParticlesPython.so
#2  0x00007fffe8253f1a in ?? () from /home/arkadii/OVITO/ovito-3.0.0-dev592-x86_64/lib/ovito/plugins/ParticlesPython.so
#3  0x00007fffe2f134e7 in cfunction_call_varargs (kwargs=<optimized out>, args=<optimized out>, func=0x7fffa5cb3690) at Objects/call.c:757
#4  PyCFunction_Call () at Objects/call.c:788
#5  0x00007fffe2f16c5e in property_descr_get () at Objects/descrobject.c:1349
#6  0x00007fffe2f41ba1 in _PyObject_GenericGetAttrWithDict () at Objects/object.c:1235
#7  0x00007fffe2f93255 in builtin_getattr () at Python/bltinmodule.c:1127
#8  0x00007fffe2f1167d in _PyMethodDef_RawFastCallKeywords () at Objects/call.c:655
#9  0x00007fffe2f11570 in _PyCFunction_FastCallKeywords (func=0x7fffc79c0320, args=args@entry=0x7fffa5bd71f0, nargs=nargs@entry=2, 
    kwnames=kwnames@entry=0x0) at Objects/call.c:734
#10 0x00007fffe2f9aa42 in call_function (kwnames=0x0, oparg=2, pp_stack=<synthetic pointer>) at Python/ceval.c:4568
#11 _PyEval_EvalFrameDefault () at Python/ceval.c:3124
#12 0x00007fffe2f9584f in _PyEval_EvalCodeWithName () at Python/ceval.c:3930
#13 0x00007fffe2f12821 in _PyFunction_FastCallKeywords () at Objects/call.c:433
#14 0x00007fffe2f9672a in call_function (kwnames=0x0, oparg=<optimized out>, pp_stack=<synthetic pointer>) at Python/ceval.c:4616
#15 _PyEval_EvalFrameDefault () at Python/ceval.c:3124
#16 0x00007fffe2f95c95 in _PyEval_EvalCodeWithName () at Python/ceval.c:3930
#17 0x00007fffe2f12dee in _PyFunction_FastCallDict () at Objects/call.c:376
#18 0x00007fffe34704de in ?? () from /home/arkadii/OVITO/ovito-3.0.0-dev592-x86_64/lib/ovito/plugins/PyScript.so
#19 0x00007fffe33ba0f9 in ?? () from /home/arkadii/OVITO/ovito-3.0.0-dev592-x86_64/lib/ovito/plugins/PyScript.so
#20 0x00007fffe33bb376 in PyScript::ScriptEngine::executeSync(Ovito::RefTarget*, std::shared_ptr<Ovito::Task> const&, char const*, std::function<void ()> const&) () from /home/arkadii/OVITO/ovito-3.0.0-dev592-x86_64/lib/ovito/plugins/PyScript.so
#21 0x00007fffe33bc012 in ?? () from /home/arkadii/OVITO/ovito-3.0.0-dev592-x86_64/lib/ovito/plugins/PyScript.so
#22 0x00007ffff5524259 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) ()
   from /home/arkadii/OVITO/ovito-3.0.0-dev592-x86_64/bin/../lib/ovito/libQt5Core.so.5
#23 0x00007ffff557c1c3 in ?? () from /home/arkadii/OVITO/ovito-3.0.0-dev592-x86_64/bin/../lib/ovito/libQt5Core.so.5
#24 0x00007ffff17f9417 in g_main_context_dispatch () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#25 0x00007ffff17f9650 in ?? () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#26 0x00007ffff17f96dc in g_main_context_iteration () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#27 0x00007ffff557b7df in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
   from /home/arkadii/OVITO/ovito-3.0.0-dev592-x86_64/bin/../lib/ovito/libQt5Core.so.5
#28 0x00007ffff552008a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) ()
   from /home/arkadii/OVITO/ovito-3.0.0-dev592-x86_64/bin/../lib/ovito/libQt5Core.so.5
#29 0x00007ffff5528b80 in QCoreApplication::exec() () from /home/arkadii/OVITO/ovito-3.0.0-dev592-x86_64/bin/../lib/ovito/libQt5Core.so.5
#30 0x00007ffff69762df in Ovito::StandaloneApplication::runApplication() ()
---Type <return> to continue, or q <return> to quit---
  /plugins/Core.so
#31 0x000000000040177d in main ()

Best, Arkadii

Edited by Arkadii Pominov