Opened 14 years ago

Closed 14 years ago

#83 closed bug (fixed)

Crash from aksaka.lib, probably bug with conversion from real to rational number

Reported by: gorzel Owned by: hannes
Priority: minor Milestone: 3-1-1
Component: singular-kernel Version:
Keywords: Cc:

Description

Singular for ix86-Linux version 3-1-0 (3100-2009022013) Feb 20 2009 13:33:39

The procs ask and wurzel from aksaka.lib crash Singular:

> LIB"aksaka.lib";
// ** loaded /home/gorzelc/Desktop/Singular/3-1-0/LIB/aksaka.lib (1.1,2007/01/09)
// ** loaded /home/gorzelc/Desktop/Singular/3-1-0/LIB/ntsolve.lib (1.15,2006/07/18)
> example ask;
// proc ask from lib aksaka.lib
EXAMPLE:
   ring R = 0,x,dp;
   //ask(100003);
   ask(32003);
*** glibc detected *** free(): invalid pointer: 0xb7f18248 ***
Singular : signal 6 (v: 3100/2009022013):
Segment fault/Bus error occurred at 8540871 because of 0 (r:1235141803)
please inform the authors
trying to restart...
   ? error occurred in aksaka.lib::ask line 448: ` return(m1);`
   ? last reserved name was `return`
   ? leaving aksaka.lib::ask
   skipping text from `M` error at token `)`
   ? leaving aksaka.lib::ask
Auf Wiedersehen.
> LIB "aksaka.lib";
// ** loaded /home/gorzelc/Desktop/Singular/3-1-0/LIB/aksaka.lib (1.1,2007/01/09)
// ** loaded /home/gorzelc/Desktop/Singular/3-1-0/LIB/ntsolve.lib (1.15,2006/07/18)

> ring r=0,x,dp;
> printlevel=6;
> wurzel(5);
// initial error = 3.790000000000000000000000000006824353382
// iteration: 1
// dumping = 0.5862144902003963884606834133122264176289
// error = 0.5483739358559496652899683024087595352566
// iteration: 2
// dumping = 1
// error = 0.0168878724983365080337379301454433170001
// iteration: 3
// dumping = 1
// error = 0.00001421200975426848827768741374920529204384
// iteration: 4
// dumping = 1
// error = 0.000000000010099032357261858812212027203941258418
// iteration: 5
// dumping = 1
// error = 0.000000000000000000000005099522727640800785200190723202634214804
*** glibc detected *** double free or corruption (out): 0xb7e99138 ***
Singular : signal 6 (v: 3100/2009022013):
Segment fault/Bus error occurred at 8540871 because of 0 (r:1235142515)
please inform the authors
trying to restart...

The reason seems to be that a real number, computed by nt_solve, is imap-ed to a rational number.

Did this ever work?

proc wurzel(number r)
"USAGE: wurzel(r);
ASSUME: caracteristic of basering is 0, r>=0
RETURN: number, square root of r
EXAMPLE:example wurzel; shows an example
"
{
 poly f=var(1)^2-r;             //Wurzel wird als Nullstelle eines Polys
                                //mit proc nt_solve genähert

 def B=basering;

 ring R=(real,40),var(1),dp;

 poly g=imap(B,f);
 list l=nt_solve(g,1.1);
 number m=leadcoef(l[1][1]);

 setring B;
 number m1=imap(R,m);      // <-- Hierbei kommt es wohl zum Crash C.G.
 return(m1);
}


Change History (5)

comment:1 Changed 14 years ago by hannes

Resolution: worksforme
Status: newclosed

Sehr merkwürdig, funktioniert hier, auch mit Singularg

comment:2 in reply to:  1 Changed 14 years ago by gorzel

Milestone: Release 3-1-0

Replying to hannes:

Sehr merkwürdig, funktioniert hier, auch mit Singularg

Der Crash entsteht bei der Konverterung von R nach Q.

In der 32-bit Version ix86-static kommt es zum Absturz,

Auf meinem Laptop:

gorzelc@linux:~/2Singular/00-BUGS> uname -a
Linux linux 2.6.16.13-4-default #1 Wed May 3 04:53:23 UTC 2006 i686 i686 i386 GNU/Linux

gorzelc@linux:~/2Singular/00-BUGS> Singular -v
Singular for ix86-Linux version 3-1-0 (3100-2009031719)  Mar 17 2009 19:08:42

> ring rr=(real,20,20),x,dp;
>  number qq = 0.0000000001;
> ring r0=0,x,dp;
> imap(rr,qq);
11579208923731619542357098500868790785326998466564056403945758400791/115792089237316195423570985008687907853269984665640564039457584007913129639936
> setring r0;
*** glibc detected *** free(): invalid pointer: 0xb7f28108 ***
Singular : signal 6 (v: 3100/2009031719):
Segment fault/Bus error occurred at 853ecf1 because of 0 (r:1237387905)
please inform the authors
trying to restart...

In der neuen x86-static-Version vom Server haengt Singular, lief aber zuvor richtig.

[RAEUBER26]:/tmp/Singular/3-1-0/x86_64-Linux > uname -a
Linux RAEUBER26 2.6.25.18-0.2-default #1 SMP 2008-10-21 16:30:26 +0200 x86_64 x86_64 x86_64 GNU/Linux

[RAEUBER26]:/tmp/Singular/3-1-0/x86_64-Linux > ./Singular -v
Singular for x86_64-Linux version 3-1-0 (3100-2009031719)  Mar 17 2009 19:10:47

>  ring rr=(real,20,20),x,dp;
>  number qq = 0.0000000001;
> ring r0=0,x,dp;
> imap(rr,qq);
26699837949011376029937771327119401432533806529458159624338020097777746572258006875287/266998379490113760299377713271194014325338065294581596243380200977777465722580068752870260867072
> setring rr;
*** glibc detected *** ./Singular: double free or corruption (out): 0x00007fae61422ab0 ***
======= Backtrace: =========
[0x8e5100]
[0x8e6d54]
[0x520dee]
[0x47ecca]
[0x461e51]
[0x4452ce]
[0x4006d4]
[0x8bef78]
[0x400209]
======= Memory map: ========
00400000-00a4d000 r-xp 00000000 08:04 4604470                            /data/tmp/Singular/3-1-0/x86_64-Linux/Singular
00c4c000-00c5c000 rw-p 0064c000 08:04 4604470                            /data/tmp/Singular/3-1-0/x86_64-Linux/Singular
00c5c000-00d5c000 rw-p 00c5c000 00:00 0                                  [heap]
7fae5c000000-7fae5c03b000 rw-p 7fae5c000000 00:00 0 
7fae5c03b000-7fae60000000 ---p 7fae5c03b000 00:00 0 
7fae6141c000-7fae6149d000 rw-p 7fae6141c000 00:00 0 
7fff6947b000-7fff6949d000 rw-p 7ffffffdd000 00:00 0                      [stack]
7fff695fe000-7fff69600000 r-xp 7fff695fe000 00:00 0                      [vdso]
ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0                  [vsyscall]
Singular : signal 6 (v: 3100/2009031719):
Segment fault/Bus error occurred at 7fff69496360 because of 246 (r:1237388382)
please inform the authors
trying to restart...

Andererseits laeuft es fehlerfrei

wenn ich die Sourcen

  Singular-3-1-0-beta23.tar

selber auf einem 64-PC der Uni Muenster baue!

[RAEUBER26]:/tmp/SING23/Singular-3-1-0 > ls /usr/lib64/glib-2.0/include/glibconfig.h 
[RAEUBER26]:/tmp/SING23/Singular-3-1-0/Singular > ./Singular -v
Singular for x86_64-Linux version 3-1-0 (3100-2009031816)  Mar 18 2009 16:39:18
with
        factory(@(#) factoryVersion = 3.1.0),libfac(3.1.0,Aug 2008),
        GMP(4.2),NTL(5.4.2),64bit,static readline,Plural,DBM,
        namespaces,dynamic modules,dynamic p_Procs,OM_CHECK=0,OM_TRACK=0,random=12
7391492
        CC= gcc -O3 -w -fomit-frame-pointer -pipe -DNDEBUG -DOM_NDEBUG -Dx86_64_Li
ux -DHAVE_CONFIG_H,
        CXX= g++ -O3 -w -fomit-frame-pointer --no-rtti -pipe -DNDEBUG -DOM_NDEBUG 
Dx86_64_Linux -DHAVE_CONFIG_H (4.2.1 (SUSE Linux))
argv[0]   :     ./Singular

Current HelpBrowser: dummy 
                     SINGULAR                             /  Development
 A Computer Algebra System for Polynomial Computations   /   version 3-1-0
                                                       0<
     by: G.-M. Greuel, G. Pfister, H. Schoenemann        \   Mar 2009
FB Mathematik der Universitaet, D-67653 Kaiserslautern    \
// ** executing /data/tmp/SING23/Singular-3-1-0/Singular/LIB/.singularrc
>  ring rr=(real,20,20),x,dp;
>   number qq = 0.0000000001;
>  ring r0=0,x,dp;
>  imap(rr,qq);
26699837949011376029937771327119401432533806529458159624338020097777746572258006875287/266998379490113760299377713271194014325338065294581596243380200977777465722580068752870260867072
> setring rr;
> qq;
0.0000000001
> $

comment:3 Changed 14 years ago by gorzel

Resolution: worksforme
Status: closedreopened

comment:4 Changed 14 years ago by seelisch

Milestone: Release 3-1-0Release following release 3-1-0

comment:5 Changed 14 years ago by hannes

Resolution: fixed
Status: reopenedclosed

This was an error mit different malloc/realloc/free: only in static versions. Fixed: static version require now: ./configure --with-malloc=system or an omalloc without malloc.

Note: See TracTickets for help on using tickets.