enthought / enthought/chaco

memory leak in copy_ticks on linux

Open
#9 17 comments 0 reactions 0 assignees View on GitHub
type: bug
Dominant language
Python
Stars
305
Forks
97
PR merge metrics
No merged PRs in 30d

Description

OS: linux ubuntu 10.10

Sometimes upon refresh / update of a plot, we get an exception with a corrupted traceback.

It looks like the exception occurs upon auto scaling of the value axis, possibly when rebuilding the axis ticks. (the exception does not occur when the value range limits are fixed).

The exception also causes a memory leak (using 'top' it can be observed that the ipython process successively increase the memory).

Below I paste the traceback.

In [2]: ERROR: An unexpected error occurred while tokenizing input
The following traceback may be corrupted or invalid
The error message is: ('EOF in multi-line statement', (2, 0))

---

IndexError Traceback (most recent call last)

/usr/lib/python2.6/dist-packages/enthought/enable/abstract_window.pyc in _paint(self, event)
348 self.component.do_layout()
349 gc = self._gc
--> 350 self.component.draw(gc, view_bounds=(0, 0, size[0], size[1]))
351
352 # damaged_regions = draw_result['damaged_regions']

/usr/lib/python2.6/dist-packages/enthought/enable/component.pyc in draw(self, gc, view_bounds, mode)
423 self.do_layout()
424
--> 425 self._draw(gc, view_bounds, mode)
426 return
427

/usr/lib/python2.6/dist-packages/enthought/enable/component.pyc in _draw(self, gc, view_bounds, mode)
759 else:
760 for layer in self.draw_order:
--> 761 self._dispatch_draw(layer, gc, view_bounds, mode)
762
763 return

/usr/lib/python2.6/dist-packages/enthought/enable/container.pyc in _dispatch_draw(self, layer, gc, view_bounds, mode)
308 my_handler = getattr(self, "_draw_container_" + layer, None)
309 if my_handler:
--> 310 my_handler(gc, view_bounds, mode)
311
312 # Now transform coordinates and draw the children

/usr/lib/python2.6/dist-packages/enthought/enable/container.pyc in _draw_container_underlay(self, gc, view_bounds, mode)
350
351 def _draw_container_underlay(self, gc, view_bounds=None, mode="normal"):
--> 352 self._draw_underlay(gc, view_bounds, mode)
353
354 def _draw_container_border(self, gc, view_bounds=None, mode="normal"):

/usr/lib/python2.6/dist-packages/enthought/enable/component.pyc in _draw_underlay(self, gc, view_bounds, mode)
876 # just overlays drawn at a different time in the rendering loop.

```
877 if underlay.visible:
```

--> 878 underlay.overlay(self, gc, view_bounds, mode)
879 return
880

/usr/lib/python2.6/dist-packages/enthought/chaco/grid.pyc in overlay(self, other_component, gc, view_bounds, mode)
302 return
303 self._compute_ticks(other_component)
--> 304 self._draw_component(gc, view_bounds, mode)
305 self._cache_valid = False
306 return

/usr/lib/python2.6/dist-packages/enthought/chaco/grid.pyc in _draw_component(self, gc, view_bounds, mode)
341 starts[:,0] = self._tick_extents[:,0]
342 ends = self._tick_positions.copy()
--> 343 ends[:,0] = self._tick_extents[:,1]
344 else:
345 starts = self._tick_positions.copy()

IndexError: invalid index

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.