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 230 forks source link

'std::bad_alloc' in AssociativeAlgebras #2119

Open DanGrayson opened 3 years ago

DanGrayson commented 3 years ago

On Ubuntu 18.04, the AssociativeAlgebras package has every example failing with this error:

-- -*- M2-comint -*- hash: -1944380713

i1 : A = fourDimSklyanin(ZZ/32003, {a,b,c,d}, DegreeLimit => 10)
terminate called after throwing an instance of 'std::bad_alloc'
  what():  std::bad_alloc
Aborted (core dumped)
d-torrance commented 3 years ago

I haven't had this problem in 18.04. Here's the version info in case that's helpful:

i1 : needsPackage "AssociativeAlgebras"; 

i2 : A = fourDimSklyanin(ZZ/32003, {a,b,c,d}, DegreeLimit => 10)

o2 = A

o2 : FreeAlgebraQuotient

i3 : version

o3 = HashTable{architecture => x86_64                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        }
               atomic_ops version => 7.6.2
               boost version => 1_65_1
               build => x86_64-pc-linux-gnu
               compile node name => lcy01-amd64-019
               compile time => May 28 2021, 14:49:43
               compiler => gcc 7.5.0
               configure arguments =>  '--build=x86_64-linux-gnu' '--prefix=/usr' '--includedir=${prefix}/include' '--mandir=${prefix}/share/man' '--infodir=${prefix}/share/info' '--sysconfdir=/etc' '--localstatedir=/var' '--disable-silent-rules' '--libdir=${prefix}/lib/x86_64-linux-gnu' '--libexecdir=${prefix}/lib/x86_64-linux-gnu' '--runstatedir=/run' '--disable-maintainer-mode' '--disable-dependency-tracking' '--libdir=${exec_prefix}/lib/x86_64-linux-gnu' '--with-emacsdir=${prefix}/share/emacs/site-lisp/elpa/macaulay2-1.18.0.1' 'build_alias=x86_64-linux-gnu' 'CFLAGS=-g -O2 -fdebug-prefix-map=/build/path=. -fstack-protector-strong -Wformat -Werror=format-security' 'LDFLAGS=-Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now' 'CPPFLAGS=-Wdate-time -D_FORTIFY_SOURCE=2' 'CXXFLAGS=-g -O2 -fdebug-prefix-map=/build/path=. -fstack-protector-strong -Wformat -Werror=format-security' 'FCFLAGS=-g -O2 -fdebug-prefix-map=/build/path=. -fstack-protector-strong'
               endianness => dcba
               executable extension => 
               factory version => 4.1.0
               fflas_ffpack version => 2.5.0
               flint version => 2.6.3
               frobby version => 0.9.0
               gc version => 7.4.2
               gdbm version => GDBM version 1.14.1. 03/01/2018
               git description => version-1.18.0.1-9-33a615056
               givaro version => 4.1.2
               gmp version => 6.1.2
               host => x86_64-pc-linux-gnu
               issue => Ubuntu-18.04
               M2 name => M2
               M2 suffix => 
               machine => x86_64-Linux-Ubuntu-18.04
               mathic version => 1.0
               mathicgb version => 1.0
               memtailor version => 1.0
               mpfi version => 1.5.3
               mpfr version => 4.0.1
               mpir version => not present
               mpsolve version => 3.2.1
               mysql version => not present
               ntl version => 10.5.0
               operating system release => 4.15.0-144-generic
               operating system => Linux
               packages => Style FirstPackage Macaulay2Doc Parsing Classic Browse Benchmark Text SimpleDoc PackageTemplate Saturation PrimaryDecomposition FourierMotzkin Dmodules Depth Elimination GenericInitialIdeal IntegralClosure HyperplaneArrangements LexIdeals Markov NoetherNormalization Points ReesAlgebra Regularity SchurRings SymmetricPolynomials SchurFunctors SimplicialComplexes LLLBases TangentCone ChainComplexExtras Schubert2 PushForward LocalRings PruneComplex BoijSoederberg BGG Bruns InvolutiveBases ConwayPolynomials EdgeIdeals FourTiTwo StatePolytope Polyhedra Truncations Polymake gfanInterface PieriMaps Normaliz Posets XML OpenMath SCSCP RationalPoints MapleInterface ConvexInterface SRdeformations NumericalAlgebraicGeometry BeginningMacaulay2 FormalGroupLaws Graphics WeylGroups HodgeIntegrals Cyclotomic Binomials Kronecker Nauty ToricVectorBundles ModuleDeformations PHCpack SimplicialDecomposability BooleanGB AdjointIdeal Parametrization Serialization NAGtypes NormalToricVarieties DGAlgebras Graphs GraphicalModels BIBasis KustinMiller Units NautyGraphs VersalDeformations CharacteristicClasses RandomIdeals RandomObjects RandomPlaneCurves RandomSpaceCurves RandomGenus14Curves RandomCanonicalCurves RandomCurves TensorComplexes MonomialAlgebras QthPower EliminationMatrices EllipticIntegrals Triplets CompleteIntersectionResolutions EagonResolution MCMApproximations MultiplierIdeals InvariantRing QuillenSuslin EnumerationCurves Book3264Examples Divisor EllipticCurves HighestWeights MinimalPrimes Bertini TorAlgebra Permanents BinomialEdgeIdeals TateOnProducts LatticePolytopes FiniteFittingIdeals HigherCIOperators LieTypes ConformalBlocks M0nbar AnalyzeSheafOnP1 MultiplierIdealsDim2 RunExternalM2 NumericalSchubertCalculus ToricTopology Cremona Resultants VectorFields SLPexpressions Miura ResidualIntersections Visualize EquivariantGB ExampleSystems RationalMaps FastLinAlg RandomRationalPoints SwitchingFields SpectralSequences SectionRing OldPolyhedra OldToricVectorBundles K3Carpets ChainComplexOperations NumericalCertification PhylogeneticTrees MonodromySolver ReactionNetworks PackageCitations NumericSolutions GradedLieAlgebras InverseSystems Pullback EngineTests SVDComplexes RandomComplexes CohomCalg Topcom ReflexivePolytopesDB AbstractToricVarieties Licenses TestIdeals FrobeniusThresholds Seminormalization AlgebraicSplines TriangularSets Chordal Tropical SymbolicPowers Complexes GroebnerWalk RandomMonomialIdeals Matroids NumericalImplicitization NonminimalComplexes CoincidentRootLoci RelativeCanonicalResolution RandomCurvesOverVerySmallFiniteFields StronglyStableIdeals SLnEquivariantMatrices CorrespondenceScrolls NCAlgebra SpaceCurves ExteriorIdeals ToricInvariants SegreClasses SemidefiniteProgramming SumsOfSquares MultiGradedRationalMap AssociativeAlgebras VirtualResolutions Quasidegrees DiffAlg DeterminantalRepresentations FGLM SpechtModule SpecialFanoFourfolds SchurComplexes SimplicialPosets SlackIdeals PositivityToricBundles SparseResultants DecomposableSparseSystems MixedMultiplicity PencilsOfQuadrics ThreadedGB VectorGraphics GKMVarieties NoetherianOperators Hadamard StatGraphs GraphicalModelsMLE EigenSolver MultiplicitySequence ResolutionsOfStanleyReisnerRings NumericalLinearAlgebra ResLengthThree MonomialOrbits MultiprojectiveVarieties RationalPoints2 SuperLinearAlgebra SubalgebraBases AInfinity LinearTruncations
               pointer size => 8
               python version => not present
               readline version => 7.0
               scscp version => not present
               VERSION => 1.18.0.1
DanGrayson commented 3 years ago
#0  __GI_abort () at abort.c:49
#1  0x00007ffff3e1f957 in ?? () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#2  0x00007ffff3e25ae6 in ?? () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#3  0x00007ffff3e25b21 in std::terminate() () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#4  0x00007ffff3e25d54 in __cxa_throw () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#5  0x00007ffff6ce5f9c in tbb::internal::throw_exception_v4(tbb::internal::exception_id) () from /usr/lib/x86_64-linux-gnu/libtbb.so.2
#6  0x00007ffff6ce0917 in tbb::internal::allocate_via_handler_v3(unsigned long) () from /usr/lib/x86_64-linux-gnu/libtbb.so.2
#7  0x0000555555685104 in tbb::tbb_allocator<tbb::interface5::internal::flist_iterator<tbb::interface5::internal::split_ordered_list<std::pair<Word const, std::pair<int, int> >, tbb::tbb_allocator<std::pair<Word const, std::pair<int, int> > > >, std::pair<Word const, std::pair<int, int> > > >::allocate (this=0x7fffffff0508, n=536870912)
    at /usr/include/tbb/tbb_allocator.h:101
#8  0x000055555567ca1d in tbb::interface5::internal::concurrent_unordered_base<tbb::interface5::concurrent_unordered_map_traits<Word, std::pair<int, int>, tbb::interface5::internal::hash_compare<Word, MonomHash, MonomHashEqual>, tbb::tbb_allocator<std::pair<Word const, std::pair<int, int> > >, false> >::set_bucket (this=0x7fffffff04d8, 
    bucket=190324462, dummy_head=...) at /usr/include/tbb/internal/_concurrent_unordered_impl.h:1480
#9  0x0000555555689847 in tbb::interface5::internal::concurrent_unordered_base<tbb::interface5::concurrent_unordered_map_traits<Word, std::pair<int, int>, tbb::interface5::internal::hash_compare<Word, MonomHash, MonomHashEqual>, tbb::tbb_allocator<std::pair<Word const, std::pair<int, int> > >, false> >::init_bucket (this=0x7fffffff04d8, 
    bucket=727195374) at /usr/include/tbb/internal/_concurrent_unordered_impl.h:1419
#10 0x00005555556897bf in tbb::interface5::internal::concurrent_unordered_base<tbb::interface5::concurrent_unordered_map_traits<Word, std::pair<int, int>, tbb::interface5::internal::hash_compare<Word, MonomHash, MonomHashEqual>, tbb::tbb_allocator<std::pair<Word const, std::pair<int, int> > >, false> >::init_bucket (this=0x7fffffff04d8, 
    bucket=1800937198) at /usr/include/tbb/internal/_concurrent_unordered_impl.h:1413
#11 0x0000555555685f96 in tbb::interface5::internal::concurrent_unordered_base<tbb::interface5::concurrent_unordered_map_traits<Word, std::pair<int, int>, tbb::interface5::internal::hash_compare<Word, MonomHash, MonomHashEqual>, tbb::tbb_allocator<std::pair<Word const, std::pair<int, int> > >, false> >::prepare_bucket (this=0x7fffffff04d8, 
    hash_key=1800937198) at /usr/include/tbb/internal/_concurrent_unordered_impl.h:1470
#12 0x000055555567e28f in tbb::interface5::internal::concurrent_unordered_base<tbb::interface5::concurrent_unordered_map_traits<Word, std::pair<int, int>, tbb::interface5::internal::hash_compare<Word, MonomHash, MonomHashEqual>, tbb::tbb_allocator<std::pair<Word const, std::pair<int, int> > >, false> >::internal_find (this=0x7fffffff04d8, 
    key=...) at /usr/include/tbb/internal/_concurrent_unordered_impl.h:1336
#13 0x00005555556733bf in tbb::interface5::internal::concurrent_unordered_base<tbb::interface5::concurrent_unordered_map_traits<Word, std::pair<int, int>, tbb::interface5::internal::hash_compare<Word, MonomHash, MonomHashEqual>, tbb::tbb_allocator<std::pair<Word const, std::pair<int, int> > >, false> >::find (this=0x7fffffff04d8, key=...)
    at /usr/include/tbb/internal/_concurrent_unordered_impl.h:1071
#14 0x0000555555652f17 in NCF4::preRowsFromOverlap (this=0x7fffffff0400, o=std::tuple containing = {...}) at /home/dan/src/M2/M2.git/M2/Macaulay2/e/NCAlgebras/NCF4.cpp:430
#15 0x0000555555653311 in NCF4::buildF4Matrix (this=0x7fffffff0400, overlapsToProcess=std::deque with 3 elements = {...})
    at /home/dan/src/M2/M2.git/M2/Macaulay2/e/NCAlgebras/NCF4.cpp:471
#16 0x00005555556518a5 in NCF4::process (this=0x7fffffff0400, overlapsToProcess=std::deque with 3 elements = {...})
    at /home/dan/src/M2/M2.git/M2/Macaulay2/e/NCAlgebras/NCF4.cpp:99
#17 0x0000555555651840 in NCF4::compute (this=0x7fffffff0400, softDegreeLimit=6) at /home/dan/src/M2/M2.git/M2/Macaulay2/e/NCAlgebras/NCF4.cpp:77
#18 0x0000555555a261a9 in rawNCGroebnerBasisTwoSided (input=0x55555b883b10, maxdeg=6, strategy=16) at /home/dan/src/M2/M2.git/M2/Macaulay2/e/interface/groebner.cpp:882
#19 0x0000555555c08884 in interface_rawNCGroebnerBasisTwoSided (e=0x55555b8ed340) at /home/dan/src/M2/M2.git/M2/Macaulay2/d/interface.dd:4000
#20 0x0000555555b55140 in evaluate_evalraw (c=0x555559bc4700) at /home/dan/src/M2/M2.git/M2/Macaulay2/d/evaluate.d:1297
#21 0x0000555555b54dd3 in evaluate_eval (c=0x555559bc4700) at /home/dan/src/M2/M2.git/M2/Macaulay2/d/evaluate.d:1257
DanGrayson commented 3 years ago

It's trying to allocate 0x20000000 words of memory -- that's what's "bad".

DanGrayson commented 3 years ago

@mikestillman -- any ideas?

d-torrance commented 3 years ago

Is this using the tbb package in 18.04? I remember Mike saying that the new features needed a more recent tbb, so I packaged it for the PPA. Maybe that's why mine is working?

d-torrance commented 3 years ago

Found the relevant discussion: https://github.com/Macaulay2/M2/pull/1861#issuecomment-766353955

We were using 18.04 in the Github builds at the time

DanGrayson commented 3 years ago

libtbb on 18.04 is 2017.03.R2-1, but on 21.04 it's 2020.3-1. There might have been some bugs eliminated in 3 years!

What's the point of Ubuntu calling 18.04 "long term service" if they don't keep the packages up to date?

DanGrayson commented 3 years ago

Maybe we don't need a binary release for such an old version of Ubuntu...

d-torrance commented 3 years ago

What's the point of Ubuntu calling 18.04 "long term service" if they don't keep the packages up to date?

LTS releases just have security fixes and the like -- no new features.

Maybe we don't need a binary release for such an old version of Ubuntu...

I'll still build 18.04 PPA packages, so those users will have an option.

DanGrayson commented 3 years ago

libtbb-dev on debian is 2018~U6-4

DanGrayson commented 3 years ago

Same problem in debian:

-- -*- M2-comint -*- hash: 1731491104

i1 : R = QQ[x,y]/ideal(x^4,x^3*y,x*y^3)

o1 = R

o1 : QuotientRing

i2 : ER = extAlgebra(R,z,DegreeLimit=>(5,10));
terminate called after throwing an instance of 'std::bad_alloc'
  what():  std::bad_alloc
Aborted (core dumped)
DanGrayson commented 3 years ago

Why would debian 10 be 2 years behind on libtbb?

d-torrance commented 3 years ago

Why would debian 10 be 2 years behind on libtbb?

For the same reason as Ubuntu 18.04 -- it's an older, stable release.

Note that Debian 11 "bullseye" will be released, transitioning from testing to stable, here very soon (maybe next month, but there's no firm release date). It has tbb 2020.3: https://tracker.debian.org/pkg/tbb

mikestillman commented 3 years ago

@d-torrance What is the status? Should we migrate our use of tbb (and that of mathicgb) to tbb 2021? (That sounds like a good plan, but will that fix the issues with the failures you have seen?). @moorewf what do you think?

DanGrayson commented 3 years ago

It would be nice to have a debian release. I could add libtbb as a "library", so we can build it ourselves, if a new enough version is not found.

Whether that will fix the problem reported in this issue is unclear -- it could even be our bug.

d-torrance commented 3 years ago

@d-torrance What is the status? Should we migrate our use of tbb (and that of mathicgb) to tbb 2021? (That sounds like a good plan, but will that fix the issues with the failures you have seen?). @moorewf what do you think?

The issues Dan is dealing with here are due to tbb < 2020. I think everything works well with tbb 2020, which is available in Debian testing and the last few Ubuntu releases.

It looks like migrating to tbb 2021 will take some work, as they've moved around a bunch of stuff (see #2105 and #2120). Personally, I'd rather wait at least until it's in Debian unstable.

Also, the Github actions will likely be using Ubuntu 20.04 for the next few years (the next Ubuntu LTS release isn't even due out until next April), so it may make sense to try to keep any new tbb code backwards-compatible with tbb 2020.

DanGrayson commented 3 years ago

What if we make the use of tbb optional, so at least things will run?

d-torrance commented 3 years ago

Another possible option -- If you'd like, I could backport a tbb 2020 package for Debian 10 that you could use both to build Macaulay2 and to upload to the server alongside the Macaulay2 packages for users to download with apt.

They're already available for Ubuntu 18.04 from the PPA: https://code.launchpad.net/~macaulay2/+archive/ubuntu/macaulay2/+build/20928202

DanGrayson commented 3 years ago

I'd rather not add a task for users who are installing M2, as it will complicate things for them.

d-torrance commented 3 years ago

I'd rather not add a task for users who are installing M2, as it will complicate things for them.

If the tbb package were on the same server as the Macaulay2 packages , then apt should download it automatically with all of the other dependencies. Unless a user was squinting at the logs, then they wouldn't even be aware that it was coming from illinois.edu and not debian.org or ubuntu.com.

d-torrance commented 3 years ago

It wasn't much trouble, so I went ahead and backported tbb packages for Debian 10 if you're interested: https://webwork.piedmont.edu/~dtorrance/tbb/

DanGrayson commented 3 years ago

Thanks, I'll try it!

DanGrayson commented 3 years ago

That worked. Now I'll see whether I can set up the repository to deliver it along with macaulay2.

d-torrance commented 3 years ago

I noticed that the packages were up so I tested in a Debian 10 chroot. The tbb part worked great!

(buster-amd64)root@peg-amy:~# apt install macaulay2

...

Get:13 http://deb.debian.org/debian buster/main amd64 libopenblas-base amd64 0.3.5+ds-3 [4290 kB]
Get:5 https://faculty.math.illinois.edu/Macaulay2/Repositories/Debian buster/main amd64 libtbb2 amd64 2020.3-1~bpo10+1 [160 kB]
Get:7 https://faculty.math.illinois.edu/Macaulay2/Repositories/Debian buster/main amd64 macaulay2-common all 1.18 [27.9 MB]
Get:14 http://deb.debian.org/debian buster/main amd64 liblapack3 amd64 3.8.0-2 [2110 kB]

However, libncurses was missing as a dependency:

(buster-amd64)root@peg-amy:~# M2
/usr/bin/M2-binary: error while loading shared libraries: libncurses.so.6: cannot open shared object file: No such file or directory

After a quick apt install libncurses6:

(buster-amd64)root@peg-amy:~# M2
Macaulay2, version 1.18
with packages: ConwayPolynomials, Elimination, IntegralClosure, InverseSystems,
               LLLBases, MinimalPrimes, PrimaryDecomposition, ReesAlgebra,
               Saturation, TangentCone

i1 : version#"machine"

o1 = x86_64-Linux-Debian-10
DanGrayson commented 3 years ago

Thanks. Actually, missing dependencies are all of these: libc6 libgcc1 liblzma5 libncurses6 libreadline7 libtinfo6 zlib1g.

Here was the problem: M2-binary uses /lib/x86_64-linux-gnu/libncurses.so.6, which is a symbolic link to /usr/lib/x86_64-linux-gnu/libncurses.so.6.1, which in turn is a copy of /lib/x86_64-linux-gnu/libncurses.so.6.1. Only the first name and the third name are recorded in *.info files, but I was looking just for the second one.

DanGrayson commented 3 years ago

Thanks for the tip! Fixed in commit 1eee970d36b0d185e78edf1beff049cb1558094c .

Please try again.

d-torrance commented 3 years ago

Please try again.

Worked great the second time!

DanGrayson commented 3 years ago

Do you know why there are two copies of libncurses.so.6.1 on the system?

d-torrance commented 3 years ago

I'm not sure -- in my fresh chroot I just had the /lib one and no /usr/lib.

(buster-amd64)root@peg-amy:~# ls -l /usr/lib/x86_64-linux-gnu/libncurses*
ls: cannot access '/usr/lib/x86_64-linux-gnu/libncurses*': No such file or directory
(buster-amd64)root@peg-amy:~# ls -l /lib/x86_64-linux-gnu/libncurses*
lrwxrwxrwx 1 root root     17 Nov  2  2019 /lib/x86_64-linux-gnu/libncurses.so.6 -> libncurses.so.6.1
-rw-r--r-- 1 root root 165824 Nov  2  2019 /lib/x86_64-linux-gnu/libncurses.so.6.1
lrwxrwxrwx 1 root root     18 Nov  2  2019 /lib/x86_64-linux-gnu/libncursesw.so.6 -> libncursesw.so.6.1
-rw-r--r-- 1 root root 231360 Nov  2  2019 /lib/x86_64-linux-gnu/libncursesw.so.6.1

Apparently the move to /lib happened in Debian back in 2005 (see bug #273463). Upstream ncurses still defaults to it going under /usr/lib, and the Debian build scripts have to explicitly install it in /lib.

DanGrayson commented 3 years ago

Thanks.

mahrud commented 3 years ago

May be related: In test at:

/home/runner/work/M2/M2/M2/Macaulay2/packages/AssociativeAlgebras/tests.m2:1172

Ends with:

i20 : use ring graphPhi

o20 = kk <|z , z , z , y , y , y |>
            1   2   3   1   2   3

o20 : FreeAlgebra

i21 : graphPhiGB = NCGB(graphPhi,10,Strategy=>"F4")
Using GC ring in VectorArithmetic.
Duplicate large block deallocation
Aborted (core dumped)
d-torrance commented 2 years ago

Possibly related -- got this segfault in an amd64 PPA build in Ubuntu 18.04:

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

_point__Scheme.errors
*********************
     |        3   1 |
     +--------------+
     |ideal (a , a )|
     |        2   1 |
     +--------------+

i6 : S = threeDimSklyanin (frac(QQ[a,b,c]),{a,b,c},{x,y,z}, DegreeLimit => 3)
Using numthreads = 0
Using GC ring in VectorArithmetic.
-- SIGSEGV
-* stack trace, pid: 98115
 0# stack_trace(std::ostream&, bool) at ./M2/Macaulay2/d/main.cpp:127
 1# segv_handler at ./M2/Macaulay2/d/main.cpp:244
 2# 0x00007FAF2548DF10 in /lib/x86_64-linux-gnu/libc.so.6
 3# 0x00007FAF26D0A81C in /usr/lib/x86_64-linux-gnu/libgc.so.1
 4# std::__detail::__variant::__gen_vtable_impl<std::__detail::__variant::_Multi_array<void (*)(VectorArithmetic::deallocateElementArray(ElementArray&) const::{lambda(auto:1&)#1}&&, std::variant<ConcreteVectorArithmetic<M2::ARingZZpFlint, ElementArray>*, std::variant<ConcreteVectorArithmetic::ARingGFFlintBig, ElementArray>*, std::variant<ConcreteVectorArithmetic::ARingGFFlint, ElementArray>*, std::variant<ConcreteVectorArithmetic::ARingQQGMP, ElementArray>*, std::variant<ConcreteVectorArithmetic::ARingZZpFFPACK, ElementArray>*, std::variant<ConcreteVectorArithmetic::ARingZZp, ElementArray>*, std::variant<ConcreteVectorArithmetic::ARingGFM2, ElementArray>*, std::variant<ConcreteVectorArithmetic::ARingGFGivaro, ElementArray>*, std::variant<CoefficientRingR, ElementArray>*, std::variant<CoefficientRingZZp, ElementArray>*, std::variant<ConcreteVectorArithmetic::DummyRing, ElementArray>*> const&)>, std::tuple<std::variant<ConcreteVectorArithmetic<M2::ARingZZpFlint, ElementArray>*, std::variant<ConcreteVectorArithmetic::ARingGFFlintBig, ElementArray>*, std::variant<ConcreteVectorArithmetic::ARingGFFlint, ElementArray>*, std::variant<ConcreteVectorArithmetic::ARingQQGMP, ElementArray>*, std::variant<ConcreteVectorArithmetic::ARingZZpFFPACK, ElementArray>*, std::variant<ConcreteVectorArithmetic::ARingZZp, ElementArray>*, std::variant<ConcreteVectorArithmetic::ARingGFM2, ElementArray>*, std::variant<ConcreteVectorArithmetic::ARingGFGivaro, ElementArray>*, std::variant<CoefficientRingR, ElementArray>*, std::variant<CoefficientRingZZp, ElementArray>*, std::variant<ConcreteVectorArithmetic::DummyRing, ElementArray>*> const>, std::integer_sequence<unsigned long, 8ul> >::__visit_invoke(VectorArithmetic::deallocateElementArray(ElementArray&) const::{lambda(auto:1&)#1}, std::variant<ConcreteVectorArithmetic<M2::ARingZZpFlint, ElementArray>*, std::variant<ConcreteVectorArithmetic::ARingGFFlintBig, ElementArray>*, std::variant<ConcreteVectorArithmetic::ARingGFFlint, ElementArray>*, std::variant<ConcreteVectorArithmetic::ARingQQGMP, ElementArray>*, std::variant<ConcreteVectorArithmetic::ARingZZpFFPACK, ElementArray>*, std::variant<ConcreteVectorArithmetic::ARingZZp, ElementArray>*, std::variant<ConcreteVectorArithmetic::ARingGFM2, ElementArray>*, std::variant<ConcreteVectorArithmetic::ARingGFGivaro, ElementArray>*, std::variant<CoefficientRingR, ElementArray>*, std::variant<CoefficientRingZZp, ElementArray>*, std::variant<ConcreteVectorArithmetic::DummyRing, ElementArray>*> const) at /usr/include/c++/7/variant:687
 5# NCF4::clearRows(std::vector<NCF4::Row, gc_allocator<NCF4::Row> >&) at NCAlgebras/NCF4.cpp:1210
 6# rawNCGroebnerBasisTwoSided at interface/groebner.cpp:883
 7# interface_rawNCGroebnerBasisTwoSided at ./M2/Macaulay2/d/interface.dd:4011
 8# evaluate_evalraw at ./M2/Macaulay2/d/evaluate.d:1303
d-torrance commented 2 years ago

A couple more issues with this package in Debian ppc64el builds:

 -- running   check(25, "AssociativeAlgebras")                              
 ulimit -c unlimited; ulimit -t 700; ulimit -m 850000; ulimit -s 8192; ulimit -n 512;  cd /tmp/M2-2532003-0/31-rundir/; GC_MAXIMUM_HEAP_SIZE=400M "/<<PKGBUILDDIR>>/M2/usr-dist/powerpc64le-Linux-Debian-buildd-unstable/bin/M2-binary" -q --int --no-randomize --no-readline --silent --stop --print-width 77 -e 'needsPackage("AssociativeAlgebras",Reload=>true,FileName=>"/<<PKGBUILDDIR>>/M2/Macaulay2/packages/AssociativeAlgebras.m2")' <"/tmp/M2-2532003-0/30.m2" >>"/tmp/M2-2532003-0/30.tmp" 2>&1
/tmp/M2-2532003-0/30.tmp:0:1: (output file) error: Macaulay2 killed by signal 9
/tmp/M2-2532003-0/30.m2:0:1: (input file)
M2: *** Error 9
 -- 6.50792 seconds elapsed
 -- running   check(26, "AssociativeAlgebras")                               -- 6.69457 seconds elapsed
 -- running   check(27, "AssociativeAlgebras")                               -- 7.99133 seconds elapsed
 -- running   check(28, "AssociativeAlgebras")                               -- 6.99254 seconds elapsed
 -- capturing check(29, "AssociativeAlgebras")                               -- 8.69268 seconds elapsed
 -- skipping  check(30, "AssociativeAlgebras")                               -- 0.000117095 seconds elapsed
 -- running   check(31, "AssociativeAlgebras")                               -- 7.8834 seconds elapsed
 -- running   check(32, "AssociativeAlgebras")                               -- 8.43175 seconds elapsed
 -- running   check(33, "AssociativeAlgebras")                               -- 6.76101 seconds elapsed
AssociativeAlgebras/tests.m2:729:1-752:1: error:
 -- -- -*- M2-comint -*- hash: 1928805808
 -- Killed
 -- 
../m2/debugging.m2:23:6:(1):[9]: error: test(s) #25 of package AssociativeAlgebras failed.
 -- running   check(31, "AssociativeAlgebras")                              
 ulimit -c unlimited; ulimit -t 700; ulimit -m 850000; ulimit -s 8192; ulimit -n 512;  cd /tmp/M2-755026-0/39-rundir/; GC_MAXIMUM_HEAP_SIZE=400M "/<<PKGBUILDDIR>>/M2/usr-dist/powerpc64le-Linux-Debian-buildd-unstable/bin/M2-binary" -q --int --no-randomize --no-readline --silent --stop --print-width 77 -e 'needsPackage("AssociativeAlgebras",Reload=>true,FileName=>"/<<PKGBUILDDIR>>/M2/Macaulay2/packages/AssociativeAlgebras.m2")' <"/tmp/M2-755026-0/38.m2" >>"/tmp/M2-755026-0/38.tmp" 2>&1
/tmp/M2-755026-0/38.tmp:0:1: (output file) error: Macaulay2 killed by signal 9
/tmp/M2-755026-0/38.m2:0:1: (input file)
M2: *** Error 9
 -- 5.06652 seconds elapsed
 -- running   check(32, "AssociativeAlgebras")                               -- 7.95509 seconds elapsed
 -- running   check(33, "AssociativeAlgebras")                               -- 7.13197 seconds elapsed
AssociativeAlgebras/tests.m2:1174:1-1193:1: error:
 -- -- -*- M2-comint -*- hash: 751016108
 -- Killed
 -- 
../m2/debugging.m2:23:6:(1):[9]: error: test(s) #31 of package AssociativeAlgebras failed.