tk backend broken (somehow?)

And with my continuing saga of backend-specific things…

I was using conda, but because it does not ship with pygtk support, I had to manually install pygtk into the conda environment and then install matplotlib from source. All that seemed to work fine when I worked on Wx and Gtk examples for my book.

I went back to a (previously working) Tk example to polish it, and I get all sorts of errors now. I have tried multiple releases of matplotlib from source (doing a git clean -fxd between them), all with similar errors. In fact, with master, the error causes a segfault:

ben@…965…:~/Documents/InteractiveMPL$ python chp5/slider_tk.py
Exception in Tkinter callback
Traceback (most recent call last):
File “/home/ben/miniconda/lib/python2.7/lib-tk/Tkinter.py”, line 1486, in call
return self.func(*args)
File “/home/ben/miniconda/lib/python2.7/site-packages/matplotlib-1.5.x-py2.7-linux-x86_64.egg/matplotlib/backends/backend_tkagg.py”, line 278, in resize
self.show()
File “/home/ben/miniconda/lib/python2.7/site-packages/matplotlib-1.5.x-py2.7-linux-x86_64.egg/matplotlib/backends/backend_tkagg.py”, line 350, in draw
tkagg.blit(self._tkphoto, self.renderer._renderer, colormode=2)
File “/home/ben/miniconda/lib/python2.7/site-packages/matplotlib-1.5.x-py2.7-linux-x86_64.egg/matplotlib/backends/tkagg.py”, line 30, in blit
id(data), colormode, id(bbox_array))
TclError
alloc: invalid block: 0x2cfe3b0: 0 0
Aborted (core dumped)

The line in question is (at least in v1.3.1, it is slightly different in more recent versions):
tk.call(“PyAggImagePhoto”, photoimage, id(aggimage), colormode, id(bbox_array))

This happens regardless of what example I use (my own or otherwise). There is no blit-specific code in the examples. All of this worked with the conda-supplied matplotlib, but never the from-source-into-a-conda-environment install.

Thoughts?

Ben Root

Mike made some changes to this recently. https://github.com/matplotlib/matplotlib/pull/3778

May be the cause.

···

On 16 November 2014 18:12, Benjamin Root <ben.root@…553…> wrote:

And with my continuing saga of backend-specific things…

I was using conda, but because it does not ship with pygtk support, I had to manually install pygtk into the conda environment and then install matplotlib from source. All that seemed to work fine when I worked on Wx and Gtk examples for my book.

I went back to a (previously working) Tk example to polish it, and I get all sorts of errors now. I have tried multiple releases of matplotlib from source (doing a git clean -fxd between them), all with similar errors. In fact, with master, the error causes a segfault:

ben@…965…:~/Documents/InteractiveMPL$ python chp5/slider_tk.py
Exception in Tkinter callback
Traceback (most recent call last):
File “/home/ben/miniconda/lib/python2.7/lib-tk/Tkinter.py”, line 1486, in call
return self.func(*args)
File “/home/ben/miniconda/lib/python2.7/site-packages/matplotlib-1.5.x-py2.7-linux-x86_64.egg/matplotlib/backends/backend_tkagg.py”, line 278, in resize
self.show()
File “/home/ben/miniconda/lib/python2.7/site-packages/matplotlib-1.5.x-py2.7-linux-x86_64.egg/matplotlib/backends/backend_tkagg.py”, line 350, in draw
tkagg.blit(self._tkphoto, self.renderer._renderer, colormode=2)
File “/home/ben/miniconda/lib/python2.7/site-packages/matplotlib-1.5.x-py2.7-linux-x86_64.egg/matplotlib/backends/tkagg.py”, line 30, in blit
id(data), colormode, id(bbox_array))
TclError
alloc: invalid block: 0x2cfe3b0: 0 0
Aborted (core dumped)

The line in question is (at least in v1.3.1, it is slightly different in more recent versions):
tk.call(“PyAggImagePhoto”, photoimage, id(aggimage), colormode, id(bbox_array))

This happens regardless of what example I use (my own or otherwise). There is no blit-specific code in the examples. All of this worked with the conda-supplied matplotlib, but never the from-source-into-a-conda-environment install.

Thoughts?

Ben Root


Comprehensive Server Monitoring with Site24x7.

Monitor 10 servers for $9/Month.

Get alerted through email, SMS, voice calls or mobile push notifications.

Take corrective actions from your mobile device.

http://pubads.g.doubleclick.net/gampad/clk?id=154624111&iu=/4140/ostg.clktrk


Matplotlib-devel mailing list

Matplotlib-devel@lists.sourceforge.net

https://lists.sourceforge.net/lists/listinfo/matplotlib-devel

Ok, I am just really confused now. I have confirmed that using the matplotlib supplied by miniconda (v1.4.2) works just fine. Ripping that out and building version 1.4.2 from source results in the traceback. Same thing for v1.3.1. I have even tried checking out PR#3811 which addresses the weird constructor issues we found today, and I still get the segfault.

Maybe I should try getting out of the conda environment entirely and try EPD instead to see if that makes a difference?

Ben Root

···

On Mon, Nov 17, 2014 at 5:17 AM, Phil Elson <pelson.pub@…322…9…> wrote:

Mike made some changes to this recently. https://github.com/matplotlib/matplotlib/pull/3778

May be the cause.

On 16 November 2014 18:12, Benjamin Root <ben.root@…553…> wrote:

And with my continuing saga of backend-specific things…

I was using conda, but because it does not ship with pygtk support, I had to manually install pygtk into the conda environment and then install matplotlib from source. All that seemed to work fine when I worked on Wx and Gtk examples for my book.

I went back to a (previously working) Tk example to polish it, and I get all sorts of errors now. I have tried multiple releases of matplotlib from source (doing a git clean -fxd between them), all with similar errors. In fact, with master, the error causes a segfault:

ben@…965…:~/Documents/InteractiveMPL$ python chp5/slider_tk.py
Exception in Tkinter callback
Traceback (most recent call last):
File “/home/ben/miniconda/lib/python2.7/lib-tk/Tkinter.py”, line 1486, in call
return self.func(*args)
File “/home/ben/miniconda/lib/python2.7/site-packages/matplotlib-1.5.x-py2.7-linux-x86_64.egg/matplotlib/backends/backend_tkagg.py”, line 278, in resize
self.show()
File “/home/ben/miniconda/lib/python2.7/site-packages/matplotlib-1.5.x-py2.7-linux-x86_64.egg/matplotlib/backends/backend_tkagg.py”, line 350, in draw
tkagg.blit(self._tkphoto, self.renderer._renderer, colormode=2)
File “/home/ben/miniconda/lib/python2.7/site-packages/matplotlib-1.5.x-py2.7-linux-x86_64.egg/matplotlib/backends/tkagg.py”, line 30, in blit
id(data), colormode, id(bbox_array))
TclError
alloc: invalid block: 0x2cfe3b0: 0 0
Aborted (core dumped)

The line in question is (at least in v1.3.1, it is slightly different in more recent versions):
tk.call(“PyAggImagePhoto”, photoimage, id(aggimage), colormode, id(bbox_array))

This happens regardless of what example I use (my own or otherwise). There is no blit-specific code in the examples. All of this worked with the conda-supplied matplotlib, but never the from-source-into-a-conda-environment install.

Thoughts?

Ben Root


Comprehensive Server Monitoring with Site24x7.

Monitor 10 servers for $9/Month.

Get alerted through email, SMS, voice calls or mobile push notifications.

Take corrective actions from your mobile device.

http://pubads.g.doubleclick.net/gampad/clk?id=154624111&iu=/4140/ostg.clktrk


Matplotlib-devel mailing list

Matplotlib-devel@lists.sourceforge.net

https://lists.sourceforge.net/lists/listinfo/matplotlib-devel