R J Cano on Thu, 13 Apr 2017 19:00:16 +0200


[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]

( Possibly... ) Bug report.


Dear PARI-Dev team, and PARI-Users mail list members.

Greetings!,

I am humbly following the request: "bug in PARI/GP (Segmentation
Fault), please report."

Scenario: Source code compiled (including -g option!) and run with
GP2C (from an invocation to gp2c-run )

About /etc/gprc

 precprime set to: 100M
 Both maxparisize and parisize set to 2*(1024)^3 (without suffix!, i.e. bytes)

About used hardware:

  Physically installed RAM memory of 4GB (recently tested 100% O.K.
with "GNU memtest64" program )
  Hard disk primary partition allocated for linux swapping. Size: 4GB.
  ( Device: Hitachi travelstar 160GB. 5400rpm, 6 months ago checking
O.K. according to HDD regenerator 2011 utility )

Observed behaviour: Only the current PARI-GP Calculator session
"crashed". System behaves stable and steady after that.

About used software. Distro: Slackware64 GNU Linux 14.2, "icewm"
window manager. "uname -a" command replies:

-------------------[Start]

Linux ToshibaSatelliteC855D 4.4.14 #2 SMP Fri Jun 24 13:38:27 CDT 2016
x86_64 AMD E-300 APU with Radeon(tm) HD Graphics AuthenticAMD
GNU/Linux

-------------------[End]

I would know from you if actually there was triggered/exposed a bug.
Athough surely any technical explanation on that could be honestly
out of my reach, I need to learn it anyway...

...And of course (hehe!), :-) Moral support is plenty, always welcome.

Many thanks in advance for your valuable time and consideration. I
hope this e-mail be found at least a little bit useful.

Sincerely, your friend:

Remy (R. J. Cano)

P.S.: Attachments (2 of them) (in situ, plain-text content):

Part 1) The featured screen...

---------------------------------------------[ Issued "crashing":
Sample output [Start]
]---------------------------------------------------------

bash-4.3$ cd /home2/gorilla/Documents/sda5/Remy/my.pari/; clear; gp2c
-g Symmetry_gp.txt > Symmetry_gp.txt.c; gp2c-run ./Symmetry_gp.txt.c
Reading GPRC: /etc/gprc ...Done.

GP/PARI CALCULATOR Version 2.9.1 (released)
amd64 running linux (x86-64/GMP-6.1.1 kernel) 64-bit version
compiled: Apr  5 2017, gcc version 5.3.0 (GCC)
threading engine: single
(readline v6.3 enabled, extended help enabled)
Copyright (C) 2000-2016 The PARI Group

PARI/GP is free software, covered by the GNU General Public License,
and comes WITHOUT ANY WARRANTY WHATSOEVER.

Type ? for help, \q to quit.
Type ?15 for how to get moral (and possibly technical) support.

parisizemax = 2147483648, primelimit = 100000000
? p0=A217626_vec(11);
^C  ***   at top-level: p0=A217626_vec(11)
  ***                    ^---------------
  *** A217626_vec: user interrupt after 12min, 13,741 ms
  ***   Break loop: <Return> to continue; 'break' to go back to GP prompt
break>
  ***   at top-level: p0=A217626_vec(11)
  ***                    ^---------------
  *** A217626_vec: bug in PARI/GP (Segmentation Fault), please report.
  ***   Break loop: type 'break' to go back to GP prompt
break> ##
  ***   at top-level: p0=A217626_vec(11)
  ***                    ^---------------
  *** A217626_vec: The result history is empty.
  ***   Break loop: type 'break' to go back to GP prompt
break[2]> break

  ***   at top-level: p0=A217626_vec(11)
  ***                    ^---------------
break> break

? p0=A217626_vec(10);
time = 33,450 ms.
? #p0
%2 = 3628799
? 10!-1
%3 = 3628799
? Symmetry(p0)
time = 758 ms.
%4 = 1
? Symmetry(p0,1,2,1,1)
%5 = [[1, 2, 874]]
? quit
Goodbye!
bash-4.3$

---------------------------------------------[ Issued "crashing":
Sample output [End]
]---------------------------------------------------------

Part 2) (the code) What was being used...


---------------------------------------------[ Underlying source code:
[Star] ]---------------------------------------------------------

A217626_vec(n,{B=10})={my(u=n!-1);my(x=numtoperm(n,0),y,z=vector(u),i);for(j=1,u,y=numtoperm(n,j)-x;z[i++]=fromdigits(
vector(#x-1,k,vecsum(y[1..k]) ) ,B);x+=y);z}

Symmetry(s0,{r=0},{leastSize=3},{e=0},{xX=0})={
  if(leastSize-1<#s0,
  if(!r,
    my(c, t=(-1)^( (!vecsum(s0)) %2) );
    while(c++<=#s0\2,
      if(s0[c]!=t*s0[1+#s0-c],return(0))
    );
    return(t)
  ,
    my(a:list,w=leastSize-1,t,q);
    a=List();
    while(w++<=#s0,
      t=0;
      while(#s0>=w-1+t++,
        q=Symmetry(s0[t..(t+w-1)],0,leastSize,0,0);
        if(q&&(!e||(e&&(w==leastSize))),listput(a,[q,w,t]);if(e&&xX,return(Vec(a))));
                                                           \\ # By
expecting an empty result,
      )                                                    \\ #
finishes as soon as a counter-example
    );                                                     \\ # is found.
    /* * / return(Vec(a)) / * */
    /* */ return(a) /* */
  )
  ,
    return(0);
  )
}

---------------------------------------------[ Underlying source code:
[End] ]---------------------------------------------------------

EOF
 Dear PARI-Dev team.

 Greetings!,

 I am humbly following the request: "bug in PARI/GP (Segmentation Fault), please report."

Scenario: Source code compiled (including -g option!) and run with GP2C (from an invocation to gp2c-run )

About /etc/gprc

 precprime set to: 100M
 Both maxparisize and parisize set to 2*(1024)^3 (without suffix!, i.e. bytes)

About used hardware:

  Physically installed RAM memory of 4GB (recently tested 100% O.K. with "GNU memtest64" program )
  Hard disk primary partition allocated for linux swapping. Size: 4GB.
  ( Device: Hitachi travelstar 160GB. 5400rpm, 6 months ago checking O.K. according to HDD regenerator 2011 utility )

Observed behaviour: Only the current PARI-GP Calculator session "crashed". System behaves stable and steady after that.

About used software. Distro: Slackware64 GNU Linux 14.2, "icewm" window manager. "uname -a" command replies:

-------------------[Start]

Linux ToshibaSatelliteC855D 4.4.14 #2 SMP Fri Jun 24 13:38:27 CDT 2016 x86_64 AMD E-300 APU with Radeon(tm) HD Graphics AuthenticAMD GNU/Linux

-------------------[End]

I would know from you if actually there was triggered/exposed a bug. Athough surely any technical explanation on that could be honestly
out of my reach, I need to learn it anyway...

...And of course (hehe!), :-) Moral support is plenty, always welcome.

Many thanks in advance for your valuable time and consideration. I hope this e-mail be found at least a little bit useful.

Sincerely,

Your friend Remy.

P.S.: Attachments (2 of them) (in situ, plain-text content):

Part 1) The featured screen...

---------------------------------------------[ Issued "crashing": Sample output [Start] ]---------------------------------------------------------

bash-4.3$ cd /home2/gorilla/Documents/sda5/Remy/my.pari/; clear; gp2c -g Symmetry_gp.txt > Symmetry_gp.txt.c; gp2c-run ./Symmetry_gp.txt.c
Reading GPRC: /etc/gprc ...Done.

GP/PARI CALCULATOR Version 2.9.1 (released)
amd64 running linux (x86-64/GMP-6.1.1 kernel) 64-bit version
compiled: Apr  5 2017, gcc version 5.3.0 (GCC)
threading engine: single
(readline v6.3 enabled, extended help enabled)
Copyright (C) 2000-2016 The PARI Group

PARI/GP is free software, covered by the GNU General Public License, and comes WITHOUT ANY WARRANTY WHATSOEVER.

Type ? for help, \q to quit.
Type ?15 for how to get moral (and possibly technical) support.

parisizemax = 2147483648, primelimit = 100000000
? p0=A217626_vec(11);
^C  ***   at top-level: p0=A217626_vec(11)
  ***                    ^---------------
  *** A217626_vec: user interrupt after 12min, 13,741 ms
  ***   Break loop: <Return> to continue; 'break' to go back to GP prompt
break> 
  ***   at top-level: p0=A217626_vec(11)
  ***                    ^---------------
  *** A217626_vec: bug in PARI/GP (Segmentation Fault), please report.
  ***   Break loop: type 'break' to go back to GP prompt
break> ##
  ***   at top-level: p0=A217626_vec(11)
  ***                    ^---------------
  *** A217626_vec: The result history is empty.
  ***   Break loop: type 'break' to go back to GP prompt
break[2]> break

  ***   at top-level: p0=A217626_vec(11)
  ***                    ^---------------
break> break

? p0=A217626_vec(10);
time = 33,450 ms.
? #p0
%2 = 3628799
? 10!-1
%3 = 3628799
? Symmetry(p0)
time = 758 ms.
%4 = 1
? Symmetry(p0,1,2,1,1)
%5 = [[1, 2, 874]]
? quit
Goodbye!
bash-4.3$ 

---------------------------------------------[ Issued "crashing": Sample output [End] ]---------------------------------------------------------

Part 2) (the code) What was being used...


---------------------------------------------[ Underlying source code: [Star] ]---------------------------------------------------------

A217626_vec(n,{B=10})={my(u=n!-1);my(x=numtoperm(n,0),y,z=vector(u),i);for(j=1,u,y=numtoperm(n,j)-x;z[i++]=fromdigits( vector(#x-1,k,vecsum(y[1..k]) ) ,B);x+=y);z}

Symmetry(s0,{r=0},{leastSize=3},{e=0},{xX=0})={
  if(leastSize-1<#s0,
  if(!r, 
    my(c, t=(-1)^( (!vecsum(s0)) %2) );
    while(c++<=#s0\2,
      if(s0[c]!=t*s0[1+#s0-c],return(0))
    );
    return(t)
  ,
    my(a:list,w=leastSize-1,t,q);
    a=List();
    while(w++<=#s0,
      t=0;
      while(#s0>=w-1+t++,
        q=Symmetry(s0[t..(t+w-1)],0,leastSize,0,0);
        if(q&&(!e||(e&&(w==leastSize))),listput(a,[q,w,t]);if(e&&xX,return(Vec(a))));
                                                           \\ # By expecting an empty result,
      )                                                    \\ # finishes as soon as a counter-example 
    );                                                     \\ # is found.
    /* * / return(Vec(a)) / * */
    /* */ return(a) /* */
  )
  ,
    return(0);  
  )
}

---------------------------------------------[ Underlying source code: [End] ]---------------------------------------------------------

EOF