Skip to content

Kiva segfaulting on an img_plot on OSX (not Windows) #315

@jonathanrocher

Description

@jonathanrocher

I am occasionally getting a segfault 11 of the form:

Process: Python [15499]
Path: /Users/USER/*/Python.app/Contents/MacOS/Python
Identifier: org.python.python
Version: 2.7.6 (2.7.6)
Code Type: X86-64 (Native)
Parent Process: bash [88535]
Responsible: Terminal [310]
User ID: 501

Date/Time: 2016-10-11 22:25:13.634 -0600
OS Version: Mac OS X 10.11.6 (15G1004)
Report Version: 11
Anonymous UUID: 6A5D759C-6553-8C85-EF5F-9A50C6539B5E

Sleep/Wake UUID: 09B3EE01-592B-4DDF-BAAC-04CE1BE086CD

Time Awake Since Boot: 830000 seconds
Time Since Wake: 11000 seconds

System Integrity Protection: enabled

Crashed Thread: 0 Dispatch queue: com.apple.main-thread

Exception Type: EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: KERN_INVALID_ADDRESS at 0x0000000200000794

VM Regions Near 0x200000794:
CoreUI image data 000000011f237000-000000011f298000 [ 388K] rw-/rwx SM=PRV
-->
STACK GUARD 0000700000000000-0000700000001000 [ 4K] ---/rwx SM=NUL stack guard for thread 1

Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0 _agg.so 0x000000011bcafef0 void kiva::graphics_context<agg24::pixfmt_alpha_blend_rgba<agg24::blender_rgba<agg24::rgba8, agg24::order_bgra>, agg24::row_ptr_cache, unsigned int> >::transform_image_interpolate<agg24::pixfmt_alpha_blend_rgba<agg24::blender_rgba<agg24::rgba8, agg24::order_rgba>, agg24::row_ptr_cache, unsigned int> >(kiva::graphics_context<agg24::pixfmt_alpha_blend_rgba<agg24::blender_rgba<agg24::rgba8, agg24::order_rgba>, agg24::row_ptr_cache, unsigned int> >&, agg24::trans_affine&) + 2000 (agg_pixfmt_rgba.h:1671)
1 _agg.so 0x000000011bcb8685 kiva::graphics_context<agg24::pixfmt_alpha_blend_rgba<agg24::blender_rgba<agg24::rgba8, agg24::order_bgra>, agg24::row_ptr_cache, unsigned int> >::transform_image(kiva::graphics_context_base*, agg24::trans_affine&) + 165 (kiva_graphics_context.h:1651)
2 ??? 0x00007fff5fbf4fa0 0 + 140734799761312
3 ??? 0x3fe0000000000000 0 + 4602678819172646912

when I run the following:

import numpy as np
from numpy import exp, linspace, meshgrid
import pandas as pd

from chaco.api import ArrayPlotData, Plot, jet
from enable.component_editor import ComponentEditor
from traits.api import HasTraits, Instance
from traitsui.api import Item, View


class ImagePlot(HasTraits):

    plot = Instance(Plot)

    data = Instance(pd.DataFrame)

    traits_view = View(Item('plot', editor=ComponentEditor(),
                            show_label=False),
                       width=500, height=500,
                       resizable=True,
                       title="Chaco Plot")

    def _plot_default(self):
        pivoted = self.data.pivot_table(index="x", columns="y", values="z")
        plotdata = ArrayPlotData(zdata=pivoted.values)
        # Create a Plot and associate it with the PlotData.
        plot = Plot(plotdata)
        # Create a line plot in the Plot
        plot.img_plot("zdata", colormap=jet)
        return plot


if __name__ == "__main__":
    data = pd.DataFrame({"x": [0, 1, 0, 1], "y": [0, 0, 1, 1],
                         "z": [0., 1., 2., 3.]})
    demo = ImagePlot(data=data)
    demo.configure_traits()

I am seeing this on OSX 10.11.6, with a Canopy environment with chaco 4.5.0-3 and enable 4.5.1-11 (numpy 1.10, and pandas 0.18.0-8). I am seeing this segfault with another environment with same chaco, enable 4.6dev, numpy 1.9.2-3 and pandas 0.16.2-2 too.

Additionally, even just trying to plot a trivial np.ones array leads to a completely white plot, even when it doesn't segfault. The same code runs as expected on Windows (same versions of all packages).

Any idea what is going on?
cc @cfarrow @jwiggins

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions