Opened 4 years ago

Closed 4 years ago

Last modified 21 months ago

#22101 closed defect (fixed)

Upgrade to giac-1.2.3.25

Reported by: vbraun Owned by:
Priority: blocker Milestone: sage-7.6
Component: packages: standard Keywords: sdl
Cc: frederichan, fbissey, jpflori, tmonteil Merged in:
Authors: Frederic Han Reviewers: Thierry Monteil
Report Upstream: N/A Work issues: config.guess, patches fuzz
Branch: 437c2ce (Commits, GitHub, GitLab) Commit:
Dependencies: Stopgaps:

Status badges

Description (last modified by frederichan)

This is on 32-bit:

2424[giac-1.2.2.103]   ***   bug in PARI/GP (Segmentation Fault), please report.  
2425[giac-1.2.2.103] 79,1202c79,88
[...]
3549[giac-1.2.2.103] < 
3550[giac-1.2.2.103] ---
3551[giac-1.2.2.103] > [[-1]],
3552[giac-1.2.2.103] > [[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1]],
3553[giac-1.2.2.103] > [matrix[[0,1,0,0,0],[0,0,0,0,0],[0,0,0,0,0],[0,0,0,0,0],[0,0,0,0,0]],matrix[[0,0,0,1,0],[0,0,0,0,0],[0,0,0,0,0],[0,0,0,0,0],[0,0,0,0,0]],matrix[[0,0,0,0,1],[0,0,0,0,0],[0,0,0,0,0],[0,0,0,0,0],[0,0,0,0,0]],matrix[[1,0,0,0,0],[0,1,0,0,0],[0,0,0,0,0],[0,0,0,0,0],[0,0,0,0,0]],matrix[[0,0,1,0,0],[0,0,0,1,0],[0,0,0,0,0],[0,0,0,0,0],[0,0,0,0,0]],matrix[[0,0,0,0,0],[0,0,0,0,0],[0,1,0,0,0],[0,0,0,0,0],[0,0,0,0,0]],matrix[[0,0,0,0,0],[0,0,0,0,0],[0,0,0,1,0],[0,0,0,0,0],[0,0,0,0,0]],matrix[[0,0,0,0,0],[0,0,0,0,0],[0,0,0,0,1],[0,0,0,0,0],[0,0,0,0,0]],matrix[[0,0,0,0,0],[0,0,0,0,0],[1,0,0,0,0],[0,1,0,0,0],[0,0,0,0,0]],matrix[[0,0,0,0,0],[0,0,0,0,0],[0,0,1,0,0],[0,0,0,1,0],[0,0,0,0,0]],matrix[[0,0,0,0,0],[0,0,0,0,0],[0,0,0,0,0],[0,0,0,0,0],[0,1,0,0,0]],matrix[[0,0,0,0,0],[0,0,0,0,0],[0,0,0,0,0],[0,0,0,0,0],[0,0,0,1,0]],matrix[[0,0,0,0,0],[0,0,0,0,0],[0,0,0,0,0],[0,0,0,0,0],[0,0,0,0,1]]],
3554[giac-1.2.2.103] > [1,1,1,1,1,1,1,1,1,1,1,1,1],
3555[giac-1.2.2.103] > matrix[[1,1,1,1,1],[0,1,0,1,0],[1,1,1,1,1],[0,1,0,1,0],[0,1,0,1,1]],
3556[giac-1.2.2.103] > poly1[2,0,a+3],
3557[giac-1.2.2.103] > [1,1,0,0,0,0,1],
3558[giac-1.2.2.103] > [0],
3559[giac-1.2.2.103] > [1,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0],
3560[giac-1.2.2.103] > []
3561[giac-1.2.2.103] FAIL: chk_fhan1
[...]
5481[giac-1.2.2.103] ====================
5482[giac-1.2.2.103] 1 of 30 tests failed
5483[giac-1.2.2.103] ====================

Updating to a newer upstream source to fix this problem. The tarball built with spkg-src to put in upstream is availble at:

http://webusers.imj-prg.fr/~frederic.han/xcas/sage/giac-1.2.3.25.tar.bz2 use --disable-png in configure to help #22159

Change History (46)

comment:1 Changed 4 years ago by frederichan

  • Cc frederichan added

comment:2 Changed 4 years ago by frederichan

(Feel free to add me in CC for tracs about giac or giacpy)

I was able to reproduce the problem with giac 1.2.2.103 on a debian 8.6 i686. But updating to latest (stable )upstream release seems to fix the problem.

So I will build a branch like this.

comment:3 Changed 4 years ago by frederichan

  • Authors set to Frederic Han
  • Branch set to u/frederichan/giac123
  • Commit set to a1ee07ae43a4a8ebc70dcf61f9cae52a46e5b0f4
  • Description modified (diff)

comment:4 Changed 4 years ago by frederichan

  • Status changed from new to needs_review

comment:5 Changed 4 years ago by jdemeyer

I might review this (which is mostly testing on various systems). Feel free to remind me if I haven't done that in the next 10 days.

comment:6 Changed 4 years ago by jdemeyer

I first need to look at #22159, which also involves giac.

comment:7 Changed 4 years ago by git

  • Commit changed from a1ee07ae43a4a8ebc70dcf61f9cae52a46e5b0f4 to ff8e4ec07cdd839197d8c8bb41f98df4f1d449df

Branch pushed to git repo; I updated commit sha1. New commits:

5b1d472Merge branch 'develop' of git://trac.sagemath.org/sage into u/frederichan/giac123
072d7f3Merge branch 'develop' of git://trac.sagemath.org/sage into u/frederichan/giac123
ff8e4ecupdtate giac to 1.2.3.25 and configure with --disable-png

comment:8 Changed 4 years ago by frederichan

  • Description modified (diff)
  • Status changed from needs_review to needs_work

comment:9 Changed 4 years ago by frederichan

  • Status changed from needs_work to needs_review

comment:10 Changed 4 years ago by jdemeyer

  • Milestone changed from sage-7.5 to sage-7.6
  • Summary changed from giac testsuite fails to Upgrade to giac-1.2.3.25

comment:11 Changed 4 years ago by jpflori

The upgrade looks simple enough. Could someone test it on a 32 bit system? I fear we also have problems on non-x86_64 systems... See #22280

comment:12 Changed 4 years ago by tscrim

I would punt it to the buildbots, where there is a 32 bit machine IIRC, by setting a positive review.

comment:13 follow-up: Changed 4 years ago by jdemeyer

  • Status changed from needs_review to needs_work

giac ships with an ancient version of config.guess (timestamp: 2008-01-23, not kidding!).

Please apply a fix similar to #19714 such that it will at least try to build on recent systems.

comment:14 follow-up: Changed 4 years ago by jdemeyer

Something else: in spkg-src, where does the download link http://www-fourier.ujf-grenoble.fr/~parisse/debian/dists/stable/main/source/giac$SOURCEORIG.tar.gz come from? I don't see that documented anywhere on the official giac site. The only links to sources on https://www-fourier.ujf-grenoble.fr/~parisse/giac_compile.html that I can find point to https://www-fourier.ujf-grenoble.fr/~parisse/giac/giac_stable.tgz and https://www-fourier.ujf-grenoble.fr/~parisse/giac/giac_unstable.tgz (which strangely do NOT contain version numbers!)

Am I missing something?

comment:15 in reply to: ↑ 13 Changed 4 years ago by jdemeyer

Replying to jdemeyer:

giac ships with an ancient version of config.guess (timestamp: 2008-01-23, not kidding!).

Note that there are 2 versions of config.guess in the sources:

-rwxr-xr-x 1 jdemeyer jdemeyer 44826 Feb  7 11:25 config.guess
-rwxr-xr-x 1 jdemeyer jdemeyer 44892 Oct  7  2008 config/config.guess

The one which is used is config/config.guess.

comment:16 follow-up: Changed 4 years ago by jdemeyer

  • Cc fbissey jpflori added

With an updated config.guess, this builds on ppc64le but it gives a Segmentation fault when computing 1+1:

$ giac 
// Maximum number of parallel threads 192
// Giac share root-directory:/home/jdemeyer/sage-git/local/share/giac/
// Giac share root-directory:/home/jdemeyer/sage-git/local/share/giac/
// Giac share root-directory:/home/jdemeyer/sage-git/local/share/giac/
Help file /home/jdemeyer/sage-git/local/share/giac/doc/en/aide_cas not found
Added 26 synonyms
Welcome to giac readline interface
(c) 2001,2016 B. Parisse & others
Homepage http://www-fourier.ujf-grenoble.fr/~parisse/giac.html
Released under the GPL license 3.0 or above
See http://www.gnu.org for license details
May contain BSD licensed software parts (lapack, atlas, tinymt)
-------------------------------------------------
Press CTRL and D simultaneously to finish session
Type ?commandname for help
0>> 1+1
Segmentation fault

comment:17 in reply to: ↑ 16 ; follow-up: Changed 4 years ago by fbissey

Replying to jdemeyer:

With an updated config.guess, this builds on ppc64le but it gives a Segmentation fault when computing 1+1:

$ giac 
// Maximum number of parallel threads 192
// Giac share root-directory:/home/jdemeyer/sage-git/local/share/giac/
// Giac share root-directory:/home/jdemeyer/sage-git/local/share/giac/
// Giac share root-directory:/home/jdemeyer/sage-git/local/share/giac/
Help file /home/jdemeyer/sage-git/local/share/giac/doc/en/aide_cas not found
Added 26 synonyms
Welcome to giac readline interface
(c) 2001,2016 B. Parisse & others
Homepage http://www-fourier.ujf-grenoble.fr/~parisse/giac.html
Released under the GPL license 3.0 or above
See http://www.gnu.org for license details
May contain BSD licensed software parts (lapack, atlas, tinymt)
-------------------------------------------------
Press CTRL and D simultaneously to finish session
Type ?commandname for help
0>> 1+1
Segmentation fault

I don't get that on power7

// Maximum number of parallel threads 64
// Giac share root-directory:/shared/work_no_backup/ppc64-prefix/usr/share/giac/
// Giac share root-directory:/shared/work_no_backup/ppc64-prefix/usr/share/giac/
// Unable to find keyword file /shared/work_no_backup/ppc64-prefix/usr/share/giac/doc/en/keywords
// Giac share root-directory:/shared/work_no_backup/ppc64-prefix/usr/share/giac/
Help file /shared/work_no_backup/ppc64-prefix/usr/share/giac/doc/en/aide_cas not found
Added 0 synonyms
Welcome to giac readline interface
(c) 2001,2016 B. Parisse & others
Homepage http://www-fourier.ujf-grenoble.fr/~parisse/giac.html
Released under the GPL license 3.0 or above
See http://www.gnu.org for license details
May contain BSD licensed software parts (lapack, atlas, tinymt)
-------------------------------------------------
Press CTRL and D simultaneously to finish session
Type ?commandname for help
0>> 1+1
NULL(1,1)
// Time 0

Does the test suite passes for you (#22280)?

comment:18 in reply to: ↑ 17 ; follow-up: Changed 4 years ago by jdemeyer

Replying to fbissey:

Does the test suite passes for you (#22280)?

Given that even 1+1 segfaults, I did not state the obvious fact that the test suite also fails miserably.

comment:19 in reply to: ↑ 18 ; follow-up: Changed 4 years ago by fbissey

Replying to jdemeyer:

Replying to fbissey:

Does the test suite passes for you (#22280)?

Given that even 1+1 segfaults, I did not state the obvious fact that the test suite also fails miserably.

Yes, completely silly of me - even if I was juggling several things at the time of the remark. Do you think it is related to pari or something different? Have you been able to narrow it down from a backtrace?

comment:20 in reply to: ↑ 19 ; follow-up: Changed 4 years ago by jdemeyer

Replying to fbissey:

Do you think it is related to pari or something different? Have you been able to narrow it down from a backtrace?

I have not investigated yet.

comment:21 in reply to: ↑ 14 ; follow-up: Changed 4 years ago by frederichan

Replying to jdemeyer:

Something else: in spkg-src, where does the download link http://www-fourier.ujf-grenoble.fr/~parisse/debian/dists/stable/main/source/giac$SOURCEORIG.tar.gz come from? I don't see that documented anywhere on the official giac site. The only links to sources on https://www-fourier.ujf-grenoble.fr/~parisse/giac_compile.html that I can find point to https://www-fourier.ujf-grenoble.fr/~parisse/giac/giac_stable.tgz and https://www-fourier.ujf-grenoble.fr/~parisse/giac/giac_unstable.tgz (which strangely do NOT contain version numbers!)

Am I missing something?

I am following the REAME file in following: http://www-fourier.ujf-grenoble.fr/~parisse/debian/dists/stable/main/source it says that https://www-fourier.ujf-grenoble.fr/~parisse/giac/giac_stable.tgz is a link to the latest version in the debian directory. So for a pakcage it is better to point directly to an explicit number.

comment:22 in reply to: ↑ 21 ; follow-up: Changed 4 years ago by jdemeyer

Replying to frederichan:

I am following the REAME file in following: http://www-fourier.ujf-grenoble.fr/~parisse/debian/dists/stable/main/source

My question still stands: how did you find this directory? I don't see that documented anywhere on the official giac site.

comment:23 in reply to: ↑ 22 Changed 4 years ago by fbissey

Replying to jdemeyer:

Replying to frederichan:

I am following the REAME file in following: http://www-fourier.ujf-grenoble.fr/~parisse/debian/dists/stable/main/source

My question still stands: how did you find this directory? I don't see that documented anywhere on the official giac site.

It's not -I cannot find it either. I cannot even remember how I found about that directory a few months ago. There are a few routes from the info on the web-site but it is all indirect and require a bit of exploration. For example if you go to https://www-fourier.ujf-grenoble.fr/~parisse/giac/ where it says the latest sources are located you can find the README file mentioned by Frederic.

The other way is to explore from the address indicated as the source of the debian repo.

Finally Han Frederic updated the address in SPKG.txt about 2 years ago https://github.com/sagemath/sage/commit/43c68cc1cf32f9e93fdf90c4f4599f636a2aec70 That's probably where I got it from. Someone could ask Han how he knew but I suspect that's because he has direct contact with the author.

Last edited 4 years ago by fbissey (previous) (diff)

comment:24 Changed 4 years ago by frederichan

All this started from the very long discussion in #12375. From my comment 126 I guess that it ended with some direct mail of parisse to me that he started doing this. I don't remember if the webpage was more explicit at this time. I have asked to enhance the giac webpage there: http://xcas.e.ujf-grenoble.fr/XCAS/viewtopic.php?f=19&t=1784

comment:25 in reply to: ↑ 20 Changed 4 years ago by jdemeyer

Replying to fbissey: Do you think it is related to pari or something different? Have you been able to narrow it down from a backtrace?

It doesn't look related to PARI, but it might be related to threading:

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x3fffb459f180 (LWP 157861)]
0x00003fffb7b9f618 in giac::gen::in_eval (this=0x3fffb459e768, level=25, evaled=..., contextptr=0x3fffffffda40) at gen.cc:2105
2105                evaled=(*Sommet.ptr())(evaled,contextptr);
(gdb) bt
#0  0x00003fffb7b9f618 in giac::gen::in_eval (this=0x3fffb459e768, level=25, evaled=..., contextptr=0x3fffffffda40) at gen.cc:2105
#1  0x00003fffb7b9ce74 in giac::gen::eval (this=0x3fffb459e768, level=25, contextptr=0x3fffffffda40) at gen.cc:1893
#2  0x00003fffb789f578 in giac::protecteval (g=..., level=25, contextptr=0x3fffffffda40) at prog.cc:7001
#3  0x00003fffb767d904 in giac::in_thread_eval (arg=0x1006c618) at global.cc:3467
#4  0x00003fffb5af8070 in start_thread () from /lib/powerpc64le-linux-gnu/libpthread.so.0
#5  0x00003fffb5783230 in clone () from /lib/powerpc64le-linux-gnu/libc.so.6
(gdb) list
2100                  evaled=_SYMBptr->feuille;
2101              }
2102              if (is_ifte)
2103                evaled=ifte(evaled,true,contextptr);
2104              else
2105                evaled=(*Sommet.ptr())(evaled,contextptr);
2106              elevel=slevel;
2107            }
2108            else
2109              evaled=_SYMBptr->eval(level,contextptr);
(gdb) print Sommet.ptr()
$3 = (giac::unary_function_abstract *) 0xb7f7bad8
(gdb) print (*Sommet.ptr())
Cannot access memory at address 0xb7f7bad8
Last edited 4 years ago by jdemeyer (previous) (diff)

comment:26 Changed 4 years ago by jdemeyer

  • Work issues set to config.guess, patches fuzz

Patches should apply without fuzz:

Applying ../patches/nofltk-check.patch
patching file check/testgeo
patching file check/TP00-sol.cas
patching file check/TP00-sol.cas.out1
Hunk #1 succeeded at 66 with fuzz 2.
patching file check/TP02-sol.cas
patching file check/TP09-sol.cas
patching file check/TP19-sol.cas

comment:27 Changed 4 years ago by git

  • Commit changed from ff8e4ec07cdd839197d8c8bb41f98df4f1d449df to 7553a3c8dfa7bcec07241a07e6a4e7dcf5bb4f26

Branch pushed to git repo; I updated commit sha1. New commits:

7553a3cupdate patches to fix fuzz

comment:28 Changed 4 years ago by frederichan

I have asked to update config.guess there: http://xcas.e.ujf-grenoble.fr/XCAS/viewtopic.php?f=4&t=1787 As I can see a new config.guess in the unstable tarball I am waiting for the next stable 1.2.3.27

comment:29 Changed 4 years ago by tmonteil

  • Cc tmonteil added

comment:30 Changed 4 years ago by git

  • Commit changed from 7553a3c8dfa7bcec07241a07e6a4e7dcf5bb4f26 to 437c2ce2ce56df54f7e8b7589517fa480a936ba7

Branch pushed to git repo; I updated commit sha1. New commits:

437c2ceadd a patch to update giac's config.guess

comment:31 Changed 4 years ago by frederichan

I have built a patch with a recent config.guess so that we don't need to wait for the latest stable version of giac.

comment:32 Changed 4 years ago by tmonteil

Great, does it need review ?

Last edited 4 years ago by tmonteil (previous) (diff)

comment:33 Changed 4 years ago by frederichan

Up to now I have only tried the built and the giac testsuite with sage 7.6beta2. I was building new sage before putting the need review tag but if you have something ready to start the tests I don't plan to change the branch anymore.

comment:34 Changed 4 years ago by tmonteil

  • Reviewers set to Thierry Monteil

OK. Compilation and self-tests pass with this branch merged to 7.6.rc0 on 32bit virtual machine for giac and giacpy_sage. make ptestling is on the way.

comment:35 Changed 4 years ago by tmonteil

Does make ptestlong pass on x86_64 ?

comment:36 follow-up: Changed 4 years ago by fbissey

Why was libpng dropped from the dependency list? configure looks for it and for consistency's sake we'd rather it be sage's one rather the system one - or none at all - depending on the system. Unless you tell me it is not actually used.

comment:37 Changed 4 years ago by tmonteil

make ptestlong passes on i386 (with giacpy_sage i got the bug addressed in #21884).

comment:38 in reply to: ↑ 36 ; follow-up: Changed 4 years ago by frederichan

Replying to fbissey:

Why was libpng dropped from the dependency list? configure looks for it and for consistency's sake we'd rather it be sage's one rather the system one - or none at all - depending on the system. Unless you tell me it is not actually used.

Indeed I have added in spkg-install:

--disable-png
Last edited 4 years ago by tmonteil (previous) (diff)

comment:39 in reply to: ↑ 38 Changed 4 years ago by tmonteil

Replying to frederichan:

Replying to fbissey:

Why was libpng dropped from the dependency list? configure looks for it and for consistency's sake we'd rather it be sage's one rather the system one - or none at all - depending on the system. Unless you tell me it is not actually used.

Indeed I have added in spkg-install:

--disable-png

Compilation of giac works for me without the --disable-png option. Isn't it preferable to do the libpng stuff in #22159 (where there is an issue that might be solved in a different way), and focus here only on package upgrade and config.guess ?

comment:40 Changed 4 years ago by jpflori

I think people had issue because of conflicting png version, so the easiest solution is to disable png completely first and devise a proper way to only use Sage provided png version in another ticket.

Otherwise if only this ticket gets included we'll end up with a broken solution in some cases.

comment:41 Changed 4 years ago by jpflori

(Not to mention that giac only works on x86 and x86_64...)

comment:42 Changed 4 years ago by tmonteil

OK. Did someone check this on x86_64 ? If yes, let us positive review so that it can enter the next release.

comment:43 Changed 4 years ago by frederichan

So on x86_64 with sage 7.6rc1 + giacpy_sage I have tested this branch with the branch of #21884 rebased then ptestlong passed.

comment:44 Changed 4 years ago by tmonteil

  • Priority changed from major to blocker
  • Status changed from needs_work to positive_review

It is not a complete fix for #22280 but at lease it fixes it for the i386 arch.

Last edited 4 years ago by tmonteil (previous) (diff)

comment:45 Changed 4 years ago by vbraun

  • Branch changed from u/frederichan/giac123 to 437c2ce2ce56df54f7e8b7589517fa480a936ba7
  • Resolution set to fixed
  • Status changed from positive_review to closed

comment:46 Changed 21 months ago by tmonteil

  • Commit 437c2ce2ce56df54f7e8b7589517fa480a936ba7 deleted
  • Keywords sdl added
Note: See TracTickets for help on using tickets.