Opened 6 years ago
Closed 6 years ago
#17184 closed enhancement (fixed)
Upgrade to Singular317p1
Reported by:  jdemeyer  Owned by:  

Priority:  major  Milestone:  sage6.4 
Component:  packages: standard  Keywords:  
Cc:  vbraun, nbruin, burcin  Merged in:  
Authors:  JeanPierre Flori  Reviewers:  Volker Braun 
Report Upstream:  N/A  Work issues:  
Branch:  4e287c4 (Commits, GitHub, GitLab)  Commit:  4e287c4a5a72e1a23c35046c71bddde9786110cc 
Dependencies:  Stopgaps: 
Description (last modified by )
Singular 317p1 repackaged (see spkgsrc):
Change History (67)
comment:1 Changed 6 years ago by
 Branch set to u/jdemeyer/ticket/17184
 Created changed from 10/20/14 20:04:32 to 10/20/14 20:04:32
 Modified changed from 10/20/14 20:04:32 to 10/20/14 20:04:32
comment:2 Changed 6 years ago by
 Commit set to 7c3f691d1f544592516312f2e4961239baf6d262
comment:3 Changed 6 years ago by
One thing I actually did not test because i just forgot: check that it still builds with SAGE_DEBUG as it is quite involved for Singular.
comment:4 Changed 6 years ago by
Boxen is back up (from here at least)!
comment:5 Changed 6 years ago by
 Commit changed from 7c3f691d1f544592516312f2e4961239baf6d262 to 1027b8fbfced15a69dc4b4da4511eb43470b631e
Branch pushed to git repo; I updated commit sha1. New commits:
1027b8f  Document templates.patch

comment:6 Changed 6 years ago by
That's a lot of dropped patches. That, on its own, would justify the upgrade.
comment:7 Changed 6 years ago by
Needs some work for the debug version. I'm on it.
comment:8 Changed 6 years ago by
 Branch changed from u/jdemeyer/ticket/17184 to u/jpflori/ticket/17184
 Commit changed from 1027b8fbfced15a69dc4b4da4511eb43470b631e to f70af8cc6cb04621cc785681e894724066d7b36b
comment:9 Changed 6 years ago by
 Commit changed from f70af8cc6cb04621cc785681e894724066d7b36b to cdedfc61ca715961acca343dea87e7e5c1163063
Branch pushed to git repo; I updated commit sha1. New commits:
cdedfc6  Correct fuzz for Singular patches.

comment:10 Changed 6 years ago by
 Status changed from new to needs_review
comment:11 Changed 6 years ago by
Without the latest debug patches, without SAGE_DEBUG=yes
, together with NTL6.2.1:
sage t long src/sage/schemes/plane_curves/constructor.py ********************************************************************** File "src/sage/schemes/plane_curves/constructor.py", line 69, in sage.schemes.plane_curves.constructor.Curve Failed example: C.genus() Expected: 1 Got: // ** redefining my_awesome_sage_ring ** 1 ********************************************************************** 1 item had failures: 1 of 30 in sage.schemes.plane_curves.constructor.Curve [29 tests, 1 failure, 1.96 s] sage t long src/sage/schemes/plane_curves/curve.py ********************************************************************** File "src/sage/schemes/plane_curves/curve.py", line 116, in sage.schemes.plane_curves.curve.Curve_generic.geometric_genus Failed example: C.geometric_genus() Expected: 1 Got: // ** redefining my_awesome_sage_ring ** 1 ********************************************************************** 1 item had failures: 1 of 16 in sage.schemes.plane_curves.curve.Curve_generic.geometric_genus [35 tests, 1 failure, 1.65 s] sage t long src/sage/rings/polynomial/multi_polynomial_ideal.py ********************************************************************** File "src/sage/rings/polynomial/multi_polynomial_ideal.py", line 1971, in sage.rings.polynomial.multi_polynomial_ideal.?.integral_closure Failed example: I.integral_closure() Expected: [x^2, y^5, x*y^3] Got: [x^2, x*y^4, y^5, x*y^3] ********************************************************************** 1 item had failures: 1 of 4 in sage.rings.polynomial.multi_polynomial_ideal.?.integral_closure [708 tests, 1 failure, 11.48 s] sage t long src/sage/schemes/plane_curves/projective_curve.py ********************************************************************** File "src/sage/schemes/plane_curves/projective_curve.py", line 70, in sage.schemes.plane_curves.projective_curve.ProjectiveCurve_generic.arithmetic_genus Failed example: C.genus() Expected: 4 Got: // ** redefining my_awesome_sage_ring ** 4 **********************************************************************
comment:12 Changed 6 years ago by
I get these doctest failures also with the latest version of this ticket, without NTL.
comment:13 Changed 6 years ago by
 Status changed from needs_review to needs_work
comment:14 followup: ↓ 32 Changed 6 years ago by
 Cc vbraun nbruin added
I don't really remember who committed the "my_awesome_ring" code. Was it Volker, or Nils, or anyone else? I didn't have a look at the code yet, but if the author could help, that would... help!
comment:15 Changed 6 years ago by
Looking at the failing example in src/sage/schemes/plane_curves/constructor.py
, which is a call to genus
going through Singular, it seems that there are three creations of SingularFunction
objects:
 twice
normal__lib
;  then
genus
.
Somehow the global currRingHdl
is set back to zero when the second normal__lib
object is created.
This was not the case with 3.1.6.
(I'm just discovering the way Singular internally works, so my description may seem naive and wrong.)
comment:16 Changed 6 years ago by
Wasn't me, but if there were any changes to the genus function then hopefully they fix #15477
comment:17 Changed 6 years ago by
When the normal
lib is loaded, currRingHdl
is set back to zero.
Here is when:
#0 rSetHdl (h=0x0) at ipshell.cc:4592 #1 0x00003fffa487ce04 in iiPStart (pn=<optimized out>, v=<optimized out>) at iplib.cc:456 #2 0x00003fffa487d334 in iiMake_proc (pn=0x3fffa426dd10, pack=0x3fffa42584b8, sl=0x0) at iplib.cc:612 #3 0x00003fffa487f65c in iiRunInit (p=<error reading variable: value has been optimized out>) at iplib.cc:889 #4 iiLoadLIB (fp=0x0, libnamebuf=0x3fffffffa280 "/home/jpflori/sage.git/local/share/singular/modstd.lib", newlib=0x3fffa4270280 "modstd.lib", pl=<optimized out>, autoexport=<optimized out>, tellerror=<optimized out>) at iplib.cc:941 #5 0x00003fffa487f840 in iiLibCmd (newlib=0x3fffa4270280 "modstd.lib", autoexport=<optimized out>, tellerror=<optimized out>, force=<optimized out>) at iplib.cc:842 #6 0x00003fffa487f3f8 in iiLoadLIB (fp=0x0, libnamebuf=0x3fffffffa4a0 "/home/jpflori/sage.git/local/share/singular/locnormal.lib", newlib= 0x3fffa42701a0 "locnormal.lib", pl=<optimized out>, autoexport=<optimized out>, tellerror=<optimized out>) at iplib.cc:950 #7 0x00003fffa487f840 in iiLibCmd (newlib=0x3fffa42701a0 "locnormal.lib", autoexport=<optimized out>, tellerror=<optimized out>, force=<optimized out>) at iplib.cc:842 #8 0x00003fffa487f3f8 in iiLoadLIB (fp=0x0, libnamebuf=0x3fffffffa6c0 "/home/jpflori/sage.git/local/share/singular/reesclos.lib", newlib= 0x3fffa4254b20 "reesclos.lib", pl=<optimized out>, autoexport=<optimized out>, tellerror=<optimized out>) at iplib.cc:950 #9 0x00003fffa487f840 in iiLibCmd (newlib=0x3fffa4254b20 "reesclos.lib", autoexport=<optimized out>, tellerror=<optimized out>, force=<optimized out>) at iplib.cc:842 #10 0x00003fffa487f3f8 in iiLoadLIB (fp=0x0, libnamebuf=0x3fffffffa8e0 "/home/jpflori/sage.git/local/share/singular/normal.lib", newlib= 0x3fffa4254a60 "normal.lib", pl=<optimized out>, autoexport=<optimized out>, tellerror=<optimized out>) at iplib.cc:950 #11 0x00003fffa487f840 in iiLibCmd (newlib=0x3fffa4254a60 "normal.lib", autoexport=<optimized out>, tellerror=<optimized out>, force=<optimized out>) at iplib.cc:842 #12 0x00003fffa4082cd8 in __pyx_pf_4sage_4libs_8singular_8function_10lib (__pyx_self=<optimized out>, __pyx_v_name='normal.lib') at build/cythonized/sage/libs/singular/function.cpp:16752 #13 __pyx_pw_4sage_4libs_8singular_8function_11lib (__pyx_self=<optimized out>, __pyx_v_name='normal.lib') at build/cythonized/sage/libs/singular/function.cpp:16623 #14 0x00003fffb7ecbfb4 in call_function (oparg=<optimized out>, pp_stack=0x3fffffffab28) at Python/ceval.c:4021 #15 PyEval_EvalFrameEx (f= Frame 0x3fff9e5b0b60, for file /home/jpflori/sage.git/local/lib/python2.7/sitepackages/sage/libs/singular/function_factory.py, line 44, in __getattr__ (self=<type unknown at remote 0x3fffa40dee90>, name='normal'), throwflag=<optimized out>) at Python/ceval.c:2679 #16 0x00003fffb7ecd7e0 in PyEval_EvalCodeEx (co=<code at remote 0x3fffa40f9430>, globals=<optimized out>, locals=<optimized out>, args=<optimized out>, argcount=<optimized out>, kws=<optimized out>, kwcount=<optimized out>, defs=0x0, defcount=0, closure=0x0) at Python/ceval.c:3265 #17 0x00003fffb7e1d5d4 in function_call (func=<function at remote 0x3fffa40fc2a8>, arg=(<type unknown at remote 0x3fffa40dee90>, 'normal__lib'), kw= 0x0) at Objects/funcobject.c:526
comment:18 Changed 6 years ago by
And this is the new piece of code in 317 in iplib.cc around line 453:
+ if ((currRing!=NULL) && + ((currRingHdl==NULL)(IDRING(currRingHdl)!=currRing) + (IDLEV(currRingHdl)>=myynest1))) + { + rSetHdl(rFindHdl(currRing,NULL)); + iiLocalRing[myynest1]=NULL; + }
In fact the whole block (not only the one included above) used to be around line 556 in 316.
comment:19 Changed 6 years ago by
In that very piece of code, Singular 401 and 317 look similar, so we might face this issue even if going for 401 directly...
comment:20 Changed 6 years ago by
Groumpf, I don't remmeber if anyone from the Singualr team has an account here on trac...
comment:21 Changed 6 years ago by
Groumpf, I don't remmeber if anyone from the Singualr team has an account here on trac...
I do, you are welcome to ask questions if you have any.
Jakob
comment:22 Changed 6 years ago by
The following segfaults with Singular 317.
 316:
sage: from sage.libs.singular import ff sage: ff.modstd__lib <sage.libs.singular.function_factory.SingularFunctionFactory object at 0x3fff9e6c5450> sage: ff.modstd__lib <sage.libs.singular.function_factory.SingularFunctionFactory object at 0x3fff9e6c5590> sage: ff.modstd__lib <sage.libs.singular.function_factory.SingularFunctionFactory object at 0x3fff9e6c5690>
 317:
sage: from sage.libs.singular import ff sage: ff.modstd__lib <sage.libs.singular.function_factory.SingularFunctionFactory object at 0x3fff9e695450> sage: ff.modstd__lib // ** redefining root my_awesome_sage_ring ** Program received signal SIGSEGV, Segmentation fault. nSetChar (r=0x3fffa42365f0) at numbers.cc:205
with backtrace:
#0 nSetChar (r=0x3fffa42365f0) at numbers.cc:205 #1 0x00003fffa49aef34 in rChangeCurrRing (r=<error reading variable: value has been optimized out>) at ring.cc:112 #2 0x00003fffa4864b54 in killlocals (v=<optimized out>) at ipshell.cc:386 #3 0x00003fffa484ce24 in iiPStart (pn=<optimized out>, v=<optimized out>) at iplib.cc:499 #4 0x00003fffa484d334 in iiMake_proc (pn=0x3fffa424fc80, pack=0x3fffa4228260, sl=0x0) at iplib.cc:612 #5 0x00003fffa484f65c in iiRunInit (p=<error reading variable: value has been optimized out>) at iplib.cc:889 #6 iiLoadLIB (fp=0x0, libnamebuf=0x3fffffffb980 "/home/jpflori/sage.git/local/share/singular/modstd.lib", newlib=0x3fffa42521c0 "modstd.lib", pl=<optimized out>, autoexport=<optimized out>, tellerror=<optimized out>) at iplib.cc:941 #7 0x00003fffa484f840 in iiLibCmd (newlib=0x3fffa42521c0 "modstd.lib", autoexport=<optimized out>, tellerror=<optimized out>, force=<optimized out>) at iplib.cc:842 #8 0x00003fffa4052cd8 in __pyx_pf_4sage_4libs_8singular_8function_10lib (__pyx_self=<optimized out>, __pyx_v_name='modstd.lib') at build/cythonized/sage/libs/singular/function.cpp:16752 ...
comment:23 Changed 6 years ago by
No issue using ./sage singular
:
> option(loadLib); > LIB "modstd.lib"; // ** loaded /home/jpflori/sage.git/local/share/singular/modstd.lib (3170,May_2014) // ** loaded /home/jpflori/sage.git/local/share/singular/parallel.lib (3170,Dec_2013) // ** loaded /home/jpflori/sage.git/local/share/singular/tasks.lib (3170,Dec_2013) // ** loaded /home/jpflori/sage.git/local/share/singular/resources.lib (3170,Dec_2013) // ** loaded /home/jpflori/sage.git/local/share/singular/modular.lib (3170,Dec_2013) // ** loaded /home/jpflori/sage.git/local/share/singular/poly.lib (3170,Sep_2013) // ** loaded /home/jpflori/sage.git/local/share/singular/ring.lib (4.0.0.0,Jun_2013) // ** loaded /home/jpflori/sage.git/local/share/singular/primdec.lib (4.0.0.0,Jun_2013) // ** loaded /home/jpflori/sage.git/local/share/singular/absfact.lib (3170,Sep_2013) // ** loaded /home/jpflori/sage.git/local/share/singular/triang.lib (3170,Sep_2013) // ** loaded /home/jpflori/sage.git/local/share/singular/matrix.lib (3170,Sep_2013) // ** loaded /home/jpflori/sage.git/local/share/singular/nctools.lib (3170,Sep_2013) // ** loaded /home/jpflori/sage.git/local/share/singular/random.lib (3170,Sep_2013) // ** loaded /home/jpflori/sage.git/local/share/singular/elim.lib (3170,Sep_2013) // ** loaded /home/jpflori/sage.git/local/share/singular/inout.lib (3170,Sep_2013) // ** loaded /home/jpflori/sage.git/local/share/singular/general.lib (3170,Sep_2013) > LIB "modstd.lib"; // ** redefining modStd ** ...
comment:24 Changed 6 years ago by
 Cc burcin added
comment:25 Changed 6 years ago by
This looks related... http://trac.sagemath.org/ticket/13447#comment:63
comment:26 Changed 6 years ago by
 Commit changed from cdedfc61ca715961acca343dea87e7e5c1163063 to 32f3be69d6a195e73e767c179d1c855886faf667
Branch pushed to git repo; I updated commit sha1. New commits:
32f3be6  Avoid redefining Singular mock ring.

comment:27 Changed 6 years ago by
 Status changed from needs_work to needs_review
Fix extracted from the discussion at #13447.
comment:28 Changed 6 years ago by
 Commit changed from 32f3be69d6a195e73e767c179d1c855886faf667 to e2d29209a8ca5c03ad8830596cc69578491df047
Branch pushed to git repo; I updated commit sha1. New commits:
e2d2920  Remove debug stuff.

comment:29 Changed 6 years ago by
 Status changed from needs_review to needs_work
There is still one doctest to fix.
comment:30 Changed 6 years ago by
 Commit changed from e2d29209a8ca5c03ad8830596cc69578491df047 to cde293057415ab28388bbdd43d813c5a21182392
Branch pushed to git repo; I updated commit sha1. New commits:
cde2930  Update doctest for Singular new behavior.

comment:31 Changed 6 years ago by
 Status changed from needs_work to needs_review
comment:32 in reply to: ↑ 14 Changed 6 years ago by
comment:33 Changed 6 years ago by
I hope so, I just picked up a minimal change from #13447.
comment:34 Changed 6 years ago by
 Reviewers set to Volker Braun
 Status changed from needs_review to positive_review
lgtm
comment:35 Changed 6 years ago by
 Status changed from positive_review to needs_work
A build with SAGE_DEBUG=yes
fails in:
sage t long src/sage/schemes/plane_curves/curve.py ********************************************************************** File "src/sage/schemes/plane_curves/curve.py", line 122, in sage.schemes.plane_curves.curve.Curve_generic.geometric_genus Failed example: C.geometric_genus() Expected: 3 Got: <BLANKLINE> // ***dError: T[3] pLength error: has 1, specified to have 2 occured at: <BLANKLINE> // ***dError: T[3] pLength error: has 1, specified to have 2 occured at: 3
there are more failures, always in geometric genus. If somebody can extract a singularonly testcase from that and report it on libsingulardevel then Hans is usually quick to patch that...
comment:36 Changed 6 years ago by
comment:37 Changed 6 years ago by
Ok it seems to be upstream and not because of our broken reference handling. I'm just discovering singular syntax and might be wrong, but I get the following:
$ ./sage singular SINGULAR / Development A Computer Algebra System for Polynomial Computations / version 317 0< by: W. Decker, G.M. Greuel, G. Pfister, H. Schoenemann \ Aug 2013 FB Mathematik der Universitaet, D67653 Kaiserslautern \ > LIB "normal.lib"; // ** loaded /home/jpflori/sage.git/local/share/singular/normal.lib (3170,Sep_2013) // ** loaded /home/jpflori/sage.git/local/share/singular/algebra.lib (3170,Sep_2013) // ** loaded /home/jpflori/sage.git/local/share/singular/matrix.lib (3170,Sep_2013) // ** loaded /home/jpflori/sage.git/local/share/singular/nctools.lib (3170,Sep_2013) // ** loaded /home/jpflori/sage.git/local/share/singular/random.lib (3170,Sep_2013) // ** loaded /home/jpflori/sage.git/local/share/singular/reesclos.lib (3171,Jan_2014) // ** loaded /home/jpflori/sage.git/local/share/singular/locnormal.lib (3171,Jan_2014) // ** loaded /home/jpflori/sage.git/local/share/singular/modstd.lib (3170,May_2014) // ** loaded /home/jpflori/sage.git/local/share/singular/parallel.lib (3170,Dec_2013) // ** loaded /home/jpflori/sage.git/local/share/singular/tasks.lib (3170,Dec_2013) // ** loaded /home/jpflori/sage.git/local/share/singular/resources.lib (3170,Dec_2013) // ** loaded /home/jpflori/sage.git/local/share/singular/modular.lib (3170,Dec_2013) // ** loaded /home/jpflori/sage.git/local/share/singular/hnoether.lib (3170,Sep_2013) // ** loaded /home/jpflori/sage.git/local/share/singular/primitiv.lib (3170,Sep_2013) // ** loaded /home/jpflori/sage.git/local/share/singular/ring.lib (4.0.0.0,Jun_2013) // ** loaded /home/jpflori/sage.git/local/share/singular/inout.lib (3170,Sep_2013) // ** loaded /home/jpflori/sage.git/local/share/singular/presolve.lib (3170,Sep_2013) // ** loaded /home/jpflori/sage.git/local/share/singular/elim.lib (3170,Sep_2013) // ** loaded /home/jpflori/sage.git/local/share/singular/primdec.lib (4.0.0.0,Jun_2013) // ** loaded /home/jpflori/sage.git/local/share/singular/absfact.lib (3170,Sep_2013) // ** loaded /home/jpflori/sage.git/local/share/singular/triang.lib (3170,Sep_2013) // ** loaded /home/jpflori/sage.git/local/share/singular/sing.lib (3170,Sep_2013) // ** loaded /home/jpflori/sage.git/local/share/singular/poly.lib (3170,Sep_2013) // ** loaded /home/jpflori/sage.git/local/share/singular/general.lib (3170,Sep_2013) > ring R=5,(x,y,z),dp; // ** Could not open dynamic library: /home/jpflori/sage.git/local/bin/p_Procs_FieldIndep.sog // ** Error message from system: /home/jpflori/sage.git/local/bin/p_Procs_FieldIndep.sog: cannot open shared object file: No such file or directory // ** Singular will work properly, but much slower. // ** See the INSTALL section in the Singular manual for details. > ideal I = x^10 + y^7*z^3 + z^10; > genus(I); // ***dError: T[3] pLength error: has 1, specified to have 2 occured at: // ***dError: T[3] pLength error: has 1, specified to have 2 occured at: 3
Also note the Singular's warning, so it seems our way of launching singular might not be the best.
comment:38 Changed 6 years ago by
Looks good, can you post to libsingulardevel?
comment:39 Changed 6 years ago by
I'm not subscribed there and I just applied. In the meantime I posted on the forum on their homepage:
(And I don't have access to the bugtracker because of the unusual port it uses.)
comment:40 Changed 6 years ago by
Great a fix was posted upstream and a 317p1 version released. I'm in the process of testing it.
comment:41 Changed 6 years ago by
 Commit changed from cde293057415ab28388bbdd43d813c5a21182392 to ac60a769503ec0ad4a227ad9cec0aa7cebd10bb6
comment:42 Changed 6 years ago by
 Description modified (diff)
 Status changed from needs_work to needs_review
 Summary changed from Upgrade to Singular317 to Upgrade to Singular317p1
comment:43 Changed 6 years ago by
 Commit changed from ac60a769503ec0ad4a227ad9cec0aa7cebd10bb6 to 9b3b9333ca798420edcfd07f03e2ace0991d1431
Branch pushed to git repo; I updated commit sha1. New commits:
9b3b933  Use actual upstream version number for Singular.

comment:44 Changed 6 years ago by
Some additional patches were integrated into the 317p1 release.
Hopefully the p1 part of the upstream version number and the p0 from our patch level won't clash.
comment:45 Changed 6 years ago by
 Description modified (diff)
comment:47 Changed 6 years ago by
I got two failing doctests in sage/interfaces/test.py
and indeed it seems I can get Singular to crash by issuing:
"""
sage: 2*singular('2')
Singular crashed  automatically restarting.
"""
but then the same command is ok.
And just
"""
sage: singular('2')
2
"""
is ok.
So maybe coercion is involved here... I suggest to deal with it in a separate ticket as it only involves debug builds.
comment:48 Changed 6 years ago by
I also get them, but only on the buildbot with SAGE_DEBUG=yes
sage t long src/sage/interfaces/tests.py ********************************************************************** File "src/sage/interfaces/tests.py", line 20, in sage.interfaces.tests Failed example: a = 2 * singular('2'); a Exception raised: Traceback (most recent call last): File "/mnt/disk/home/buildslavesage/slave/sage_git/build/local/lib/python2.7/sitepackages/sage/doctest/forker.py", line 488, in _run self.compile_and_execute(example, compiler, test.globs) File "/mnt/disk/home/buildslavesage/slave/sage_git/build/local/lib/python2.7/sitepackages/sage/doctest/forker.py", line 851, in compile_and_execute exec(compiled, globs) File "<doctest sage.interfaces.tests[7]>", line 1, in <module> a = Integer(2) * singular('2'); a File "sage/structure/element.pyx", line 1763, in sage.structure.element.RingElement.__mul__ (build/cythonized/sage/structure/element.c:16813) File "sage/structure/coerce.pyx", line 797, in sage.structure.coerce.CoercionModel_cache_maps.bin_op (build/cythonized/sage/structure/coerce.c:7925) File "sage/structure/coerce.pyx", line 793, in sage.structure.coerce.CoercionModel_cache_maps.bin_op (build/cythonized/sage/structure/coerce.c:7872) File "sage/structure/element.pyx", line 1758, in sage.structure.element.RingElement.__mul__ (build/cythonized/sage/structure/element.c:16745) File "sage/structure/element.pyx", line 1765, in sage.structure.element.RingElement._mul_ (build/cythonized/sage/structure/element.c:16890) File "/mnt/disk/home/buildslavesage/slave/sage_git/build/local/lib/python2.7/sitepackages/sage/interfaces/interface.py", line 1121, in _mul_ return self._operation('*', right) File "/mnt/disk/home/buildslavesage/slave/sage_git/build/local/lib/python2.7/sitepackages/sage/interfaces/interface.py", line 1078, in _operation raise TypeError(msg) TypeError: Singular error: ? `sage0` is not defined ? error occurred in or before STDIN line 17: `def sage23=sage22 * sage0;` ********************************************************************** File "src/sage/interfaces/tests.py", line 22, in sage.interfaces.tests Failed example: parent(a) Expected: Singular Got: Maxima **********************************************************************
comment:49 Changed 6 years ago by
 Status changed from positive_review to needs_work
Can you try to fix this? If we merge it then that makes one of our buildbots basically useless...
comment:50 Changed 6 years ago by
I'll give it a shot, but as Singular is a standalone process I need some dark magic to attach gdb to it and debug it.
comment:51 Changed 6 years ago by
Backtrace:
(gdb) bt #0 0x00000000102e98a8 in p_Init (r=0x0) at ../kernel/pInline1.h:108 #1 0x00000000102edd6c in p_One (r=0x0) at p_polys.cc:1170 #2 0x00000000100ba578 in jjE (res=0x3ffff92fe068, v=0x3ffff92fb388) at iparith.cc:4056 #3 0x00000000100cd7b0 in iiExprArith1 (res=0x3ffff92fe068, a=0x3ffff92fb388, op=291) at iparith.cc:7992 #4 0x000000001011d390 in yyparse () at grammar.y:626 #5 0x00000000100a619c in main (argc=4, argv=0x3ffff92ff628) at tesths.cc:245
comment:52 Changed 6 years ago by
Run with SAGE_PEXPECT_LOG=yes
, this will log to $DOT_SAGE/pexpect_logs
comment:53 Changed 6 years ago by
Thanks a lot for the pointer. Here is what Singular is fed with:
... > def sage1="redTail"; > def sage2=option(sage1); // ** right side is not a datum, assignment ignored^M > if(defined(sage1)){kill sage1;};if(defined(sage2)){kill sage2;};def sage3="redThrough"; > def sage4=option(sage3); // ** right side is not a datum, assignment ignored^M > if(defined(sage3)){kill sage3;};if(defined(sage4)){kill sage4;};def sage5="intStrategy"; > def sage6=option(sage5); // ** right side is not a datum, assignment ignored^M > option(get); 100663424,10321^M > if(defined(sage5)){kill sage5;};if(defined(sage6)){kill sage6;};intvec sage7=100663424,10321; > def sage0=2; > print(sage0); 2^M > def sage8=2; > def sage9=0; > def sage10=gen(sage9); Singular : signal 11 (v: 3170):^M current line:>>def sage10=gen(sage9);<<^M Segment fault/Bus error occurred (r:1416496567)^M please inform the authors^M ^M // ***dError: Caught Signal 11 occured at: ^M quit
And on relaunch:
... > def sage11="redTail"; > def sage12=option(sage11); // ** right side is not a datum, assignment ignored^M > if(defined(sage11)){kill sage11;};if(defined(sage12)){kill sage12;};def sage13="redThrough"; > def sage14=option(sage13); // ** right side is not a datum, assignment ignored^M > if(defined(sage13)){kill sage13;};if(defined(sage14)){kill sage14;};def sage15="intStrategy"; > def sage16=option(sage15); // ** right side is not a datum, assignment ignored^M > option(get); 100663424,10321^M > if(defined(sage15)){kill sage15;};if(defined(sage16)){kill sage16;};intvec sage17=100663424,10321; > def sage10=gen(sage9); ? `sage9` is not defined^M ? error occurred in or before STDIN line 10: `def sage10=gen(sage9);`^M > def sage18=gen(); ? error occurred in or before STDIN line 11: `def sage18=gen();`^M ? last reserved name was `gen`^M skipping text from `;` error at token `)`^M > def sage19=_an_element_; ? error occurred in or before STDIN line 12: `def sage19=_an_element_;`^M ? last reserved name was `def`^M skipping text from `;` error at token `$INVALID$`^M > def sage20=pi; ? `pi` is undefined^M ? error occurred in or before STDIN line 13: `def sage20=pi;`^M > def sage21=1.2; ? no ring active^M ? error occurred in or before STDIN line 14: `def sage21=1.2;`^M > def sage22=2; > def sage23=2; > def sage24=sage23 * sage8; ? `sage8` is not defined^M ? error occurred in or before STDIN line 17: `def sage24=sage23 * sage8;`^M > def sage25=2; > print(sage25); 2^M > def sage26=2; > def sage27=2; > def sage28=sage27 * sage26; > print(sage28); 4^M > quit
comment:54 Changed 6 years ago by
Ok, the issue is that currRing
is NULL
when pOne
is called.
comment:55 Changed 6 years ago by
It seems Singular 316 was more careful:
> def sage8=2; > def sage9=0; > def sage10=gen(sage9); ? no ring active ? error occurred in or before STDIN line 14: `def sage10=gen(sage9);`
comment:56 Changed 6 years ago by
Looks like an upstream bug, did you post it there?
comment:57 Changed 6 years ago by
Not yet, still investigating, it seems the following change (here reversed) between 316 and 317 may be the issue:
diff druN latest.orig/Singular/iparith.cc latest.new/Singular/iparith.cc  latest.orig/Singular/iparith.cc 20141119 05:06:05.000000000 0800 +++ latest.new/Singular/iparith.cc 20141120 08:30:25.068389635 0800 @@ 8477,7 +8477,6 @@ sArithBase.sCmds[i].name); sArithBase.sCmds[i].alias=1; }  #if 0 if (currRingHdl==NULL) { #ifdef SIQ @@ 8493,7 +8492,6 @@ } #endif }  #endif if (!expected_parms) { switch (tok)
comment:58 Changed 6 years ago by
For future ref the change was part of Singular commit:
comment:59 Changed 6 years ago by
Upstream report at:
And removing the "#if 0" makes the simple test pass. Running again the testsuite now.
comment:60 Changed 6 years ago by
 Commit changed from 9b3b9333ca798420edcfd07f03e2ace0991d1431 to 0a5f6951bd84d6596c292e26e8ad9b8101ca51f8
Branch pushed to git repo; I updated commit sha1. New commits:
0a5f695  Try to prevent Singular from segfaulting.

comment:61 Changed 6 years ago by
 Status changed from needs_work to needs_review
Things look fine for me except for timeouts which I already got before in debug mode, and two spurious errors I can not reproduce.
comment:62 Changed 6 years ago by
 Status changed from needs_review to needs_work
Fails on OSX with (this is a fresh install):
g++ O2 g fPIC I.. I/Users/buildslavesage/slave/sage_git/build/local pipe I. I.. I/Users/buildslavesage/slave/sage_git/build/local I/Users/buildslavesage/slave/sage_git/build/local/include I/Users/buildslavesage/slave/sage_git/build/local/include I/Users/buildslavesage/slave/sage_git/build/local/include I/Users/buildslavesage/slave/sage_git/build/local/include fnoimplicittemplates I.. I/Users/buildslavesage/slave/sage_git/build/local DNDEBUG DOM_NDEBUG Dx86_64Mac_darwin DHAVE_CONFIG_H \ o Singular \ tesths.cc iparith.o mpsr_Tok.o claptmpl.o\ grammar.o scanner.o attrib.o blackbox.o eigenval_ip.o extra.o fehelp.o feOpt.o ipassign.o ipconv.o ipid.o iplib.o ipprint.o ipshell.o newstruct.o lists.o sdb.o fglm.o interpolation.o silink.o ssiLink.o s_buff.o subexpr.o janet.o wrapper.o libparse.o sing_win.o gms.o pcv.o maps_ip.o walk.o walk_ip.o cntrlc.o misc_ip.o calcSVD.o pipeLink.o Minor.o MinorProcessor.o MinorInterface.o bigintm.o pyobject_setup.o denom_list.o minpoly.o countedref.o singmathic.o semaphore.o rlimit.o slInit_Static.o mpsr_Put.o mpsr_PutPoly.o mpsr_GetPoly.o mpsr_sl.o mpsr_Get.o mpsr_GetMisc.o mpsr_Error.o ndbm.o sing_dbm.o dynamic L/Users/buildslavesage/slave/sage_git/build/local/kernel L../kernel lkernel L/Users/buildslavesage/slave/sage_git/build/local/lib L/Users/buildslavesage/slave/sage_git/build/local/lib L/Users/buildslavesage/slave/sage_git/build/local/lib lflint lmpfr lmpir ldl lm lsingfac lsingcf lflint lmpfr lntl lgmp lreadline ltermcap lpthread lm lomalloc ../kernel/mmalloc.o ld: warning: directory not found for option 'L/Users/buildslavesage/slave/sage_git/build/local/kernel' duplicate symbol NTL::Mat<NTL::zz_p>::Mat() in: claptmpl.o /Users/buildslavesage/slave/sage_git/build/local/lib/libsingcf.a(ftmpl_inst.o)
and more like that, see http://build.sagedev.org/release/builders/%20%20fast%20Volker%20MiniMac%20%28OSX%2010.10%20x86_64%29%20full/builds/0/steps/compile_1/logs/singular
comment:63 Changed 6 years ago by
Can you try without templates.patch
?
comment:64 Changed 6 years ago by
Anyway, I don't see any use of the instantiated NTL classes within the Singular
directory files, so I'll just update our patches to remove the explicit instantiations in claptmpl.cc
.
comment:65 Changed 6 years ago by
 Commit changed from 0a5f6951bd84d6596c292e26e8ad9b8101ca51f8 to 4e287c4a5a72e1a23c35046c71bddde9786110cc
Branch pushed to git repo; I updated commit sha1. New commits:
4e287c4  Remove useless explicit templates instantiations in Singular.

comment:66 Changed 6 years ago by
 Status changed from needs_work to needs_review
comment:67 Changed 6 years ago by
 Branch changed from u/jpflori/ticket/17184 to 4e287c4a5a72e1a23c35046c71bddde9786110cc
 Resolution set to fixed
 Status changed from needs_review to closed
boxen is down, cannot test...
New commits:
Upgrade to Singular317