New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Segfault when calling show() after using Popen (test code inside) #6429
Comments
attn @mdehoon |
I also had this problem. The fix suggested above worked for me! |
BTW, to be clear, the fix is to use another backend instead of 'MacOSX'. |
I think it's time to start deprecating the MacOSX backend. Maintaining the backend takes time away from the other backends. |
The problem still exists on v2.x, so the switch to the Agg renderer did not fix it. With a slight change to the SSCCE above I was able to lock up my machine completely--I had to power cycle it. |
Things seem to work if you call |
@mdboom My use case doesn't require killing. Yes, just replacing
As you say, I was just pointing out a code path that leads to a segfault inside matplotlib's MacOSX backend, which I thought should never happen in any case. |
Yeah -- ideally it shouldn't be happening, I agree. There's some interaction here that isn't cleaning up after itself. |
I have the same issue on my machine, switching to |
The TkAgg backend can also open a can of worms on OS X because of conflicting versions of the Tk libraries. I'm not sure whether this is completely fixed by the recent modification of backend_tkagg to use runtime loading #6442. |
The conflicting versions really should have been solved by #6442 because matplotlib now always gets the symbols from those already loaded by Python. |
I just now merged #6521 and backported it to v2.x, so I think this can be closed. Feel free to reopen if the problem is still present. |
Hi, please consider the following SSCCE:
Running that with
python
I getSegmentation fault: 11
Using faulthandler, the backtrace traces it to matplotlib's macosx backend from the call to show():
I checked the return code from mplayer (with
mplayer.wait()
), it is-9
as it should (I kill it). If it was mplayer that segfaulted,wait()
would return -11. Even if mplayer segfaults, that should not produce a segfault from matplotlib/Python.I couldn't find another program than mplayer to pipe to, that reproduces the segfault.
Christophe
-- OSX, matplotlib version 1.5.1 from pip 8.1.2, Python 3.4.3 from pyenv, MPlayer 1.3.0-4.2.1
The text was updated successfully, but these errors were encountered: