Bug 1394975 - Sphinx Documentation subprocess failed with return code -11
Summary: Sphinx Documentation subprocess failed with return code -11
Keywords:
Status: CLOSED RAWHIDE
Alias: None
Product: Fedora
Classification: Fedora
Component: python-matplotlib
Version: rawhide
Hardware: ppc64
OS: Linux
unspecified
high
Target Milestone: ---
Assignee: Thomas Spura
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2016-11-14 22:48 UTC by Orion Poplawski
Modified: 2017-01-20 17:16 UTC (History)
12 users (show)

Fixed In Version: 2.0.0-0.7.rc2.fc26
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2017-01-20 17:16:18 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Github matplotlib matplotlib issues 7501 0 None None None 2016-11-22 19:01:09 UTC

Description Orion Poplawski 2016-11-14 22:48:53 UTC
Description of problem:

Trying to build python-astropy it fails on ppc64 with:

reading sources... [ 27%] api/astropy.modeling.functional_models.Sersic1D
reading sources... [ 27%] api/astropy.modeling.functional_models.Sersic2D
Sphinx Documentation subprocess failed with return code -11

https://koji.fedoraproject.org/koji/taskinfo?taskID=16454457

Comment 1 Avram Lubkin 2016-11-15 13:16:43 UTC
You'll need to do more troubleshooting. There are some other warnings in your log before this, so you might have some missing dependencies. Can you recreate the problem on a x86_64? Do you have the issue when building outside of the build environment?

Comment 2 Orion Poplawski 2016-11-15 17:59:48 UTC
sphinx builds fine on x86_64 and i686.  I have finally managed to reproduce on a ppc64 machine, so I'll take a look there.

Comment 3 Orion Poplawski 2016-11-15 18:21:49 UTC
Crash appears to happen in matplotlib:

Core was generated by `/usr/bin/python2 '.
Program terminated with signal SIGSEGV, Segmentation fault.
#0  0x00003fff7b1bca14 in QuadMeshGenerator<numpy::array_view<double const, 3> >::QuadMeshPathIterator::vertex (y=0x3ffffa94a360, x=0x3ffffa94a358, idx=<optimized out>, this=0x3ffffa94ab78)
    at src/_backend_agg.h:1099
1099                *x = (*m_coordinates)(n, m, 0);
(gdb) list
1094          private:
1095            inline unsigned vertex(unsigned idx, double *x, double *y)
1096            {
1097                size_t m = m_m + ((idx & 0x2) >> 1);
1098                size_t n = m_n + (((idx + 1) & 0x2) >> 1);
1099                *x = (*m_coordinates)(n, m, 0);
1100                *y = (*m_coordinates)(n, m, 1);
1101                return (idx) ? agg::path_cmd_line_to : agg::path_cmd_move_to;
1102            }
1103
(gdb) print m_coordinates
$1 = (const numpy::array_view<double const, 3> *) 0x3ffffa94ac18
(gdb) print *m_coordinates
$2 = {<numpy::detail::array_view_accessors<numpy::array_view, double const, 3>> = {<No data fields>}, m_arr = 0x3fff76c77a30, m_shape = 0x10013542510, m_strides = 0x10013542528,
  m_data = 0x10013817f90 ""}
(gdb) print x
$3 = (double *) 0x3ffffa94a358
(gdb) print *x
$4 = 501.59999999999997
(gdb) print n
$5 = 986115
(gdb) print m
$6 = <optimized out>
(gdb) print m_m
$7 = 0

valgrind fails with:
--18850-- WARNING: unhandled ppc64be-linux syscall: 251
--18850-- You may be able to write your own handler.
--18850-- Read the file README_MISSING_SYSCALL_OR_IOCTL.
error: [Errno 38] Function not implemented: 'astropy/_compiler.c'

Valgrind issue filed here: https://bugs.kde.org/show_bug.cgi?id=372513

Comment 4 Orion Poplawski 2016-11-15 18:32:54 UTC
#1  QuadMeshGenerator<numpy::array_view<double const, 3> >::QuadMeshPathIterator::vertex (
    y=0x3ffffa94a360, x=0x3ffffa94a358, this=0x3ffffa94ab78) at src/_backend_agg.h:1110
1110                return vertex(m_iterator++, x, y);
(gdb) print m_iterator
$1 = 3
(gdb) print *this
$6 = {m_iterator = 3, m_m = 0, m_n = 986114, m_coordinates = 0x3ffffa94ac18}
(gdb) print m_m + ((3 & 0x2) >> 1)
$7 = 1
(gdb) print m_n + (((3 + 1) & 0x2) >> 1)
$8 = 986114
(gdb) print *m_coordinates
$10 = {<numpy::detail::array_view_accessors<numpy::array_view, double const, 3>> = {<No data fields>}, m_arr = 0x3fff76c77a30, m_shape = 0x10013542510, m_strides = 0x10013542528,
  m_data = 0x10013817f90 ""}
(gdb) print *m_coordinates->m_shape
$11 = 257
(gdb) print *m_coordinates->m_arr
$12 = {ob_refcnt = 5, ob_type = 0x3fff7e460000}
(gdb) print *m_coordinates->m_strides
$13 = 32
(gdb) print *m_coordinates->m_data
$14 = 0 '\000'

I can't figure any of this out.

Comment 5 Orion Poplawski 2016-11-15 20:23:42 UTC
Workaround is to do:

export MPLBACKEND=cairo

Comment 6 Thomas Spura 2016-11-15 22:09:30 UTC
Thanks for your investigations.

Do you also have a shorter reproduced to report it to matplotlib upstream? Or just the full run of the build above?

Comment 7 Orion Poplawski 2016-11-15 22:18:58 UTC
Sorry, I don't have a short reproducer.

Comment 8 Orion Poplawski 2016-11-22 18:54:12 UTC
I'm not sure my workaround is really working.  Still seeing periodic crashes in teh RenderAgg path.

Comment 9 Elliott Sales de Andrade 2017-01-19 22:34:09 UTC
Pretty sure the crash should be fixed in matplotlib 2.0.0.

Comment 10 Orion Poplawski 2017-01-20 17:16:18 UTC
Looks like it.


Note You need to log in before you can comment on or make changes to this bug.