Macaulay2 / M2

The primary source code repository for Macaulay2, a system for computing in commutative algebra, algebraic geometry and related fields.
https://macaulay2.com
343 stars 231 forks source link

Out of memory running SpecialFanoFourfolds example on i386 #1539

Open d-torrance opened 3 years ago

d-torrance commented 3 years ago

On a build in an i386 chroot, I get the following when running the detectCongruence example:

i7 : -- A general GM fourfold of discriminant 20
     X = specialGushelMukaiFourfold("surface of degree 9 and genus 2",ZZ/33331);

o7 : SpecialGushelMukaiFourfold (Gushel-Mukai fourfold containing a surface of degree 9 and sectional genus 2)

i8 : describe X

o8 = Special Gushel-Mukai fourfold of discriminant 20
     containing a surface in PP^8 of degree 9 and sectional genus 2
     cut out by 19 hypersurfaces of degree 2
     and with class in G(1,4) given by 6*s_(3,1)+3*s_(2,2)
     Type: ordinary
     (case 17 of Table 1 in arXiv:2002.07026)

i9 : time f = detectCongruence X;

 *** out of memory trying to allocate 131108 bytes, exiting ***
DanGrayson commented 3 years ago

@giovannistagliano -- can we simplify this example?

giovannistagliano commented 3 years ago

Maybe, in this package it's better to enable the options:
AuxiliaryFiles=>true, CacheExampleOutput => true Let me know if I need to make a pull request with the changes.

DanGrayson commented 3 years ago

No, we like running examples to make sure everything is working. Let's just make the example less demanding.

giovannistagliano commented 3 years ago

OK, I'll think about how to simplify the example. However, on my laptop that code is not so hard. It takes less than 10 seconds and uses about 200 MB of memory.

DanGrayson commented 3 years ago

Is your laptop 64 bit or 32 bit?

DanGrayson commented 3 years ago

(Maybe it does point to a real problem elsewhere in the system.)

giovannistagliano commented 3 years ago

Is your laptop 64 bit or 32 bit?

It's 64 bit with Ubuntu 20.04 and M2 1.16.

DanGrayson commented 3 years ago

Maybe there's some sort of problem that causes it to fail on a 32 bit machine. It's hard to imagine what it might be, though. I'll set up a 32-bit debian vm and we'll see.

DanGrayson commented 3 years ago

Okay, I've reproduced the problem here.

d-torrance commented 3 years ago

As with #1429, I'm fixing this temporarily in the Debian package by using a canned example: https://salsa.debian.org/science-team/macaulay2/-/blob/master/debian/patches/skip-special-fano-fourfolds-example.patch

Would this be worth submitting upstream?

d-torrance commented 3 years ago

Not sure if it's worth a separate issue, but one of the tests is also running out of memory on i386:

Macaulay2, version 1.16
--storing configuration for package FourTiTwo in /home/dtorrance/.Macaulay2/init-FourTiTwo.m2
--storing configuration for package Topcom in /home/dtorrance/.Macaulay2/init-Topcom.m2
with packages: ConwayPolynomials, Elimination, IntegralClosure, InverseSystems,
               LLLBases, MinimalPrimes, PrimaryDecomposition, ReesAlgebra,
               TangentCone, Truncations

i1 : check_2 "SpecialFanoFourfolds"
--warning: symbol "resultant" in Elimination.Dictionary is shadowed by a symbol in Resultants.Dictionary
--  use the synonym Elimination$resultant
--warning: symbol "discriminant" in Elimination.Dictionary is shadowed by a symbol in Resultants.Dictionary
--  use the synonym Elimination$discriminant
--storing configuration for package CharacteristicClasses in /home/dtorrance/.Macaulay2/init-CharacteristicClasses.m2
-- running test 2 of package SpecialFanoFourfolds on line 2355 in file M2/Macaulay2/packages/SpecialFanoFourfolds.m2
--    rerun with: check_2 "SpecialFanoFourfolds"
--making test results
 ulimit -c unlimited; ulimit -t 700; ulimit -m 850000; ulimit -s 8192; ulimit -n 512;  cd /tmp/M2-852996-0/1-rundir/; GC_MAXIMUM_HEAP_SIZE=400M "/build/macaulay2-1.16+git55.94c4b7d+ds/M2/usr-dist/i686-Linux-Debian-unstable/bin/M2-binary" --int --no-randomize --no-readline --silent --stop --print-width 129 -e 'needsPackage("SpecialFanoFourfolds", Reload => true, FileName => "/build/macaulay2-1.16+git55.94c4b7d+ds/M2/Macaulay2/packages/SpecialFanoFourfolds.m2")' <"/tmp/M2-852996-0/0.m2" >>"/tmp/M2-852996-0/0.tmp" 2>&1
/tmp/M2-852996-0/0.tmp:0:1: (output file) error: Macaulay2 exited with status code 1
/tmp/M2-852996-0/0.m2:0:1: (input file)
M2: *** Error 1
stdio:1:6:(3): error: test #2 of package SpecialFanoFourfolds failed

i2 : get "/tmp/M2-852996-0/0.tmp"

o2 = -- -*- M2-comint -*- hash: 598054605

     i1 : --/build/macaulay2-1.16+git55.94c4b7d+ds/M2/Macaulay2/packages/SpecialFanoFourfolds.m2:2355: location of test code

          K = ZZ/65521;

     i2 : X = for i from 1 to 21 list (
             A = tables(i,K);
             time specialGushelMukaiFourfold((rationalMap(A_0,max flatten degrees A_0,Dominant=>2)) A_1,InputCheck=>0)
          ); 
          -- used 0.0918125 seconds
          -- used 0.0856458 seconds
          -- used 0.888695 seconds
          -- used 0.167594 seconds
          -- used 0.449329 seconds
          -- used 0.0657483 seconds
          -- used 0.0865641 seconds
          -- used 0.215104 seconds
          -- used 0.0643283 seconds
          -- used 0.523828 seconds
          -- used 0.756105 seconds
          -- used 1.0537 seconds
          -- used 0.663247 seconds
          -- used 0.261736 seconds
          -- used 0.321594 seconds
          -- used 0.481104 seconds
          -- used 0.391169 seconds
          -- used 0.593812 seconds
          -- used 0.735326 seconds
          -- used 0.134632 seconds
          -- used 0.640885 seconds

     i3 : assert(apply(X,w -> time discriminant w) === {10,10,10,10,10,10,12,12,12,16,16,16,18,18,18,18,20,20,24,24,26})

      *** out of memory trying to allocate 131108 bytes, exiting ***
d-torrance commented 3 years ago

I'm getting a couple more new test failures on i386 after the recent changes to this package:

../m2/debugging.m2:20:6:(1):[9]: error: tests #1, 4 of package SpecialFanoFourfolds failed:

i12 : --
      time X6 = specialGushelMukaiFourfold("K3 surface of genus 8",K,InputCheck=>0);
     -- used 1.81242 seconds

o12 : SpecialGushelMukaiFourfold (Gushel-Mukai fourfold containing a surface of degree 14 and sectional genus 8)

i13 : time assert(discriminant X6 == 10)

 *** out of memory trying to allocate 131108 bytes, exiting ***

             if s == 2 then inverse f;
             g = f#"inverseRationalMap";
             assert(g =!= null);
             p = point source f;
             time assert(g f p == p);
         );   
     );

 *** out of memory trying to allocate 131108 bytes, exiting ***

../m2/testing.m2:59:22:(1):[8]: --back trace--
../m2/methods.m2:119:80:(1):[7]: --back trace--
../m2/option.m2:16:8:(1):[6]: --back trace--
../m2/testing.m2:44:33:(1):[5]: --back trace--
../m2/methods.m2:119:80:(1):[4]: --back trace--
../m2/option.m2:16:8:(1):[3]: --back trace--
currentString:1:83:(3):[2]: --back trace--
Macaulay2/Core/startup.m2.in:563:33:(0):[1]: --back trace--
Macaulay2/Core/startup.m2.in:674:6:(0): --back trace--
make[4]: *** [Makefile:39: check-SpecialFanoFourfolds] Error 1
giovannistagliano commented 3 years ago

Some of the tests in that package are actually hard, but all of them run well in a reasonable time of about 5 minutes on my laptop with Ubuntu 20.04 64-bit (model processor: Intel(R) Core(TM) i7-6500U CPU @ 2.50GHz; number CPUs: 4). Anyway, the code in the line i13 should terminate in less than 3 seconds.

mahrud commented 3 years ago

Why does it matter if the tests run on all architectures? You don't need to run them in the cloud to build the package, but if someone has sufficient memory and a i386 machine, they could presumably run it.

d-torrance commented 3 years ago

Why does it matter if the tests run on all architectures? You don't need to run them in the cloud to build the package, but if someone has sufficient memory and a i386 machine, they could presumably run it.

A couple reasons I report these:

mahrud commented 3 years ago

Right, those are great reasons. I wasn't clear enough, but I meant specifically for out of memory errors. I suppose there can be memory leaks on one architecture and not another, but at least in this case the computation seems legitimately intensive.

d-torrance commented 3 years ago

Right, those are great reasons. I wasn't clear enough, but I meant specifically for out of memory errors. I suppose there can be memory leaks on one architecture and not another, but at least in this case the computation seems legitimately intensive.

Gotcha. I still need to patch them out for the Debian package regardless of what's causing the error. :)

A bigger question, I suppose, is whether a package's test suite should include larger computations like these that have a nontrivial probability of running out of memory, or whether they should stick to smaller tests.

DanGrayson commented 3 years ago

They should stick to smaller tests -- that's why I put in those ulimit commands -- to enforce that.

DanGrayson commented 3 years ago

One possibility to consider, though, instead of disabling tests that use a little too much memory, just use a bigger memory limit for all the tests in debian distributions.

d-torrance commented 3 years ago

One possibility to consider, though, instead of disabling tests that use a little too much memory, just use a bigger memory limit for all the tests in debian distributions.

Yeah, I may play around with this at some point.

d-torrance commented 3 years ago

Test 4 was changed slightly in #1905. I'm going to stop skipping it for now in PPA builds to see if this issue still pops up in the new version.

d-torrance commented 3 years ago

A few PPA build failures in this package (and CoincidentRootLoci) after #1905:

Note: I'll be updating the stack traces as I get them now that #2018 has been merged.

example for toGrass(Ideal)

-- making example results for "toGrass(Ideal)"                             
 ulimit -c unlimited; ulimit -t 700; ulimit -m 850000; ulimit -s 8192; ulimit -n 512;  cd /tmp/M2-1612-0/7-rundir/; GC_MAXIMUM_HEAP_SIZE=400M "/<<BUILDDIR>>/macaulay2-1.17.2.1+git202103291937/M2/usr-dist/x86_64-Linux-Ubuntu-20.04/bin/M2-binary" -q --int --no-randomize --no-readline --silent --stop --print-width 129 -e 'needsPackage("SpecialFanoFourfolds",Reload=>true,FileName=>"/<<BUILDDIR>>/macaulay2-1.17.2.1+git202103291937/M2/Macaulay2/packages/SpecialFanoFourfolds.m2")' <"/tmp/M2-1612-0/0_to__Grass_lp__Ideal_rp.m2" >>"/<<BUILDDIR>>/macaulay2-1.17.2.1+git202103291937/M2/usr-dist/common/share/doc/Macaulay2/SpecialFanoFourfolds/example-output/_to__Grass_lp__Ideal_rp.errors" 2>&1
/<<BUILDDIR>>/macaulay2-1.17.2.1+git202103291937/M2/usr-dist/common/share/doc/Macaulay2/SpecialFanoFourfolds/example-output/_to__Grass_lp__Ideal_rp.errors:0:1: (output file) error: Macaulay2 exited with status code 1
/tmp/M2-1612-0/0_to__Grass_lp__Ideal_rp.m2:0:1: (input file)
M2: *** Error 1
 -- 8.106 seconds elapsed

...

../../m2/debugging.m2:20:6:(1):[9]: error: installPackage: 1 error(s) occurred running examples for package SpecialFanoFourfolds:

_to__Grass.errors
*****************

i1 : P8 = ZZ/33331[x_0..x_8];

i2 : time X = specialGushelMukaiFourfold(ideal(x_6-x_7, x_5, x_3-x_4, x_1, x_0-x_4, x_2*x_7-x_4*x_8), ideal(x_4*x_6-x_3*x_7+x_1*x_8, x_4*x_5-x_2*x_7+x_0*x_8, x_3*x_5-x_2*x_6+x_0*x_8+x_1*x_8-x_5*x_8, x_1*x_5-x_0*x_6+x_0*x_7+x_1*x_7-x_5*x_7, x_1*x_2-x_0*x_3+x_0*x_4+x_1*x_4-x_2*x_7+x_0*x_8, x_0^2+x_0*x_1+x_1^2+x_0*x_2+2*x_0*x_3+x_1*x_3+x_2*x_3+x_3^2-x_0*x_4-x_1*x_4-2*x_2*x_4-x_3*x_4-2*x_4^2+x_0*x_5+x_2*x_5+x_5^2+2*x_0*x_6+x_1*x_6+2*x_2*x_6+x_3*x_6+x_5*x_6+x_6^2-3*x_4*x_7+2*x_5*x_7-x_7^2+x_1*x_8+x_3*x_8-3*x_4*x_8+2*x_5*x_8+x_6*x_8-x_7*x_8));
     -- used 1.55308 seconds

o2 : SpecialGushelMukaiFourfold (Gushel-Mukai fourfold containing a surface of degree 2 and sectional genus 0)

i3 : time toGrass X
-- SIGSEGV
-* stack trace, pid: 30397
 0# stack_trace(std::ostream&, bool) at ./M2/Macaulay2/d/main.cpp:124
 1# segv_handler at ./M2/Macaulay2/d/main.cpp:240
 2# 0x000003FFA80AFD26
 3# MonomialIdeal::sat(MonomialIdeal const&) const at ./M2/Macaulay2/e/monideal.cpp:787
 4# rawSaturateMonomialIdeal2 at interface/monomial-ideal.cpp:188
 5# interface_rawSaturate at ./M2/Macaulay2/d/interface.dd:303
 6# evaluate_evalraw at ./M2/Macaulay2/d/evaluate.d:1297
 7# evaluate_applyFCCS at ./M2/Macaulay2/d/evaluate.d:824
 8# evaluate_evalraw at ./M2/Macaulay2/d/evaluate.d:1293
 9# evaluate_evalraw at ./M2/Macaulay2/d/evaluate.d:1257
10# evaluate_evalraw at ./M2/Macaulay2/d/evaluate.d:1257

example for specialGushelMukaiFourfold

 -- making example results for "specialGushelMukaiFourfold"                 
 ulimit -c unlimited; ulimit -t 700; ulimit -m 850000; ulimit -s 8192; ulimit -n 512;  cd /tmp/M2-30012-0/16-rundir/; GC_MAXIMUM_HEAP_SIZE=400M "/<<BUILDDIR>>/macaulay2-1.17.2.1+git202103291937/M2/usr-dist/s390x-Linux-Ubuntu-20.10/bin/M2-binary" -q --int --no-randomize --no-readline --silent --stop --print-width 129 -e 'needsPackage("SpecialFanoFourfolds",Reload=>true,FileName=>"/<<BUILDDIR>>/macaulay2-1.17.2.1+git202103291937/M2/Macaulay2/packages/SpecialFanoFourfolds.m2")' <"/tmp/M2-30012-0/0_special__Gushel__Mukai__Fourfold.m2" >>"/<<BUILDDIR>>/macaulay2-1.17.2.1+git202103291937/M2/usr-dist/common/share/doc/Macaulay2/SpecialFanoFourfolds/example-output/_special__Gushel__Mukai__Fourfold.errors" 2>&1
/<<BUILDDIR>>/macaulay2-1.17.2.1+git202103291937/M2/usr-dist/common/share/doc/Macaulay2/SpecialFanoFourfolds/example-output/_special__Gushel__Mukai__Fourfold.errors:0:1: (output file) error: Macaulay2 exited with status code 1
/tmp/M2-30012-0/0_special__Gushel__Mukai__Fourfold.m2:0:1: (input file)
M2: *** Error 1
 -- 5.04155 seconds elapsed

...

../../m2/debugging.m2:20:6:(1):[9]: error: installPackage: 1 error(s) occurred running examples for package SpecialFanoFourfolds:

_special__Gushel__Mukai__Fourfold.errors
****************************************

o4 : Ideal of ringP8

i5 : time X = specialGushelMukaiFourfold(idealS,idealX);
     -- used 1.56207 seconds

o5 : SpecialGushelMukaiFourfold (Gushel-Mukai fourfold containing a surface of degree 2 and sectional genus 0)

i6 : time describe X
-- SIGSEGV
-* stack trace, pid: 30627
 0# stack_trace(std::ostream&, bool) at ./M2/Macaulay2/d/main.cpp:124
 1# segv_handler at ./M2/Macaulay2/d/main.cpp:240
 2# 0x000003FF80E308EE
 3# MonomialIdeal::sat(MonomialIdeal const&) const at ./M2/Macaulay2/e/monideal.cpp:787
 4# rawSaturateMonomialIdeal2 at interface/monomial-ideal.cpp:188
 5# interface_rawSaturate at ./M2/Macaulay2/d/interface.dd:303
 6# evaluate_evalraw at ./M2/Macaulay2/d/evaluate.d:1297
 7# evaluate_applyFCCS at ./M2/Macaulay2/d/evaluate.d:824
 8# evaluate_evalraw at ./M2/Macaulay2/d/evaluate.d:1293
 9# evaluate_evalraw at ./M2/Macaulay2/d/evaluate.d:1257
10# evaluate_evalraw at ./M2/Macaulay2/d/evaluate.d:1257

example for toGrass

 -- making example results for "toGrass"                                    
 ulimit -c unlimited; ulimit -t 700; ulimit -m 850000; ulimit -s 8192; ulimit -n 512;  cd /tmp/M2-25572-0/31-rundir/; GC_MAXIMUM_HEAP_SIZE=400M "/<<BUILDDIR>>/macaulay2-1.18.0.1+git202105281346/M2/usr-dist/s390x-Linux-Ubuntu-21.04/bin/M2-binary" -q --int --no-randomize --no-readline --silent --stop --print-width 129 -e 'needsPackage("SpecialFanoFourfolds",Reload=>true,FileName=>"/<<BUILDDIR>>/macaulay2-1.18.0.1+git202105281346/M2/Macaulay2/packages/SpecialFanoFourfolds.m2")' <"/tmp/M2-25572-0/0_to__Grass.m2" >>"/<<BUILDDIR>>/macaulay2-1.18.0.1+git202105281346/M2/usr-dist/common/share/doc/Macaulay2/SpecialFanoFourfolds/example-output/_to__Grass.errors" 2>&1
/<<BUILDDIR>>/macaulay2-1.18.0.1+git202105281346/M2/usr-dist/common/share/doc/Macaulay2/SpecialFanoFourfolds/example-output/_to__Grass.errors:0:1: (output file) error: Macaulay2 exited with status code 1
/tmp/M2-25572-0/0_to__Grass.m2:0:1: (input file)
M2: *** Error 1
 -- 5.15871 seconds elapsed
 -- storing example results in ../../../usr-dist/common/share/doc/Macaulay2/SpecialFanoFourfolds/example-output/_to__Grass.out
 -- warning: missing file /<<BUILDDIR>>/macaulay2-1.18.0.1+git202105281346/M2/usr-dist/common/share/doc/Macaulay2/SpecialFanoFourfolds/example-output/_to__Grass.out

...

../../m2/debugging.m2:20:6:(1):[9]: error: installPackage: 1 error(s) occurred running examples for package SpecialFanoFourfolds:

_to__Grass.errors
*****************
-- -*- M2-comint -*- hash: -1007410934

i1 : x = gens ring PP_(ZZ/33331)^8;

i2 : X = specialGushelMukaiFourfold(ideal(x_6-x_7, x_5, x_3-x_4, x_1, x_0-x_4, x_2*x_7-x_4*x_8), ideal(x_4*x_6-x_3*x_7+x_1*x_8, x_4*x_5-x_2*x_7+x_0*x_8, x_3*x_5-x_2*x_6+x_0*x_8+x_1*x_8-x_5*x_8, x_1*x_5-x_0*x_6+x_0*x_7+x_1*x_7-x_5*x_7, x_1*x_2-x_0*x_3+x_0*x_4+x_1*x_4-x_2*x_7+x_0*x_8, x_0^2+x_0*x_1+x_1^2+x_0*x_2+2*x_0*x_3+x_1*x_3+x_2*x_3+x_3^2-x_0*x_4-x_1*x_4-2*x_2*x_4-x_3*x_4-2*x_4^2+x_0*x_5+x_2*x_5+x_5^2+2*x_0*x_6+x_1*x_6+2*x_2*x_6+x_3*x_6+x_5*x_6+x_6^2-3*x_4*x_7+2*x_5*x_7-x_7^2+x_1*x_8+x_3*x_8-3*x_4*x_8+2*x_5*x_8+x_6*x_8-x_7*x_8));

o2 : ProjectiveVariety, GM fourfold containing a surface of degree 2 and sectional genus 0

i3 : time toGrass X
-- SIGSEGV
-* stack trace, pid: 26009
 0# stack_trace(std::ostream&, bool) at ./M2/Macaulay2/d/main.cpp:124
 1# segv_handler at ./M2/Macaulay2/d/main.cpp:240
 2# 0x000003FF9B6AEDA6
 3# MonomialIdeal::sat(MonomialIdeal const&) const at ./M2/Macaulay2/e/monideal.cpp:787
 4# rawSaturateMonomialIdeal2 at interface/monomial-ideal.cpp:188
 5# interface_rawSaturate at ./M2/Macaulay2/d/interface.dd:303
 6# evaluate_evalraw at ./M2/Macaulay2/d/evaluate.d:1297
 7# evaluate_applyFCCS at ./M2/Macaulay2/d/evaluate.d:824
 8# evaluate_evalraw at ./M2/Macaulay2/d/evaluate.d:1293
 9# evaluate_evalraw at ./M2/Macaulay2/d/evaluate.d:1257

example for CoincidentRootLocus * CoincidentRootLocus

*arm64, Ubuntu 21.04

-- making example results for "CoincidentRootLocus * CoincidentRootLocus"  
 ulimit -c unlimited; ulimit -t 700; ulimit -m 850000; ulimit -s 8192; ulimit -n 512;  cd /tmp/M2-26692-0/20-rundir/; GC_MAXIMUM_HEAP_SIZE=400M "/<<BUILDDIR>>/macaulay2-1.17.2.1+git202103311224/M2/usr-dist/aarch64-Linux-Ubuntu-21.04/bin/M2-binary" -q --int --no-randomize --no-readline --silent --stop --print-width 129 -e 'needsPackage("CoincidentRootLoci",Reload=>true,FileName=>"/<<BUILDDIR>>/macaulay2-1.17.2.1+git202103311224/M2/Macaulay2/packages/CoincidentRootLoci.m2")' <"/tmp/M2-26692-0/0___Coincident__Root__Locus_sp_st_sp__Coincident__Root__Locus.m2" >>"/<<BUILDDIR>>/macaulay2-1.17.2.1+git202103311224/M2/usr-dist/common/share/doc/Macaulay2/CoincidentRootLoci/example-output/___Coincident__Root__Locus_sp_st_sp__Coincident__Root__Locus.errors" 2>&1
/<<BUILDDIR>>/macaulay2-1.17.2.1+git202103311224/M2/usr-dist/common/share/doc/Macaulay2/CoincidentRootLoci/example-output/___Coincident__Root__Locus_sp_st_sp__Coincident__Root__Locus.errors:0:1: (output file) error: Macaulay2 exited with status code 1
/tmp/M2-26692-0/0___Coincident__Root__Locus_sp_st_sp__Coincident__Root__Locus.m2:0:1: (input file)
M2: *** Error 1
 -- 4.08931 seconds elapsed

...

../../m2/debugging.m2:20:6:(1):[9]: error: installPackage: 1 error(s) occurred running examples for package CoincidentRootLoci:

___Coincident__Root__Locus_sp_st_sp__Coincident__Root__Locus.errors
*******************************************************************
140# interp_process at ./M2/Macaulay2/d/interp.dd:606
141# interpFunc(ArgCell*) at ./M2/Macaulay2/d/main.cpp:193
142# ThreadTask::run(SupervisorThread*) at ./M2/Macaulay2/system/supervisor.cpp:377
143# SupervisorThread::threadEntryPoint() at ./M2/Macaulay2/system/supervisor.cpp:426
144# SupervisorThread::threadEntryPoint(void*) at ./M2/Macaulay2/system/supervisor.hpp:100
145# GC_inner_start_routine in /usr/lib/aarch64-linux-gnu/libgc.so.1
146# GC_call_with_stack_base in /usr/lib/aarch64-linux-gnu/libgc.so.1
147# start_thread in /lib/aarch64-linux-gnu/libpthread.so.0
148# 0x0000FFFF9372DC9C in /lib/aarch64-linux-gnu/libc.so.6
-- end stack trace *-

../../m2/installPackage.m2:709:14:(1):[8]: --back trace--
d-torrance commented 3 years ago

New issues after #2092:

example for detectCongruence(SpecialGushelMukaiFourfold,ZZ)

../../m2/debugging.m2:20:6:(1):[9]: error: installPackage: 1 error(s) occurred running examples for package SpecialFanoFourfolds:

_detect__Congruence_lp__Special__Gushel__Mukai__Fourfold_cm__Z__Z_rp.errors
***************************************************************************
     containing a surface in PP^8 of degree 9 and sectional genus 2
     cut out by 19 hypersurfaces of degree 2
     and with class in G(1,4) given by 6*s_(3,1)+3*s_(2,2)
     Type: ordinary
     (case 17 of Table 1 in arXiv:2002.07026)

i3 : time f = detectCongruence X;

 *** out of memory trying to allocate 1188 bytes, exiting ***

example for specialGushelMukaiFourfold

../../m2/debugging.m2:20:6:(1):[9]: error: installPackage: 1 error(s) occurred running examples for package SpecialFanoFourfolds:

_special__Gushel__Mukai__Fourfold.errors
****************************************

o4 : ProjectiveVariety, 4-dimensional subvariety of PP^8

i5 : time F = specialGushelMukaiFourfold(S,X);
     -- used 3.25936 seconds

o5 : ProjectiveVariety, GM fourfold containing a surface of degree 2 and sectional genus 0

i6 : time describe F
-- SIGSEGV
-* stack trace, pid: 31519
 0# stack_trace(std::ostream&, bool) at ./M2/Macaulay2/d/main.cpp:127
 1# segv_handler at ./M2/Macaulay2/d/main.cpp:243
 2# 0x00007B3D9A5804D8 in linux-vdso64.so.1
 3# MonomialIdeal::sat(MonomialIdeal const&) const at ./M2/Macaulay2/e/monideal.cpp:787
 4# rawSaturateMonomialIdeal2 at interface/monomial-ideal.cpp:188
 5# interface_rawSaturate at ./M2/Macaulay2/d/interface.dd:292

check(1, "SpecialFanoFourfolds")

check(2, "SpecialFanoFourfolds")

SpecialFanoFourfolds.m2:2366:1-2396:1: error:
 --      2}
 -- 
 -- o6 : List
 -- 
 -- i7 : assert all(Y,y -> not y.cache#?"label");
 -- 
 -- i8 : assert(apply(Y,discriminant) == {12, 10, 20});
 -- 
 -- 
 --  *** out of memory trying to allocate 131108 bytes, exiting ***
 -- 

check(3, "SpecialFanoFourfolds")

SpecialFanoFourfolds.m2:2398:1-2410:1: error:
 -- i4 : debug MultiprojectiveVarieties;
 -- 
 -- i5 : assert(apply(X,x-> sectionalGenus surface x) == {0, 0, 8, 1, 3, 0, 0, 2, 0, 4, 3, 8, 5, 2, 3, 5, 2, 0, 3, 0, 5});
 -- 
 -- i6 : assert(last cycleClass X_18 == (6,4) and discriminant X_18 == 24);
 -- 
 -- i7 : assert(last cycleClass X_7 == (4,3) and discriminant X_7 == 12);
 -- 
 -- 
 --  *** out of memory trying to allocate 131108 bytes, exiting ***
 -- 

check(11, "SpecialFanoFourfolds")

SpecialFanoFourfolds.m2:2471:1-2480:1: error:
 -- i3 : Y = specialGushelMukaiFourfold(S31,InputCheck=>0);
 -- 
 -- o3 : ProjectiveVariety, GM fourfold containing a surface of degree 1 and sectional genus 0
 -- 
 -- i4 : assert(not Y.cache#?"label"); Y.cache#"label" = 6;
 -- 
 -- i6 : detectCongruence Y;
 -- 
 -- 
 --  *** out of memory trying to allocate 131108 bytes, exiting ***
 -- 
giovannistagliano commented 3 years ago

Here #2102 I've slightly changed the example for detectCongruence(SpecialGushelMukaiFourfold,ZZ).

d-torrance commented 3 years ago

Here #2102 I've slightly changed the example for detectCongruence(SpecialGushelMukaiFourfold,ZZ).

Cool, thanks! There were also two test failures -- I've added them to the comment above. My guess is that the underlying problem is a memory leak related to #1742.

giovannistagliano commented 3 years ago

Strange! Test 11 is very fast in my laptop.

i1 : loadPackage "SpecialFanoFourfolds";

i2 : check(11, "SpecialFanoFourfolds")
 -- capturing check(11, "SpecialFanoFourfolds")                              -- 5.69583 seconds elapsed

i3 : run "uname -a";
Linux stagliano 5.8.0-53-generic #60~20.04.1-Ubuntu SMP Thu May 6 09:52:46 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
DanGrayson commented 3 years ago

commit 73f80ae3b85c1e8f37967a2dd4d92120e2060bc3 might help

commit 73f80ae3b85c1e8f37967a2dd4d92120e2060bc3
Author: Daniel R. Grayson <dan@math.uiuc.edu>
Date:   Tue May 25 14:54:51 2021 -0500

    set non-capturing of examples and tests for package SpecialFanoFourfolds

    ... because we run out of memory running the tests in the cmake build on github.
    Probably there is a memory leak somewhere.
d-torrance commented 3 years ago

commit 73f80ae might help

commit 73f80ae3b85c1e8f37967a2dd4d92120e2060bc3
Author: Daniel R. Grayson <dan@math.uiuc.edu>
Date:   Tue May 25 14:54:51 2021 -0500

    set non-capturing of examples and tests for package SpecialFanoFourfolds

    ... because we run out of memory running the tests in the cmake build on github.
    Probably there is a memory leak somewhere.

The build errors in https://github.com/Macaulay2/M2/issues/1539#issuecomment-848436361 were all based on a branch that included that commit.

d-torrance commented 3 years ago

The example for detectCongruence(SpecialGushelMukaiFourfold,ZZ) still ran out of memory for me in a Debian unstable i386 chroot after #2102:

_detect__Congruence_lp__Special__Gushel__Mukai__Fourfold_cm__Z__Z_rp.errors
***************************************************************************
     containing a surface in PP^8 of degree 9 and sectional genus 2
     cut out by 19 hypersurfaces of degree 2
     and with class in G(1,4) given by 6*s_(3,1)+3*s_(2,2)
     Type: ordinary
     (case 17 of Table 1 in arXiv:2002.07026)

i3 : time f = detectCongruence X;

 *** out of memory trying to allocate 131108 bytes, exiting ***
d-torrance commented 2 years ago

Ran out of memory in a new test that was just added in #2259 during armhf PPA builds in Ubuntu 18.04 and 20.04:

 -- running   check(15, "SpecialFanoFourfolds")                             
 ulimit -c unlimited; ulimit -t 700; ulimit -m 850000; ulimit -s 8192; ulimit -n 512;  cd /tmp/M2-5210-0/13-rundir/; GC_MAXIMUM_HEAP_SIZE=400M "/<<BUILDDIR>>/macaulay2-1.18.0.1+git202111031537/M2/usr-dist/arm-Linux-Ubuntu-18.04/bin/M2-binary" -q --int --no-randomize --no-readline --silent --stop --print-width 77 -e 'needsPackage("SpecialFanoFourfolds",Reload=>true,FileName=>"/<<BUILDDIR>>/macaulay2-1.18.0.1+git202111031537/M2/Macaulay2/packages/SpecialFanoFourfolds.m2")' <"/tmp/M2-5210-0/12.m2" >>"/tmp/M2-5210-0/12.tmp" 2>&1
/tmp/M2-5210-0/12.tmp:0:1: (output file) error: Macaulay2 exited with status code 1
/tmp/M2-5210-0/12.m2:0:1: (input file)
M2: *** Error 1
 -- 97.6838 seconds elapsed
SpecialFanoFourfolds.m2:3377:1-3386:1: error:
 -- i3 : X = first L;
 -- 
 -- o3 : ProjectiveVariety, GM fourfold containing a surface of degree 8 and sectional genus 0 with class 5*s_(3,1)+3*s_(2,2)
 -- 
 -- i4 : assert(#L == 1 and discriminant X == 18 and last cycleClass X == (5,3))
 -- 
 -- i5 : L = takeGMsfromSurfaceInP6(surface({3,1,1,0},ambient=>6),InputCheck=>0,"Gluing"=>"quartic scroll",Degrees=>hashTable{1=>(1,1),2=>(19,infinity),3=>(0,0)});
 -- 
 -- 
 --  *** out of memory trying to allocate 131108 bytes, exiting ***
 -- 
../m2/debugging.m2:23:6:(1):[9]: error: test(s) #15 of package SpecialFanoFourfolds failed.
../m2/testing.m2:127:9:(1):[8]: --back trace--
../m2/methods.m2:154:80:(1):[7]: --back trace--
../m2/option.m2:17:8:(1):[6]: --back trace--
../m2/testing.m2:100:33:(1):[5]: --back trace--
../m2/methods.m2:154:80:(1):[4]: --back trace--
../m2/option.m2:17:8:(1):[3]: --back trace--
currentString:1:83:(3):[2]: --back trace--
Macaulay2/Core/startup.m2.in:561:33:(0):[1]: --back trace--
giovannistagliano commented 2 years ago

Sorry, I'll simplify that test soon.

d-torrance commented 2 years ago

Some more tests were killed during continuous integration tests of the armhf Debian package for 1.19:

 -- running   check(4, "SpecialFanoFourfolds")                              
 ulimit -c unlimited; ulimit -t 700; ulimit -m 850000; ulimit -s 8192; ulimit -n 512;  cd /tmp/M2-124931-0/1-rundir/; GC_MAXIMUM_HEAP_SIZE=400M "/usr/bin/M2-binary" -q --int --no-randomize --no-readline --silent --stop --print-width 77 -e 'needsPackage("SpecialFanoFourfolds",Reload=>true,FileName=>"/usr/share/Macaulay2/SpecialFanoFourfolds.m2")' <"/tmp/M2-124931-0/0.m2" >>"/tmp/M2-124931-0/0.tmp" 2>&1
/tmp/M2-124931-0/0.tmp:0:1: (output file) error: Macaulay2 killed by signal 9
/tmp/M2-124931-0/0.m2:0:1: (input file)
M2: *** Error 9
 -- 12.6848 seconds elapsed
 -- skipping  check(5, "SpecialFanoFourfolds")                               -- 0.00004356 seconds elapsed
 -- running   check(6, "SpecialFanoFourfolds")                              
 ulimit -c unlimited; ulimit -t 700; ulimit -m 850000; ulimit -s 8192; ulimit -n 512;  cd /tmp/M2-124931-0/3-rundir/; GC_MAXIMUM_HEAP_SIZE=400M "/usr/bin/M2-binary" -q --int --no-randomize --no-readline --silent --stop --print-width 77 -e 'needsPackage("SpecialFanoFourfolds",Reload=>true,FileName=>"/usr/share/Macaulay2/SpecialFanoFourfolds.m2")' <"/tmp/M2-124931-0/2.m2" >>"/tmp/M2-124931-0/2.tmp" 2>&1
/tmp/M2-124931-0/2.tmp:0:1: (output file) error: Macaulay2 killed by signal 9
/tmp/M2-124931-0/2.m2:0:1: (input file)
M2: *** Error 9
 -- 10.3981 seconds elapsed
 -- running   check(7, "SpecialFanoFourfolds")                              
 ulimit -c unlimited; ulimit -t 700; ulimit -m 850000; ulimit -s 8192; ulimit -n 512;  cd /tmp/M2-124931-0/5-rundir/; GC_MAXIMUM_HEAP_SIZE=400M "/usr/bin/M2-binary" -q --int --no-randomize --no-readline --silent --stop --print-width 77 -e 'needsPackage("SpecialFanoFourfolds",Reload=>true,FileName=>"/usr/share/Macaulay2/SpecialFanoFourfolds.m2")' <"/tmp/M2-124931-0/4.m2" >>"/tmp/M2-124931-0/4.tmp" 2>&1
/tmp/M2-124931-0/4.tmp:0:1: (output file) error: Macaulay2 killed by signal 9
/tmp/M2-124931-0/4.m2:0:1: (input file)
M2: *** Error 9
 -- 12.2308 seconds elapsed
 -- skipping  check(8, "SpecialFanoFourfolds")                               -- 0.00004964 seconds elapsed
 -- running   check(9, "SpecialFanoFourfolds")                               -- 2.31423 seconds elapsed
 -- running   check(10, "SpecialFanoFourfolds")                              -- 5.38181 seconds elapsed
 -- skipping  check(11, "SpecialFanoFourfolds")                              -- 0.00007168 seconds elapsed
 -- skipping  check(12, "SpecialFanoFourfolds")                              -- 0.00003252 seconds elapsed
 -- skipping  check(13, "SpecialFanoFourfolds")                              -- 0.00003564 seconds elapsed
 -- running   check(14, "SpecialFanoFourfolds")                              -- 30.508 seconds elapsed
 -- skipping  check(15, "SpecialFanoFourfolds")                              -- 0.00430233 seconds elapsed
/usr/share/Macaulay2/SpecialFanoFourfolds.m2:2939:1-2956:1: error:
 --              time f = parametrizeFanoFourfold X;
 --              assert(source f == ambient source f and dim source f == 4);
 --              assert(target f === X);
 --              g = f#"inverse";
 --              assert(g =!= null);
 --              p = point source f;
 --              assert(g f p == p);
 --          );   
 --      );
 -- Killed
 -- 
/usr/share/Macaulay2/SpecialFanoFourfolds.m2:2974:1-2978:1: error:
 -- -- -*- M2-comint -*- hash: 515239304
 -- 
 -- i1 : --/usr/share/Macaulay2/SpecialFanoFourfolds.m2:2978: location of test code
 --       -- Test 6 (1/3) -- associated K3 surfaces
 --      f = last associatedK3surface(specialCubicFourfold "quartic scroll",Verbose=>true);
 -- Killed
 -- 
/usr/share/Macaulay2/SpecialFanoFourfolds.m2:2979:1-2983:1: error:
 -- -- -*- M2-comint -*- hash: 1032140222
 -- 
 -- i1 : --/usr/share/Macaulay2/SpecialFanoFourfolds.m2:2983: location of test code
 --       -- Test 7 (2/3) -- associated K3 surfaces
 --      g = last associatedK3surface(specialCubicFourfold "quintic del Pezzo surface",Verbose=>true);
 -- Killed
 -- 
stdio:1:1:(3): error: test(s) #4, 6, 7 of package SpecialFanoFourfolds failed.
d-torrance commented 2 years ago

Possibly related: the following test failed during a continuous integration test of the Debian package on i386:

 -- running   check(15, "MultiprojectiveVarieties")                         
 ulimit -c unlimited; ulimit -t 700; ulimit -m 850000; ulimit -s 8192; ulimit -n 512;  cd /tmp/M2-101823-0/21-rundir/; GC_MAXIMUM_HEAP_SIZE=400M "/usr/bin/M2-binary" -q --int --no-randomize --no-readline --silent --stop --print-width 77 -e 'needsPackage("MultiprojectiveVarieties",Reload=>true,FileName=>"/usr/share/Macaulay2/MultiprojectiveVarieties.m2")' <"/tmp/M2-101823-0/20.m2" >>"/tmp/M2-101823-0/20.tmp" 2>&1
/tmp/M2-101823-0/20.tmp:0:1: (output file) error: Macaulay2 killed by signal 9
/tmp/M2-101823-0/20.m2:0:1: (input file)
M2: *** Error 9
 -- 19.9935 seconds elapsed
 -- running   check(16, "MultiprojectiveVarieties")                          -- 3.54011 seconds elapsed
/usr/share/Macaulay2/MultiprojectiveVarieties.m2:3916:1-3943:1: error:
 -- dominance: true
 -- degree: 1
 -- 
 -- i7 : -- X = fanoFourfold (14,8);
 --      -- X#InverseMethod = inverse3;
 --      -- time checkInverseParametrization X
 --      setRandomSeed 0;
 -- 
 -- i8 : X = fanoFourfold (16,9);
 -- Killed
 -- 
stdio:1:1:(3): error: test(s) #15 of package MultiprojectiveVarieties failed.
d-torrance commented 2 years ago

Another SpecialFanoFourfolds test was killed during a continuous integration test of the Debian package on armhf:

 -- running   check(9, "SpecialFanoFourfolds")                              
 ulimit -c unlimited; ulimit -t 700; ulimit -m 850000; ulimit -s 8192; ulimit -n 512;  cd /tmp/M2-124714-0/1-rundir/; GC_MAXIMUM_HEAP_SIZE=400M "/usr/bin/M2-binary" -q --int --no-randomize --no-readline --silent --stop --print-width 77 -e 'needsPackage("SpecialFanoFourfolds",Reload=>true,FileName=>"/usr/share/Macaulay2/SpecialFanoFourfolds.m2")' <"/tmp/M2-124714-0/0.m2" >>"/tmp/M2-124714-0/0.tmp" 2>&1
/tmp/M2-124714-0/0.tmp:0:1: (output file) error: Macaulay2 killed by signal 9
/tmp/M2-124714-0/0.m2:0:1: (input file)
M2: *** Error 9
 -- 10.6882 seconds elapsed
 -- running   check(10, "SpecialFanoFourfolds")                              -- 5.80212 seconds elapsed
 -- skipping  check(11, "SpecialFanoFourfolds")                              -- 0.000188161 seconds elapsed
 -- skipping  check(12, "SpecialFanoFourfolds")                              -- 0.00006148 seconds elapsed
 -- skipping  check(13, "SpecialFanoFourfolds")                              -- 0.00003288 seconds elapsed
 -- skipping  check(14, "SpecialFanoFourfolds")                              -- 0.00003008 seconds elapsed
 -- skipping  check(15, "SpecialFanoFourfolds")                              -- 0.00008572 seconds elapsed
/usr/share/Macaulay2/SpecialFanoFourfolds.m2:2992:1-3000:1: error:
 -- -- -*- M2-comint -*- hash: 957398441
 -- 
 -- i1 : --/usr/share/Macaulay2/SpecialFanoFourfolds.m2:3000: location of test code
 --       -- Test 9 -- simple tests on schubertCycle
 --      debug MultiprojectiveVarieties;
 -- 
 -- i2 : S = schubertCycle({2,2},GG(ZZ/33331,1,4),Standard=>true)
 -- Killed
 -- 
stdio:1:1:(3): error: test(s) #9 of package SpecialFanoFourfolds failed.
mahrud commented 2 years ago

The detectCongruence example failed again building v1.19.1 on an M1 machine.

d-torrance commented 2 years ago

Another one, from an armhf PPA build in Ubuntu 18.04:

 -- running   check(0, "SpecialFanoFourfolds")                              
 ulimit -c unlimited; ulimit -t 700; ulimit -m 850000; ulimit -s 8192; ulimit -n 512;  cd /tmp/M2-22111-0/1-rundir/; GC_MAXIMUM_HEAP_SIZE=400M "/<<BUILDDIR>>/macaulay2-1.19.1.1+git202112141852/M2/usr-dist/arm-Linux-Ubuntu-18.04/bin/M2-binary" -q --int --no-randomize --no-readline --silent --stop --print-width 77 -e 'needsPackage("SpecialFanoFourfolds",Reload=>true,FileName=>"/<<BUILDDIR>>/macaulay2-1.19.1.1+git202112141852/M2/Macaulay2/packages/SpecialFanoFourfolds.m2")' <"/tmp/M2-22111-0/0.m2" >>"/tmp/M2-22111-0/0.tmp" 2>&1
/tmp/M2-22111-0/0.tmp:0:1: (output file) error: Macaulay2 exited with status code 1
/tmp/M2-22111-0/0.m2:0:1: (input file)
M2: *** Error 1
 -- 56.6734 seconds elapsed
 -- running   check(1, "SpecialFanoFourfolds")                               -- 42.0508 seconds elapsed
 -- skipping  check(2, "SpecialFanoFourfolds")                               -- 0.000357621 seconds elapsed
 -- skipping  check(3, "SpecialFanoFourfolds")                               -- 0.000079699 seconds elapsed
 -- running   check(4, "SpecialFanoFourfolds")                               -- 56.2029 seconds elapsed
 -- running   check(5, "SpecialFanoFourfolds")                               -- 19.4994 seconds elapsed
 -- running   check(6, "SpecialFanoFourfolds")                               -- 13.4466 seconds elapsed
 -- running   check(7, "SpecialFanoFourfolds")                               -- 16.3554 seconds elapsed
 -- running   check(8, "SpecialFanoFourfolds")                               -- 33.971 seconds elapsed
 -- running   check(9, "SpecialFanoFourfolds")                               -- 13.9394 seconds elapsed
 -- running   check(10, "SpecialFanoFourfolds")                              -- 18.3537 seconds elapsed
 -- running   check(11, "SpecialFanoFourfolds")                              -- 28.7601 seconds elapsed
 -- skipping  check(12, "SpecialFanoFourfolds")                              -- 0.000146124 seconds elapsed
 -- running   check(13, "SpecialFanoFourfolds")                              -- 49.0035 seconds elapsed
 -- skipping  check(14, "SpecialFanoFourfolds")                              -- 0.000221872 seconds elapsed
 -- running   check(15, "SpecialFanoFourfolds")                              -- 38.7417 seconds elapsed
SpecialFanoFourfolds.m2:2823:1-2857:1: error:
 --      cut out by 9 hypersurfaces of degree 3
 --      Special cubic fourfold of discriminant 48
 --      containing a 6-nodal surface of degree 9 and sectional genus 2
 --      cut out by 5 hypersurfaces of degrees (2,3,3,3,3)
 --      ";
 -- 
 -- i3 : X = apply(strIn,specialCubicFourfold);
 -- 
 -- 
 --  *** out of memory trying to allocate 131108 bytes, exiting ***
 -- 
../m2/debugging.m2:23:6:(1):[9]: error: test(s) #0 of package SpecialFanoFourfolds failed.
d-torrance commented 4 months ago

The following memory errors have been happening very consistently on 32-bit ARM PPA builds over the last week or so, likely due to the garbage collection heap allocation changes in #3186:

MultiprojectiveVarieties.m2:4440:1-4462:1 error:
 -- o14 : ProjectiveVariety, 4-dimensional subvariety of PP^10
 -- 
 -- i15 : Y = random({{2},{1},{1},{1},{1},{1}},0_(PP_K^10));
 -- 
 -- o15 : ProjectiveVariety, 4-dimensional subvariety of PP^10
 -- 
 -- i16 : checkIso(X,Y)
 -- 
 -- 
 --  *** out of memory trying to allocate 167328 bytes, exiting ***
 -- 
../m2/debugging.m2:18:6:(1):[9]: error: test(s) #12 of package MultiprojectiveVarieties failed.

full log

SpecialFanoFourfolds.m2:3839:1-3843:1 error:
 -- i1 :  -- /<<PKGBUILDDIR>>/M2/Macaulay2/packages/SpecialFanoFourfolds.m2:3843:1: location of test code
 --       -- Test 10 (1/2) -- detectCongruence
 --      X = specialCubicFourfold("quintic del Pezzo surface",ZZ/33331);
 -- 
 -- o1 : ProjectiveVariety, cubic fourfold containing a surface of degree 5 and sectional genus 1
 -- 
 -- i2 : detectCongruence(X,Verbose=>true);
 -- 
 -- 
 --  *** out of memory trying to allocate 131108 bytes, exiting ***
 -- 
SpecialFanoFourfolds.m2:3867:1-3874:1 error:
 --       -- Test 13 (2/2) -- GM fourfolds containing nodal surfaces
 --      -- no-check-architecture: s390x (#2162)
 --      X = specialGushelMukaiFourfold("nodal surface of degree 11 and genus 3 with class (7,4)",ZZ/33331,InputCheck=>0);
 -- 
 -- o1 : ProjectiveVariety, GM fourfold containing a surface of degree 11 and sectional genus 3
 -- 
 -- i2 : assert(discriminant X == 26 and last cycleClass X == (7,4) and degree surface X == 11 and sectionalGenus surface X == 3);
 -- 
 -- 
 --  *** out of memory trying to allocate 131108 bytes, exiting ***
 -- 
../m2/debugging.m2:18:6:(1):[9]: error: test(s) #10, 13 of package SpecialFanoFourfolds failed.

full log