Summary: | python3 backend broke down when calling matplotlib.pyplot.plot() | ||
---|---|---|---|
Product: | [Applications] cantor | Reporter: | LiTuX <LiTuX> |
Component: | python3-backend | Assignee: | Nikita Sirgienko <warquark> |
Status: | RESOLVED FIXED | ||
Severity: | major | CC: | alexander.semke, dvsv, filipe, warquark |
Priority: | NOR | ||
Version: | 19.04 | ||
Target Milestone: | --- | ||
Platform: | Manjaro | ||
OS: | Linux | ||
Latest Commit: | https://commits.kde.org/cantor/2329f29edc8d83b4823995a184ed454b580f0809 | Version Fixed In: | 19.08 |
Sentry Crash Report: |
Description
LiTuX
2019-05-09 13:32:59 UTC
Can't reproduce it on Ubuntu, so, I think, it's platform specific problem. Is this code works in python console? I hade reproduce the problem on 4.19.28-1-MANJARO -- crash inside Cantor python server with this code and no problem in python3 cli. Crash trace of cantor_python3server. Actual crash happens inside PyEval_EvalCode function (trace below). In that moment argument of runPythonCommand was "plot.show(foo)". #0 0x00007f21c370f82f in raise () from /usr/lib/libc.so.6 #1 0x00007f21c36fa672 in abort () from /usr/lib/libc.so.6 #2 0x00007f21c3c1c7fc in QMessageLogger::fatal(char const*, ...) const () from /usr/lib/libQt5Core.so.5 #3 0x00007f21c4875f55 in ?? () from /usr/lib/libQt5Widgets.so.5 #4 0x00007f21b7e52e4a in ?? () from /usr/lib/python3.7/site-packages/PyQt5/QtWidgets.so #5 0x00007f21b7e52f58 in ?? () from /usr/lib/python3.7/site-packages/PyQt5/QtWidgets.so #6 0x00007f21bc6856cc in ?? () from /usr/lib/python3.7/site-packages/PyQt5/sip.so #7 0x00007f21c4eb4ea5 in ?? () from /usr/lib/libpython3.7m.so.1.0 #8 0x00007f21c4f1962c in _PyObject_FastCallKeywords () from /usr/lib/libpython3.7m.so.1.0 #9 0x00007f21c4f5e4b1 in _PyEval_EvalFrameDefault () from /usr/lib/libpython3.7m.so.1.0 #10 0x00007f21c4ea5d09 in _PyEval_EvalCodeWithName () from /usr/lib/libpython3.7m.so.1.0 #11 0x00007f21c4eec882 in _PyFunction_FastCallKeywords () from /usr/lib/libpython3.7m.so.1.0 #12 0x00007f21c4f59f9c in _PyEval_EvalFrameDefault () from /usr/lib/libpython3.7m.so.1.0 #13 0x00007f21c4ea5d09 in _PyEval_EvalCodeWithName () from /usr/lib/libpython3.7m.so.1.0 #14 0x00007f21c4ea6f8c in _PyFunction_FastCallDict () from /usr/lib/libpython3.7m.so.1.0 #15 0x00007f21c4eb6818 in _PyObject_Call_Prepend () from /usr/lib/libpython3.7m.so.1.0 #16 0x00007f21c4f050e3 in ?? () from /usr/lib/libpython3.7m.so.1.0 #17 0x00007f21c4f1939c in _PyObject_FastCallKeywords () from /usr/lib/libpython3.7m.so.1.0 #18 0x00007f21c4f5e0db in _PyEval_EvalFrameDefault () from /usr/lib/libpython3.7m.so.1.0 #19 0x00007f21c4eec6db in _PyFunction_FastCallKeywords () from /usr/lib/libpython3.7m.so.1.0 #20 0x00007f21c4f5d6ea in _PyEval_EvalFrameDefault () from /usr/lib/libpython3.7m.so.1.0 #21 0x00007f21c4ea5d09 in _PyEval_EvalCodeWithName () from /usr/lib/libpython3.7m.so.1.0 --Type <RET> for more, q to quit, c to continue without paging-- #22 0x00007f21c4ea6f8c in _PyFunction_FastCallDict () from /usr/lib/libpython3.7m.so.1.0 #23 0x00007f21c4eb6818 in _PyObject_Call_Prepend () from /usr/lib/libpython3.7m.so.1.0 #24 0x00007f21c4ea749b in PyObject_Call () from /usr/lib/libpython3.7m.so.1.0 #25 0x00007f21c4f5a83e in _PyEval_EvalFrameDefault () from /usr/lib/libpython3.7m.so.1.0 #26 0x00007f21c4ea5d09 in _PyEval_EvalCodeWithName () from /usr/lib/libpython3.7m.so.1.0 #27 0x00007f21c4eec882 in _PyFunction_FastCallKeywords () from /usr/lib/libpython3.7m.so.1.0 #28 0x00007f21c4f5922d in _PyEval_EvalFrameDefault () from /usr/lib/libpython3.7m.so.1.0 #29 0x00007f21c4eec6db in _PyFunction_FastCallKeywords () from /usr/lib/libpython3.7m.so.1.0 #30 0x00007f21c4f5922d in _PyEval_EvalFrameDefault () from /usr/lib/libpython3.7m.so.1.0 #31 0x00007f21c4ea5d09 in _PyEval_EvalCodeWithName () from /usr/lib/libpython3.7m.so.1.0 #32 0x00007f21c4eec882 in _PyFunction_FastCallKeywords () from /usr/lib/libpython3.7m.so.1.0 #33 0x00007f21c4f5922d in _PyEval_EvalFrameDefault () from /usr/lib/libpython3.7m.so.1.0 #34 0x00007f21c4ea5d09 in _PyEval_EvalCodeWithName () from /usr/lib/libpython3.7m.so.1.0 #35 0x00007f21c4eec882 in _PyFunction_FastCallKeywords () from /usr/lib/libpython3.7m.so.1.0 #36 0x00007f21c4f5d6ea in _PyEval_EvalFrameDefault () from /usr/lib/libpython3.7m.so.1.0 #37 0x00007f21c4ea5d09 in _PyEval_EvalCodeWithName () from /usr/lib/libpython3.7m.so.1.0 #38 0x00007f21c4ea6c64 in PyEval_EvalCodeEx () from /usr/lib/libpython3.7m.so.1.0 #39 0x00007f21c4ea6c8c in PyEval_EvalCode () from /usr/lib/libpython3.7m.so.1.0 #40 0x00005569ab8249a1 in PythonServer::runPythonCommand (this=0x7ffe9431dcd0, command=...) at /home/mmmm1998/cantor/src/backends/python/pythonserver.cpp:92 ... Also, in crash moment, cantor_python3server prints "QWidget: Cannot create a QWidget without QApplication". Needs additional research. I hade created issue (https://github.com/matplotlib/matplotlib/issues/14381) about this problem in matplotlib bug tracker. Not sure, that this is them bug, but, I think good place to start, because I can't reproduce this error outside Cantor (but backtrace means, what crash caused not by Cantor) and have no idea that cause the problem. Confirmed on my system with Cantor 19.07.70+git20190531. Executed in Jupyter Qt Console (ouside Cantor) where was no problem with this particular example, and it has produces a plot. The problem have found: it is conflict between already loaded qt libraries (often from system installation) and qt libraries loading by PyQt5, when matplotlib import PyQt5 on pythons3server. When qt version of system and pyqt5 don't match, crash have been happening. I will fix it in a day, or two. Git commit 2329f29edc8d83b4823995a184ed454b580f0809 by Nikita Sirgienko. Committed on 04/07/2019 at 21:45. Pushed by sirgienko into branch 'master'. [Python] Don't use Qt in pythonserver executable for avoding problems with PyQt5 Related: bug 397264 FIXED-IN: 19.08 M +33 -33 src/backends/python/pythonserver.cpp M +11 -13 src/backends/python/pythonserver.h M +93 -95 src/backends/python/pythonservermain.cpp M +14 -2 src/backends/python/pythonsession.cpp M +1 -1 src/backends/python2/CMakeLists.txt M +1 -1 src/backends/python3/CMakeLists.txt https://commits.kde.org/cantor/2329f29edc8d83b4823995a184ed454b580f0809 |