M2 icon indicating copy to clipboard operation
M2 copied to clipboard

MinimalPrimes crashes occasionally

Open DanGrayson opened this issue 6 years ago • 9 comments

About once per month MinimalPrimes crashes M2 during a daily test, as it tries the SplitTower method:

Screen Shot 2020-01-08 at 5 18 24 PM

DanGrayson avatar Jan 08 '20 23:01 DanGrayson

That's under Ubuntu 16.04 on habanero.

DanGrayson avatar Jan 08 '20 23:01 DanGrayson

Unassigning myself. Realistically, I don't have time to helpf with this issue. Sorry 😞

fhinkel avatar Jan 09 '20 16:01 fhinkel

Just saw this for check(13, "MinimalPrimes") in an armhf PPA build on Ubuntu 20.04:

 -- capturing check(13, "MinimalPrimes")                                    -- SIGSEGV
-* stack trace, pid: 20485
 0# stack_trace(std::ostream&, bool) at ./M2/Macaulay2/d/main.cpp:124
 1# segv_handler at ./M2/Macaulay2/d/main.cpp:240
 2# 0xF6A57900 in /lib/arm-linux-gnueabihf/libc.so.6
 3# FractionField::mult(ring_elem, ring_elem) const at ./M2/Macaulay2/e/frac.cpp:516
 4# GBRingPoly::mult_by_term1(FreeModule const*, gbvector const*, ring_elem, int const*, int) at ./M2/Macaulay2/e/gbring.cpp:116
 5# GBRing::mult_by_term(FreeModule const*, gbvector const*, ring_elem, int const*, int) at ./M2/Macaulay2/e/gbring.cpp:839
 6# GBRing::gbvector_reduce_lead_term(FreeModule const*, FreeModule const*, gbvector*, gbvector*&, gbvector*&, gbvector const*, gbvector const*, bool, ring_elem&) at ./M2/Macaulay2/e/gbring.cpp:967
 7# ReducedGB_Field::remainder(POLY&, bool, ring_elem&) at ./M2/Macaulay2/e/reducedgb-field.cpp:124
 8# ReducedGB::matrix_lift(Matrix const*, Matrix const**, Matrix const**) at ./M2/Macaulay2/e/reducedgb.cpp:193
 9# PolyRingQuotient::ann(ring_elem, ring_elem) const at ./M2/Macaulay2/e/polyquotient.cpp:324
10# PolyRingQuotient::invert(ring_elem) const at ./M2/Macaulay2/e/polyquotient.cpp:180
11# Ring::power(ring_elem, __mpz_struct const*) const at ./M2/Macaulay2/e/ring.cpp:111
12# PolyRingQuotient::power(ring_elem, __mpz_struct const*) const at ./M2/Macaulay2/e/polyquotient.cpp:148
13# RingElement::power(__mpz_struct const*) const at ./M2/Macaulay2/e/relem.cpp:132
14# engine_circ__1 at ./M2/Macaulay2/d/engine.dd:140
-- end stack trace *-
make[4]: *** [Makefile:41: check-MinimalPrimes] Error 1

d-torrance avatar Mar 14 '21 15:03 d-torrance

Happened again in check(74, "MinimalPrimes") in an s390x PPA build on Ubuntu 21.10:

 -- capturing check(74, "MinimalPrimes")                                    -- SIGSEGV
-* stack trace, pid: 38321
 0# stack_trace(std::ostream&, bool) at ./M2/Macaulay2/d/main.cpp:127
 1# segv_handler at ./M2/Macaulay2/d/main.cpp:243
 2# 0x000003FFA72F161E
 3# FractionField::mult(ring_elem, ring_elem) const at ./M2/Macaulay2/e/frac.cpp:516
 4# GBRingPoly::mult_by_term1(FreeModule const*, gbvector const*, ring_elem, int const*, int) at ./M2/Macaulay2/e/gbring.cpp:115
 5# GBRing::mult_by_term(FreeModule const*, gbvector const*, ring_elem, int const*, int) at ./M2/Macaulay2/e/gbring.cpp:836
 6# GBRing::gbvector_reduce_lead_term(FreeModule const*, FreeModule const*, gbvector*, gbvector*&, gbvector*&, gbvector const*, gbvector const*, bool, ring_elem&) at ./M2/Macaulay2/e/gbring.cpp:966
 7# ReducedGB_Field::remainder(POLY&, bool, ring_elem&) at ./M2/Macaulay2/e/reducedgb-field.cpp:107
 8# ReducedGB::matrix_lift(Matrix const*, Matrix const**, Matrix const**) at ./M2/Macaulay2/e/reducedgb.cpp:193
 9# PolyRingQuotient::ann(ring_elem, ring_elem) const at ./M2/Macaulay2/e/polyquotient.cpp:351
10# PolyRingQuotient::invert(ring_elem) const at ./M2/Macaulay2/e/polyquotient.cpp:184
11# Ring::power(ring_elem, __mpz_struct const*) const at ./M2/Macaulay2/e/ring.cpp:111
12# PolyRingQuotient::power(ring_elem, __mpz_struct const*) const at ./M2/Macaulay2/e/polyquotient.cpp:154
13# RingElement::power(__mpz_struct const*) const at ./M2/Macaulay2/e/relem.cpp:132
14# engine_circ__1 at ./M2/Macaulay2/d/engine.dd:140
15# actors_circ_ at ./M2/Macaulay2/d/actors.d:705
16# evaluate_evalraw at ./M2/Macaulay2/d/evaluate.d:1295
17# newfromfun(tagged_union*, tagged_union*) at ./M2/Macaulay2/d/actors2.dd:315
18# evaluate_evalraw at ./M2/Macaulay2/d/evaluate.d:1392

d-torrance avatar Mar 09 '22 19:03 d-torrance

And in check(14, "MinimalPrimes") in an s390x PPA build in Ubuntu 22.04:

 -- capturing check(14, "MinimalPrimes")                                    -- SIGSEGV
-* stack trace, pid: 36741
 0# stack_trace(std::ostream&, bool) at ./M2/Macaulay2/d/main.cpp:127
 1# segv_handler at ./M2/Macaulay2/d/main.cpp:243
 2# 0x000003FFA32F05EE
 3# FractionField::mult(ring_elem, ring_elem) const at ./M2/Macaulay2/e/frac.cpp:516
 4# GBRingPoly::mult_by_term1(FreeModule const*, gbvector const*, ring_elem, int const*, int) at ./M2/Macaulay2/e/gbring.cpp:115
 5# GBRing::mult_by_term(FreeModule const*, gbvector const*, ring_elem, int const*, int) at ./M2/Macaulay2/e/gbring.cpp:836
 6# GBRing::gbvector_reduce_lead_term(FreeModule const*, FreeModule const*, gbvector*, gbvector*&, gbvector*&, gbvector const*, gbvector const*, bool, ring_elem&) at ./M2/Macaulay2/e/gbring.cpp:966
 7# ReducedGB_Field::remainder(POLY&, bool, ring_elem&) at ./M2/Macaulay2/e/reducedgb-field.cpp:107
 8# ReducedGB::matrix_lift(Matrix const*, Matrix const**, Matrix const**) at ./M2/Macaulay2/e/reducedgb.cpp:193
 9# PolyRingQuotient::ann(ring_elem, ring_elem) const at ./M2/Macaulay2/e/polyquotient.cpp:351
10# PolyRingQuotient::invert(ring_elem) const at ./M2/Macaulay2/e/polyquotient.cpp:184
11# Ring::power(ring_elem, __mpz_struct const*) const at ./M2/Macaulay2/e/ring.cpp:111
12# PolyRingQuotient::power(ring_elem, __mpz_struct const*) const at ./M2/Macaulay2/e/polyquotient.cpp:154
13# RingElement::power(__mpz_struct const*) const at ./M2/Macaulay2/e/relem.cpp:132
14# engine_circ__1 at ./M2/Macaulay2/d/engine.dd:140
15# actors_circ_ at ./M2/Macaulay2/d/actors.d:705
16# evaluate_evalraw at ./M2/Macaulay2/d/evaluate.d:1295

d-torrance avatar Mar 18 '22 03:03 d-torrance

@DanGrayson @d-torrance Have you seen this crash since we fixed the MonomialIdeal::sat bug?

mikestillman avatar Apr 15 '22 14:04 mikestillman

@DanGrayson @d-torrance Have you seen this crash since we fixed the MonomialIdeal::sat bug?

Not since the last comment I made on Mar. 17, which was before you opened #2424. It's pretty rare, though. It's only showing up on the PPA builds like once per month or so.

d-torrance avatar Apr 15 '22 15:04 d-torrance

I haven't seen it. But I'm less observant than Doug.

DanGrayson avatar Apr 15 '22 15:04 DanGrayson

This happened again in an s390x PPA build in Ubuntu 22.04. This is the first time I've seen it since the MonomialIdeal::sat bug was fixed.

 -- capturing check(13, "MinimalPrimes")                                    -- SIGSEGV
-* stack trace, pid: 37412
 0# stack_trace(std::ostream&, bool) at ./M2/Macaulay2/d/main.cpp:127
 1# segv_handler at ./M2/Macaulay2/d/main.cpp:243
 2# 0x000003FF8CAF15E6
 3# FractionField::mult(ring_elem, ring_elem) const at ./M2/Macaulay2/e/frac.cpp:516
 4# GBRingPoly::mult_by_term1(FreeModule const*, gbvector const*, ring_elem, int const*, int) at ./M2/Macaulay2/e/gbring.cpp:115
 5# GBRing::mult_by_term(FreeModule const*, gbvector const*, ring_elem, int const*, int) at ./M2/Macaulay2/e/gbring.cpp:836
 6# GBRing::gbvector_reduce_lead_term(FreeModule const*, FreeModule const*, gbvector*, gbvector*&, gbvector*&, gbvector const*, gbvector const*, bool, ring_elem&) at ./M2/Macaulay2/e/gbring.cpp:966
 7# ReducedGB_Field::remainder(POLY&, bool, ring_elem&) at ./M2/Macaulay2/e/reducedgb-field.cpp:107
 8# ReducedGB::matrix_lift(Matrix const*, Matrix const**, Matrix const**) at ./M2/Macaulay2/e/reducedgb.cpp:193
 9# PolyRingQuotient::ann(ring_elem, ring_elem) const at ./M2/Macaulay2/e/polyquotient.cpp:351
10# PolyRingQuotient::invert(ring_elem) const at ./M2/Macaulay2/e/polyquotient.cpp:184
11# Ring::power(ring_elem, __mpz_struct const*) const at ./M2/Macaulay2/e/ring.cpp:111
12# PolyRingQuotient::power(ring_elem, __mpz_struct const*) const at ./M2/Macaulay2/e/polyquotient.cpp:154
13# RingElement::power(__mpz_struct const*) const at ./M2/Macaulay2/e/relem.cpp:132

d-torrance avatar Apr 29 '22 14:04 d-torrance