Ticket #7190 (assigned)
Mantid-VATES with Python Control
Reported by: | Owen Arnold | Owned by: | Owen Arnold |
---|---|---|---|
Priority: | blocker | Milestone: | Backlog |
Component: | GUI | Keywords: | |
Cc: | reuterma@…, martyn.gigg@… | Blocked By: | |
Blocking: | Tester: |
Description (last modified by Michael Reuter) (diff)
- Build paraveiw with python enabled
- Build Mantid with MAKE_VATES enabled
- Bring up the VSI - Crash
This is a blocker to introducing the Horace syntax!
Attachments
Change History
comment:2 Changed 7 years ago by Michael Reuter
No, it doesn't use it's own. It uses our instance that is fired up during the ConfigService initialization. This is where I fear that things are going wrong. When diagnosing the issue, the check code in ParaView says that python is already initialized. However, none of the standard python modules works correctly. The code crashes on trying to execute something from the signal module. However, I also tried running the sys module and that seg faulted in the same manner. The Mantid plugins can be used from within ParaView without any issue. Here is where it's going wrong:
VTK/Rendering/Matplotlib/vtkMatplotlibMathTextUtilities.cxx 202 PyRun_SimpleString("import signal;" 203 "signal.signal(signal.SIGINT, signal.SIG_DFL);");
comment:5 Changed 7 years ago by Nick Draper
- Milestone changed from Release 2.6 to Backlog
Moved to backlog at R2.6 code freeze
comment:6 Changed 7 years ago by Michael Reuter
- Description modified (diff)
Utkarsh from Kitware let me know that this code changed recently and that I should look at this again. Indeed, it did change, but the result was the same, a crash while trying to access the path object from the sys module. With Martyn's help, I've fixed this by making two uses of the GlobalInterpreterLock struct. Apparently, Mantid leave python initialized, but without a hold of the GIL. So, when ParaView came behind and tried to call C-API functions, it segfaulted. It looks like we should now be able to compile ParaView with python or be able to use the stock kits Kitware provides. These changes will only work well for the next release of ParaView which is slated for November.
comment:7 Changed 7 years ago by Nick Draper
- Status changed from new to assigned
Bulk move to assigned at the introduction of the triage step
First question: Does it use its own in-built version of Python? If so, that's going to cause problems.