Bug 1410774 - perl-PDL-Graphics-PLplot-0.71-3.fc26 FTBFS: crash in plplot on 64-bit PowerPC
Summary: perl-PDL-Graphics-PLplot-0.71-3.fc26 FTBFS: crash in plplot on 64-bit PowerPC
Alias: None
Product: Fedora
Classification: Fedora
Component: perl-PDL-Graphics-PLplot
Version: 26
Hardware: ppc64
OS: Unspecified
Target Milestone: ---
Assignee: Petr Pisar
QA Contact: Fedora Extras Quality Assurance
URL: https://apps.fedoraproject.org/kosche...
: 1424050 (view as bug list)
Depends On:
Blocks: FE-ExcludeArch-ppc64, F-ExcludeArch-ppc64 PPCTracker F-ExcludeArch-ppc64le, PPC64LETracker
TreeView+ depends on / blocked
Reported: 2017-01-06 12:47 UTC by Petr Pisar
Modified: 2018-05-29 11:46 UTC (History)
4 users (show)

Clone Of:
Last Closed: 2018-05-29 11:46:02 UTC

Attachments (Terms of Use)

External Trackers
Tracker ID Priority Status Summary Last Updated
CPAN 119740 None None None 2017-01-06 16:44 UTC

Description Petr Pisar 2017-01-06 12:47:55 UTC
perl-PDL-Graphics-PLplot-0.71-3.fc26 fails to build in F26 because tests fail on 64-bit PowerPC:

t/plplot.t ................ 
All 15 subtests passed 
sh: line 1: 28335 Segmentation fault      (core dumped) perl -Mblib ./t/x09.pl -dev svg -o x09p.svg -fam > /dev/null 2>&1
#   Failed test 'Script ./t/x09.pl ran successfully'
#   at t/plplot_library_tests.t line 68.
#   Failed test 'Output file x09p.svg.2 matches C output'
#   at t/plplot_library_tests.t line 74.
sh: line 1: 28730 Segmentation fault      (core dumped) perl -Mblib ./t/x22.pl -dev svg -o x22p.svg -fam > /dev/null 2>&1
#   Failed test 'Script ./t/x22.pl ran successfully'
#   at t/plplot_library_tests.t line 68.
#   Failed test 'Output file x22p.svg.1 matches C output'
#   at t/plplot_library_tests.t line 74.
# Looks like you failed 4 tests of 221.
t/plplot_library_tests.t .. 
Dubious, test returned 4 (wstat 1024, 0x400)
Failed 4/221 subtests 
Test Summary Report
t/plplot.t              (Wstat: 139 Tests: 15 Failed: 0)
  Non-zero wait status: 139
  Parse errors: No plan found in TAP output
t/plplot_library_tests.t (Wstat: 1024 Tests: 221 Failed: 4)
  Failed tests:  67, 69, 122-123
  Non-zero exit status: 4
Files=2, Tests=236, 41 wallclock secs ( 0.05 usr  0.01 sys + 13.73 cusr  1.06 csys = 14.85 CPU)
Result: FAIL

Comment 1 Petr Pisar 2017-01-06 15:46:42 UTC
The t/plplot.t crashes when executing "3D color plot, low level interface" test when calling plshades() Perl subroutine:

#0  pltr1 (x=19.590623970008657, y=1, tx=0x3fffe3c621e8, ty=0x3fffe3c621f0, pltr_data=0x1dde5cc0) at /usr/src/debug/plplot-5.11.1/src/plcont.c:896
#1  0x00003fff8fe41cc4 in plshade_int (f2eval=<optimized out>, f2eval_data=<optimized out>, defined=0x0, nx=<optimized out>, ny=<optimized out>, xmin=-1, xmax=<optimized out>, 
    ymin=-1, ymax=<optimized out>, shade_min=<optimized out>, shade_max=<optimized out>, sh_cmap=1, sh_color=0, sh_width=2, min_color=0, min_width=<optimized out>, max_color=0, 
    max_width=<optimized out>, fill=0x3fff8fe2df10 <c_plfill>, rectangular=1, pltr=0x3fff8fe1af00 <pltr1>, pltr_data=0x1dde5cc0, UNUSED_c2eval_data=<optimized out>, 
    c2eval=<optimized out>) at /usr/src/debug/plplot-5.11.1/src/plshade.c:666
#2  0x00003fff8fe42b00 in plfshades (zops=0x3fff8fe80fd0 <s_plf2ops_c>, zp=0x1001ddfc5c0, nx=<optimized out>, ny=<optimized out>, defined=0x0, xmin=-1, xmax=1, ymin=-1, ymax=1, 
    clevel=0x1001ddfb0a0, nlevel=15, fill_width=2, cont_color=0, cont_width=0, fill=0x3fff8fe2df10 <c_plfill>, rectangular=1, pltr=0x3fff8fe1af00 <pltr1>, pltr_data=0x1dde5cc0)
    at /usr/src/debug/plplot-5.11.1/src/plshade.c:262
#3  0x00003fff8fe42ee8 in c_plshades (a=0x1001ddfc5c0, nx=<optimized out>, ny=<optimized out>, defined=0x0, xmin=<optimized out>, xmax=<optimized out>, ymin=<optimized out>, 
    ymax=<optimized out>, clevel=0x1001ddfb0a0, nlevel=15, fill_width=<optimized out>, cont_color=0, cont_width=<optimized out>, fill=0x3fff8fe2df10 <c_plfill>, rectangular=1, 
    pltr=0x3fff8fe1af00 <pltr1>, pltr_data=0x1dde5cc0) at /usr/src/debug/plplot-5.11.1/src/plshade.c:211
#4  0x00003fff8fef7ce4 in pdl_plshades_pp_readdata (__tr=0x1001de05d60) at PLplot.xs:29263
#5  0x00003fff905c1c24 in pdl__ensure_trans (trans=0x1001de05d60, what=<optimized out>) at pdlapi.c:1227
#6  0x00003fff905c3010 in pdl_make_trans_mutual (trans=0x1001de05d60) at pdlapi.c:849
#7  0x00003fff8ff19fac in XS_PDL_plshades_pp (my_perl=<optimized out>, cv=<optimized out>) at PLplot.xs:56457
#8  0x00003fff90f1c8fc in Perl_pp_entersub (my_perl=0x1001cb80010) at pp_hot.c:3987
#9  0x00003fff90f13508 in Perl_runops_standard (my_perl=0x1001cb80010) at run.c:41
#10 0x00003fff90e87124 in S_run_body (oldscope=<optimized out>, my_perl=<optimized out>) at perl.c:2483
#11 perl_run (my_perl=0x1001cb80010) at perl.c:2406
#12 0x0000000010000de8 in main (argc=<optimized out>, argv=<optimized out>, env=<optimized out>) at perlmain.c:116

The crash is in plplot library when dereferencing grid variable, debugger states the pointer is inaccessible:

pltr1( PLFLT x, PLFLT y, PLFLT *tx, PLFLT *ty, PLPointer pltr_data )
    PLINT   ul, ur, vl, vr;
    PLFLT   du, dv;
    PLFLT   xl, xr, yl, yr;

    PLcGrid *grid = (PLcGrid *) pltr_data;
    PLFLT   *xg   = grid->xg;
    PLFLT   *yg   = grid->yg;
    PLINT   nx    = grid->nx;
→   PLINT   ny    = grid->ny;

Comment 2 Petr Pisar 2017-01-06 16:07:47 UTC
It does not crash when running under gdb or when executed from vim. Maybe some kind of a race condition.

Comment 3 Petr Pisar 2017-01-06 16:23:57 UTC
This is the minimal reproducer:

use PDL;
use PDL::Config;
use PDL::Graphics::PLplot;

my $dev = 'xfig';

# Test shade plotting (low level interface)
plsdev ($dev);
plsfnam ("test12.$dev");
plspage (0,0, 600,600, 0,0);
pladv (0);
plvpor(0.1, 0.9, 0.1, 0.9); 
plwind (-1, 1, -1, 1);

my $nx = 35;
my $ny = 46;
my $x = (sequence($nx) - ($nx/2))/($nx/2);
my $y = (sequence($ny) - ($ny/2))/(($ny/2) - 1.0);
my $xv = $x->dummy(1, $y->nelem);
my $yv = $y->dummy(0, $x->nelem);
my $z = -sin(7*$xv) * cos (7*$yv) + $xv**2 - $yv**2;
my $nsteps = 15;
my ($zmin, $zmax) = $z->minmax;
my $clevel = ((sequence($nsteps)*(($zmax - $zmin)/($nsteps-1))) + $zmin);
my $xmap = ((sequence($nx)*(2/($nx-1))) + -1); # map X coords linearly to -1 to 1
my $ymap = ((sequence($ny)*(2/($ny-1))) + -1);
my $grid = plAllocGrid ($xmap, $ymap);
plshades($z, -1, 1, -1, 1,
         $clevel, 2,
         0, 0, 1, 
         0, \&pltr1, $grid);

Comment 4 Petr Pisar 2017-01-06 16:38:50 UTC
It happens even if I disable GSL support in PDL that is problematic on PowerPC.

Comment 5 Petr Pisar 2017-02-20 07:53:45 UTC
*** Bug 1424050 has been marked as a duplicate of this bug. ***

Comment 6 Petr Pisar 2017-02-23 13:48:48 UTC
I will disable the package on PowerPC. It never worked there and I'm unable to debug it.

Comment 7 Petr Pisar 2017-02-23 14:19:10 UTC
Disabled in perl-PDL-Graphics-PLplot-0.71-5.fc26.

Comment 8 Fedora End Of Life 2017-02-28 10:53:57 UTC
This bug appears to have been reported against 'rawhide' during the Fedora 26 development cycle.
Changing version to '26'.

Comment 9 Fedora End Of Life 2018-05-03 07:59:27 UTC
This message is a reminder that Fedora 26 is nearing its end of life.
Approximately 4 (four) weeks from now Fedora will stop maintaining
and issuing updates for Fedora 26. It is Fedora's policy to close all
bug reports from releases that are no longer maintained. At that time
this bug will be closed as EOL if it remains open with a Fedora  'version'
of '26'.

Package Maintainer: If you wish for this bug to remain open because you
plan to fix it in a currently maintained version, simply change the 'version'
to a later Fedora version.

Thank you for reporting this issue and we are sorry that we were not
able to fix it before Fedora 26 is end of life. If you would still like
to see this bug fixed and are able to reproduce it against a later version
of Fedora, you are encouraged  change the 'version' to a later Fedora
version prior this bug is closed as described in the policy above.

Although we aim to fix as many bugs as possible during every release's
lifetime, sometimes those efforts are overtaken by events. Often a
more recent Fedora release includes newer upstream software that fixes
bugs or makes them obsolete.

Comment 10 Petr Pisar 2018-05-03 08:24:59 UTC
This package was removed from Fedora 27 (bug #1459590).

Comment 11 Fedora End Of Life 2018-05-29 11:46:02 UTC
Fedora 26 changed to end-of-life (EOL) status on 2018-05-29. Fedora 26
is no longer maintained, which means that it will not receive any
further security or bug fix updates. As a result we are closing this bug.

If you can reproduce this bug against a currently maintained version of
Fedora please feel free to reopen this bug against that version. If you
are unable to reopen this bug, please file a new report against the
current release. If you experience problems, please add a comment to this

Thank you for reporting this bug and we are sorry it could not be fixed.

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