M2 icon indicating copy to clipboard operation
M2 copied to clipboard

Out of memory running SpecialFanoFourfolds example on i386

Open d-torrance opened this issue 5 years ago • 37 comments

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 ***

d-torrance avatar Oct 09 '20 20:10 d-torrance

@giovannistagliano -- can we simplify this example?

DanGrayson avatar Oct 09 '20 22:10 DanGrayson

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.

giovannistagliano avatar Oct 09 '20 23:10 giovannistagliano

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

DanGrayson avatar Oct 10 '20 00:10 DanGrayson

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.

giovannistagliano avatar Oct 10 '20 02:10 giovannistagliano

Is your laptop 64 bit or 32 bit?

DanGrayson avatar Oct 10 '20 12:10 DanGrayson

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

DanGrayson avatar Oct 10 '20 12:10 DanGrayson

Is your laptop 64 bit or 32 bit?

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

giovannistagliano avatar Oct 10 '20 14:10 giovannistagliano

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 avatar Oct 10 '20 15:10 DanGrayson

Okay, I've reproduced the problem here.

DanGrayson avatar Oct 10 '20 22:10 DanGrayson

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 avatar Oct 28 '20 02:10 d-torrance

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 avatar Nov 03 '20 18:11 d-torrance

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

d-torrance avatar Dec 04 '20 00:12 d-torrance

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.

giovannistagliano avatar Dec 04 '20 03:12 giovannistagliano

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.

mahrud avatar Dec 04 '20 03:12 mahrud

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:

  • By default, when a Debian package is built, it runs the package's test suite, if one exists. When a test fails, the build fails. So I end up writing a bunch of patches skipping tests to avoid this.
  • We might catch an underlying bug. For example, I fixed a bug in the Debian gfan package a couple weeks ago that was causing infinite loops when 32-bit bit integers that should have been 64-bit integers started overflowing in a test on i386 and other 32-bit architectures.

d-torrance avatar Dec 04 '20 04:12 d-torrance

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.

mahrud avatar Dec 04 '20 04:12 mahrud

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.

d-torrance avatar Dec 04 '20 11:12 d-torrance

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

DanGrayson avatar Dec 04 '20 15:12 DanGrayson

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.

DanGrayson avatar Dec 04 '20 15:12 DanGrayson

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 avatar Dec 04 '20 15:12 d-torrance

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 avatar Mar 29 '21 23:03 d-torrance

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 avatar Mar 31 '21 01:03 d-torrance

New issues after #2092:

example for detectCongruence(SpecialGushelMukaiFourfold,ZZ)

  • i386, Debian unstable (local chroot)
../../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

  • ppc64el, Ubuntu 21.10 (PPA build)
  • Another instance of #1742
../../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")

  • i386, Debian unstable (local chroot)
SpecialFanoFourfolds.m2:2382:1-2412:1: error:
 --      2}
 -- 
 -- o6 : List
 -- 
 -- i7 : assert all(Y,y -> not y.cache#?"label");
 -- 
 -- i8 : assert(apply(Y,discriminant) == {10, 12, 10});
 -- 
 -- 
 --  *** out of memory trying to allocate 65448 bytes, exiting ***

check(2, "SpecialFanoFourfolds")

  • i386, Debian unstable (local chroot)
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")

  • i386, Debian unstable (local chroot)
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")

  • i386, Debian unstable (local chroot)
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 ***
 -- 

d-torrance avatar May 26 '21 04:05 d-torrance

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

giovannistagliano avatar May 26 '21 07:05 giovannistagliano

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.

d-torrance avatar May 26 '21 09:05 d-torrance

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

giovannistagliano avatar May 26 '21 10:05 giovannistagliano

commit 73f80ae3b85c1e8f37967a2dd4d92120e2060bc3 might help

commit 73f80ae3b85c1e8f37967a2dd4d92120e2060bc3
Author: Daniel R. Grayson <[email protected]>
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.

DanGrayson avatar May 26 '21 13:05 DanGrayson

commit 73f80ae might help

commit 73f80ae3b85c1e8f37967a2dd4d92120e2060bc3
Author: Daniel R. Grayson <[email protected]>
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 avatar May 26 '21 13:05 d-torrance

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 avatar May 26 '21 16:05 d-torrance

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--

d-torrance avatar Nov 05 '21 01:11 d-torrance