M2
M2 copied to clipboard
Out of memory running SpecialFanoFourfolds example on i386
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 ***
@giovannistagliano -- can we simplify this example?
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.
No, we like running examples to make sure everything is working. Let's just make the example less demanding.
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.
Is your laptop 64 bit or 32 bit?
(Maybe it does point to a real problem elsewhere in the system.)
Is your laptop 64 bit or 32 bit?
It's 64 bit with Ubuntu 20.04 and M2 1.16.
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.
Okay, I've reproduced the problem here.
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?
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 ***
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
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.
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.
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.
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.
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.
They should stick to smaller tests -- that's why I put in those ulimit commands -- to enforce that.
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.
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.
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.
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)
- amd64, Ubuntu 20.04
- this appears to be #1742
-- 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
- s390x, Ubuntu 20.10, 21.04, and 21.04 again
- arm64, Ubuntu 21.10
- this appears to be #1742
-- 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
- arm64, Ubuntu 21.04
- s390x, Ubuntu 21.04
-- 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--
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 ***
--
Here #2102 I've slightly changed the example for detectCongruence(SpecialGushelMukaiFourfold,ZZ).
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.
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
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.
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.
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 ***
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--