Skip to content

Segmentation faults when running test suite on OS X 10.12. #283

@mdickinson

Description

@mdickinson

[ I'm working from the ci/edm-dance-party branch, but I doubt that that branch is causing the segmentation faults. ]

I'm seeing a number of segmentation faults when attempting to run the Enable tests on OS X 10.12.

To reproduce: on the ci/edm-dance-party branch:

  • edit ci/edmtool.py to hack in the Cython dependency
  • do edm install -y wheel click coverage
  • do edm run -- python ci/edmtool.py install --runtime=2.7 --toolkit=pyqt
  • finally, do edm run -- python ci/edmtool.py test --runtime=2.7 --toolkit=pyqt

The test run then fails partway through with a segmentation fault, which appears to be 100% reproducible. After commenting out the offending test, later tests also fail with segfaults.

Here's the tail of the output from a failing run:

testParse (enable.savage.svg.tests.test_pathdata.TestEllipticalArc) ... ok
testHorizonal (enable.savage.svg.tests.test_pathdata.TestMoveTo) ... ok
testLine (enable.savage.svg.tests.test_pathdata.TestMoveTo) ... ok
testLonger (enable.savage.svg.tests.test_pathdata.TestMoveTo) ... ok
testSimple (enable.savage.svg.tests.test_pathdata.TestMoveTo) ... ok
testVertical (enable.savage.svg.tests.test_pathdata.TestMoveTo) ... ok
testInvalid (enable.savage.svg.tests.test_pathdata.TestNumber) ... ok
testValid (enable.savage.svg.tests.test_pathdata.TestNumber) ... ok
testFloatsWithNoSpacing (enable.savage.svg.tests.test_pathdata.TestNumberSequence) ... ok
testParse (enable.savage.svg.tests.test_pathdata.TestQuadraticBezierCurveto) ... ok
testParse (enable.savage.svg.tests.test_pathdata.TestSVG) ... ok
testParse (enable.savage.svg.tests.test_pathdata.TestSmoothQuadraticBezierCurveto) ... ok
test_bounds_default (enable.tests.primitives.test_image.ImageTest) ... ok
test_bounds_overrride (enable.tests.primitives.test_image.ImageTest) ... ok
test_draw_24 (enable.tests.primitives.test_image.ImageTest) ... Command "coverage run -m nose.core enable -v" exited with segmentation fault (-11)

And here's the top of the call stack from the Apple bug reporter:

Process:               Python [53854]
Path:                  /Users/USER/*/Python.app/Contents/MacOS/Python
Identifier:            org.python.python
Version:               2.7.13 (2.7.13)
Code Type:             X86-64 (Native)
Parent Process:        edm [53853]
Responsible:           Python [53854]
User ID:               501

Date/Time:             2017-07-18 16:04:31.683 +0100
OS Version:            Mac OS X 10.12.5 (16F73)
Report Version:        12
Anonymous UUID:        941E8690-2780-6F0F-0DCA-78BC17D7B69D

Sleep/Wake UUID:       70E8A2F4-FA9B-4E22-94F2-13F28E7AA1A9

Time Awake Since Boot: 1500000 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 0x000000000000001c
Exception Note:        EXC_CORPSE_NOTIFY

Termination Signal:    Segmentation fault: 11
Termination Reason:    Namespace SIGNAL, Code 0xb
Terminating Process:   exc handler [0]

VM Regions Near 0x1c:
--> 
    __TEXT                 0000000100000000-0000000100003000 [   12K] r-x/rwx SM=COW  /Users/USER/*/Python.app/Contents/MacOS/Python

Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0   _agg.so                       	0x000000011693da68 agg24::span_image_filter_rgb_nn<agg24::image_accessor_clip<agg24::pixfmt_alpha_blend_rgb<agg24::blender_rgb<agg24::rgba8, agg24::order_rgb>, agg24::row_ptr_cache<unsigned char> > >, agg24::span_interpolator_linear<agg24::trans_affine, 8u> >::generate(agg24::rgba8*, int, int, unsigned int) + 504 (agg_pixfmt_rgb.h:244)
1   _agg.so                       	0x0000000116979a26 void agg24::render_scanline_aa<agg24::scanline_u8, agg24::renderer_mclip<agg24::pixfmt_alpha_blend_rgba<agg24::blender_rgba<agg24::rgba8, agg24::order_rgba>, agg24::row_ptr_cache<unsigned char>, unsigned int> >, agg24::span_allocator<agg24::rgba8>, agg24::span_image_filter_rgb_nn<agg24::image_accessor_clip<agg24::pixfmt_alpha_blend_rgb<agg24::blender_rgb<agg24::rgba8, agg24::order_rgb>, agg24::row_ptr_cache<unsigned char> > >, agg24::span_interpolator_linear<agg24::trans_affine, 8u> > >(agg24::scanline_u8 const&, agg24::renderer_mclip<agg24::pixfmt_alpha_blend_rgba<agg24::blender_rgba<agg24::rgba8, agg24::order_rgba>, agg24::row_ptr_cache<unsigned char>, unsigned int> >&, agg24::span_allocator<agg24::rgba8>&, agg24::span_image_filter_rgb_nn<agg24::image_accessor_clip<agg24::pixfmt_alpha_blend_rgb<agg24::blender_rgb<agg24::rgba8, agg24::order_rgb>, agg24::row_ptr_cache<unsigned char> > >, agg24::span_interpolator_linear<agg24::trans_affine, 8u> >&) + 198 (agg_renderer_scanline.h:170)
2   _agg.so                       	0x0000000116979941 void agg24::render_scanlines_aa<agg24::rasterizer_scanline_aa<agg24::rasterizer_sl_clip<agg24::ras_conv_int> >, agg24::scanline_u8, agg24::renderer_mclip<agg24::pixfmt_alpha_blend_rgba<agg24::blender_rgba<agg24::rgba8, agg24::order_rgba>, agg24::row_ptr_cache<unsigned char>, unsigned int> >, agg24::span_allocator<agg24::rgba8>, agg24::span_image_filter_rgb_nn<agg24::image_accessor_clip<agg24::pixfmt_alpha_blend_rgb<agg24::blender_rgb<agg24::rgba8, agg24::order_rgb>, agg24::row_ptr_cache<unsigned char> > >, agg24::span_interpolator_linear<agg24::trans_affine, 8u> > >(agg24::rasterizer_scanline_aa<agg24::rasterizer_sl_clip<agg24::ras_conv_int> >&, agg24::scanline_u8&, agg24::renderer_mclip<agg24::pixfmt_alpha_blend_rgba<agg24::blender_rgba<agg24::rgba8, agg24::order_rgba>, agg24::row_ptr_cache<unsigned char>, unsigned int> >&, agg24::span_allocator<agg24::rgba8>&, agg24::span_image_filter_rgb_nn<agg24::image_accessor_clip<agg24::pixfmt_alpha_blend_rgb<agg24::blender_rgb<agg24::rgba8, agg24::order_rgb>, agg24::row_ptr_cache<unsigned char> > >, agg24::span_interpolator_linear<agg24::trans_affine, 8u> >&) + 273 (agg_renderer_scanline.h:187)
3   _agg.so                       	0x0000000116978ea4 void kiva::graphics_context<agg24::pixfmt_alpha_blend_rgba<agg24::blender_rgba<agg24::rgba8, agg24::order_rgba>, agg24::row_ptr_cache<unsigned char>, unsigned int> >::transform_image_final<agg24::span_image_filter_rgb_nn<agg24::image_accessor_clip<agg24::pixfmt_alpha_blend_rgb<agg24::blender_rgb<agg24::rgba8, agg24::order_rgb>, agg24::row_ptr_cache<unsigned char> > >, agg24::span_interpolator_linear<agg24::trans_affine, 8u> > >(agg24::path_base<agg24::vertex_block_storage<double, 8u, 256u> >&, agg24::span_image_filter_rgb_nn<agg24::image_accessor_clip<agg24::pixfmt_alpha_blend_rgb<agg24::blender_rgb<agg24::rgba8, agg24::order_rgb>, agg24::row_ptr_cache<unsigned char> > >, agg24::span_interpolator_linear<agg24::trans_affine, 8u> >) + 676 (agg_rasterizer_cells_aa.h:132)
4   _agg.so                       	0x00000001169756fb void kiva::graphics_context<agg24::pixfmt_alpha_blend_rgba<agg24::blender_rgba<agg24::rgba8, agg24::order_rgba>, agg24::row_ptr_cache<unsigned char>, unsigned int> >::transform_image_interpolate<agg24::pixfmt_alpha_blend_rgb<agg24::blender_rgb<agg24::rgba8, agg24::order_rgb>, agg24::row_ptr_cache<unsigned char> > >(kiva::graphics_context<agg24::pixfmt_alpha_blend_rgb<agg24::blender_rgb<agg24::rgba8, agg24::order_rgb>, agg24::row_ptr_cache<unsigned char> > >&, agg24::trans_affine&) + 603 (kiva_graphics_context.h:610)
5   _agg.so                       	0x0000000116973d16 kiva::graphics_context<agg24::pixfmt_alpha_blend_rgba<agg24::blender_rgba<agg24::rgba8, agg24::order_rgba>, agg24::row_ptr_cache<unsigned char>, unsigned int> >::transform_image(kiva::graphics_context_base*, agg24::trans_affine&) + 70 (kiva_graphics_context.h:1598)
6   _agg.so                       	0x0000000116966aa8 kiva::graphics_context<agg24::pixfmt_alpha_blend_rgba<agg24::blender_rgba<agg24::rgba8, agg24::order_rgba>, agg24::row_ptr_cache<unsigned char>, unsigned int> >::draw_image(kiva::graphics_context_base*, double*, bool) + 520 (kiva_graphics_context.h:1453)
7   _agg.so                       	0x00000001169171c7 _wrap_GraphicsContextArray_draw_image(_object*, _object*) + 999 (agg_wrap.cpp:3198)
8   org.python.python             	0x00000001000b66ed PyEval_EvalFrameEx + 30141
9   org.python.python             	0x00000001000aee22 PyEval_EvalCodeEx + 1538
10  org.python.python             	0x00000001000bb545 fast_function + 117
11  org.python.python             	0x00000001000b62e3 PyEval_EvalFrameEx + 29107
12  org.python.python             	0x00000001000aee22 PyEval_EvalCodeEx + 1538
13  org.python.python             	0x00000001000bb545 fast_function + 117
14  org.python.python             	0x00000001000b62e3 PyEval_EvalFrameEx + 29107
15  org.python.python             	0x00000001000aee22 PyEval_EvalCodeEx + 1538
16  org.python.python             	0x00000001000bb545 fast_function + 117
17  org.python.python             	0x00000001000b62e3 PyEval_EvalFrameEx + 29107
18  org.python.python             	0x00000001000aee22 PyEval_EvalCodeEx + 1538

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions