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 follow-up: 2 Changed 14 years ago by
Resolution: | → worksforme |
---|---|
Status: | new → closed |
comment:2 Changed 14 years ago by
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
Resolution: | worksforme |
---|---|
Status: | closed → reopened |
comment:4 Changed 14 years ago by
Milestone: | Release 3-1-0 → Release following release 3-1-0 |
---|
comment:5 Changed 14 years ago by
Resolution: | → fixed |
---|---|
Status: | reopened → closed |
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.
Sehr merkwürdig, funktioniert hier, auch mit Singularg