spyder icon indicating copy to clipboard operation
spyder copied to clipboard

IPython kernel hangs and does not restart when running files with Automatic graphics backend and using Wayland

Open remisalmon opened this issue 3 years ago • 15 comments

Issue Report Checklist

  • [x] Searched the issues page for similar reports
  • [x] Read the relevant sections of the Spyder Troubleshooting Guide and followed its advice
  • [x] Reproduced the issue after updating with conda update spyder (or pip, if not using Anaconda)
  • [ ] Could not reproduce inside jupyter qtconsole (if console-related)
  • [x] Tried basic troubleshooting (if a bug/error)
    • [x] Restarted Spyder
    • [x] Reset preferences with spyder --reset
    • [ ] Reinstalled the latest version of Anaconda
    • [ ] Tried the other applicable steps from the Troubleshooting Guide
  • [ ] Completed the Problem Description, Steps to Reproduce and Version sections below

Problem Description

When using the Graphics backend toAutomatic, running files (F5) hangs and it is not possible to restart the IPython kernel with Spyder 5.1.3 on Linux.

What steps reproduce the problem?

  1. Set Graphics backend to Automatic
  2. Try to run a file: IPython hangs (may take a couple of runs)
  3. Try to restart a IPython kernel: nothing happens

What is the expected output? What do you see instead?

I should be able to run files and restart kernels without IPython hanging.

Versions

  • Spyder version: 5.1.3 None
  • Python version: 3.9.7 64-bit
  • Qt version: 5.12.9
  • PyQt5 version: 5.12.3
  • Operating System: Linux 5.13.14-200.fc34.x86_64

Dependencies


# Mandatory:
atomicwrites >=1.2.0          :  1.4.0 (OK)
chardet >=2.0.0               :  4.0.0 (OK)
cloudpickle >=0.5.0           :  2.0.0 (OK)
cookiecutter >=1.6.0          :  1.7.3 (OK)
diff_match_patch >=20181111   :  20200713 (OK)
intervaltree >=3.0.2          :  3.0.2 (OK)
IPython >=7.6.0               :  7.27.0 (OK)
jedi >=0.17.2;<0.19.0         :  0.18.0 (OK)
jsonschema >=3.2.0            :  3.2.0 (OK)
keyring >=17.0.0              :  23.1.0 (OK)
nbconvert >=4.0               :  6.1.0 (OK)
numpydoc >=0.6.0              :  1.1.0 (OK)
parso >=0.7.0;<0.9.0          :  0.8.2 (OK)
pexpect >=4.4.0               :  4.8.0 (OK)
pickleshare >=0.4             :  0.7.5 (OK)
psutil >=5.3                  :  5.8.0 (OK)
pygments >=2.0                :  2.10.0 (OK)
pylint >=2.5.0;<2.10.0        :  2.7.2 (OK)
pyls_spyder >=0.4.0           :  0.4.0 (OK)
pylsp >=1.2.2;<1.3.0          :  1.2.2 (OK)
pylsp_black >=1.0.0           :  None (OK)
qdarkstyle =3.0.2             :  3.0.2 (OK)
qstylizer >=0.1.10            :  0.2.1 (OK)
qtawesome >=1.0.2             :  1.0.3 (OK)
qtconsole >=5.1.0             :  5.1.1 (OK)
qtpy >=1.5.0                  :  1.11.0 (OK)
rtree >=0.9.7                 :  0.9.7 (OK)
setuptools >=49.6.0           :  58.0.4 (OK)
sphinx >=0.6.6                :  4.1.2 (OK)
spyder_kernels >=2.1.1;<2.2.0 :  2.1.1 (OK)
textdistance >=4.2.0          :  4.2.1 (OK)
three_merge >=0.1.1           :  0.1.1 (OK)
watchdog >=0.10.3             :  2.1.5 (OK)
xdg >=0.26                    :  0.27 (OK)
zmq >=17                      :  22.2.1 (OK)

# Optional:
cython >=0.21                 :  None (OK)
matplotlib >=2.0.0            :  3.4.3 (OK)
numpy >=1.7                   :  1.21.2 (OK)
pandas >=1.1.1                :  1.3.2 (OK)
scipy >=0.17.0                :  1.7.1 (OK)
sympy >=0.7.3                 :  None (OK)

remisalmon avatar Sep 11 '21 04:09 remisalmon

Hey @remisalmon, thanks for reporting. I can't reproduce this problem, so please upload an animated gif that shows us how to do it in our side.

ccordoba12 avatar Sep 11 '21 20:09 ccordoba12

@ccordoba12 I hope this can help:

https://user-images.githubusercontent.com/26257211/133003750-7c5b0478-04cf-4b73-b2a9-724b82fdd742.mp4

remisalmon avatar Sep 12 '21 21:09 remisalmon

I have the same problem on windows. I have manage to replicate the bug on 3 different computer, all with W10, some with fresh environment or anaconda installation. On python 3.8.11 the bug appear when using a graphics backend other than inline (the bug appear with either Automatic, Qt5, Qt4 and Tkinter) and selected "Remove all variable before execution". On temp.py the bug doest appear all the time, but with another file(for example an untitled) it appear all the time. I manage to replicate it on spyder 5.0.5 and 4.2.5 but only on python 3.8. I haven't manage to replicate it with python 3.9. It's possible to de-freeze the kernel by opening, or closing, or interacting with another console. I might be able to show an animated gif latter

PhanAlexandre avatar Sep 13 '21 09:09 PhanAlexandre

I have the exact same issue, including after updating to 5.1.4. It is also triggered by using %matplotlib auto

henry-gale48 avatar Sep 14 '21 01:09 henry-gale48

Hey @remisalmon, thanks for the video. I think this problem has to do with Wayland because Conda/Conda-forge Qt packages don't have support for it.

Could you run Spyder under an Xorg session and report back again?

ccordoba12 avatar Sep 16 '21 15:09 ccordoba12

@PhanAlexandre, about your problem (which is totally different), please see issue #16138.

ccordoba12 avatar Sep 16 '21 15:09 ccordoba12

@ccordoba12 you're right: no issue restarting the kernel under Xorg, only when using Wayland + the automatic graphics backend.

remisalmon avatar Sep 17 '21 04:09 remisalmon

Ok, glad to know. What if you switch the backend to Inline in our Preferences, restart the kernel, and then run this code in the console?

import os
os.environ['XDG_SESSION_TYPE'] = 'x11'
%matplotlib qt

After that, please try to create a plot. That should work because it makes the Qt conda-forge packages to fallback to Xorg and avoid trying to use Wayland.

ccordoba12 avatar Sep 17 '21 15:09 ccordoba12

Forcing os.environ['XDG_SESSION_TYPE'] = 'x11' did work (qt plots + able to restart the kernel).

Not sure why it did not work right away since Spyder print this in the terminal before starting: Warning: Ignoring XDG_SESSION_TYPE=wayland on Gnome. Use QT_QPA_PLATFORM=wayland to run on Wayland anyway.

remisalmon avatar Sep 19 '21 04:09 remisalmon

Ok, that's really good to know. We'll try to fix this before the end of the year.

ccordoba12 avatar Sep 19 '21 20:09 ccordoba12

This problem can be found in Spyder 5.0.0 and higher version. Spyder 4.2.5 and lower version can work smothly without such problem.

fmhust avatar Feb 25 '22 17:02 fmhust

Looks like this issue was fixed somehow, closing since I can't reproduce anymore with Spyder 5.3.3.

remisalmon avatar Sep 04 '22 00:09 remisalmon

There's nothing that has changed in Conda/Conda-forge packages or in our side, so we still need to address it.

ccordoba12 avatar Sep 04 '22 18:09 ccordoba12

I still have this problem in 5.4.2 on Windows. Restarting the kernel works, but interrupting does not.

James-F1dev avatar Mar 21 '23 13:03 James-F1dev

@James-F1dev, this is a Linux only issue. Since you problem is different, please open a new issue about it.

ccordoba12 avatar Mar 22 '23 15:03 ccordoba12