Bug#995020: macaulay2: autopkgtest regression and flaky test: SIGSEGV

Torrance, Douglas dtorrance at piedmont.edu
Fri Sep 24 21:30:11 BST 2021


On Fri 24 Sep 2021 04:10:40 PM EDT, Paul Gevers <elbrus at debian.org> wrote:
> Source: macaulay2
> Version: 1.18+ds-4
> X-Debbugs-CC: debian-ci at lists.debian.org
> Severity: serious
> User: debian-ci at lists.debian.org
> Usertags: regression flaky
>
> Dear maintainer(s),
>
> With a recent upload of macaulay2 the autopkgtest of macaulay2 fails in
> testing when that autopkgtest is run with the binary packages of
> macaulay2 from unstable. It passes when run with only packages from
> testing. In tabular form:
>
>                        pass            fail
> macaulay2              from testing    1.18+ds-4
> versioned deps [0]     from testing    from unstable
> all others             from testing    from testing
>
> I copied some of the output at the bottom of this report. I noticed that
> in the past the autopktest regularly fails. As the error is different
> from the failing log for the old version, I suspect a genuine regression
> now, but please check that the fixed test isn't flaky.
>
> Currently this regression is blocking the migration to testing [1]. Can
> you please investigate the situation and fix it?
>
> More information about this bug and the reason for filing it can be found on
> https://wiki.debian.org/ContinuousIntegration/RegressionEmailInformation
>
> Paul
>
> [1] https://qa.debian.org/excuses.php?package=macaulay2
>
> https://ci.debian.net/data/autopkgtest/testing/amd64/m/macaulay2/15490748/log.gz
>
>  --
> /usr/share/doc/Macaulay2/Core/tests/factor.m2:0:1-108:1: error:
>  --       -- factoring over fraction fields
>  --       F=frac(QQ[a]);
>  --
>  -- i44 : R=F[x,y];
>  --
>  -- i45 : assert(#factor(x^2-a^-2*y^2)==3);
>  --
>  -- i46 :
>  --
>  -- -- SIGSEGV
>  -- -* stack trace, pid: 3577
>  --  0# 0x0000561FFF048737 in /usr/bin/M2-binary
>  --  1# 0x0000561FFF0489EA in /usr/bin/M2-binary
>  --  2# 0x00007F2AE3C76EF0 in /lib/x86_64-linux-gnu/libc.so.6
>  --  3# NTL::UniqueArray<NTL::UniquePtr<NTL::FFTPrimeInfo,
> NTL::DefaultDeleterPolicy> >::~UniqueArray() in
> /lib/x86_64-linux-gnu/libntl.so.44
>  --  4# __cxa_finalize in /lib/x86_64-linux-gnu/libc.so.6
>  --  5# 0x00007F2AE34ED5B3 in /lib/x86_64-linux-gnu/libntl.so.43
>  -- -- end stack trace *-
>  --
> /usr/share/doc/Macaulay2/Core/tests/factory.m2:0:1-25:1: error:
>  --
>  -- o14 : R
>  --
>  -- i15 : assert( gcd(p,q) == d )
>  --
>  -- i16 : -- test deferred, trying to get it to work
>  --       -- factor p						    -- not implemented yet
>  --
>  --
>  -- -- SIGSEGV
>  -- -* stack trace, pid: 3615
>  --  0# 0x00005612348DA737 in /usr/bin/M2-binary
>  --  1# 0x00005612348DA9EA in /usr/bin/M2-binary
>  --  2# 0x00007FBEA4D64EF0 in /lib/x86_64-linux-gnu/libc.so.6
>  --  3# NTL::UniqueArray<NTL::UniquePtr<NTL::FFTPrimeInfo,
> NTL::DefaultDeleterPolicy> >::~UniqueArray() in
> /lib/x86_64-linux-gnu/libntl.so.44
>  --  4# __cxa_finalize in /lib/x86_64-linux-gnu/libc.so.6
>  --  5# 0x00007FBEA45DB5B3 in /lib/x86_64-linux-gnu/libntl.so.43
>  -- -- end stack trace *-
>  --
> /usr/share/doc/Macaulay2/Core/tests/flattenRing.m2:0:1-256:1: error:
>  --
>  -- i164 : assert( source p === ring J )
>  --
>  -- i165 : assert( target q === ring I )
>  --
>  -- i166 : assert( source q === ring I )
>  --
>  -- i167 :
>  --
>  -- -- SIGSEGV
>  -- -* stack trace, pid: 3768
>  --  0# 0x000055599045B737 in /usr/bin/M2-binary
>  --  1# 0x000055599045B9EA in /usr/bin/M2-binary
>  --  2# 0x00007FDC96DC7EF0 in /lib/x86_64-linux-gnu/libc.so.6
>  --  3# NTL::UniqueArray<NTL::UniquePtr<NTL::FFTPrimeInfo,
> NTL::DefaultDeleterPolicy> >::~UniqueArray() in
> /lib/x86_64-linux-gnu/libntl.so.44
>  --  4# __cxa_finalize in /lib/x86_64-linux-gnu/libc.so.6
>  --  5# 0x00007FDC9663E5B3 in /lib/x86_64-linux-gnu/libntl.so.43
>  -- -- end stack trace *-
>  --
> /usr/share/doc/Macaulay2/Core/tests/frac.m2:0:1-132:1: error:
>  --
>  -- o83 : FractionField
>  --
>  -- i84 : try (1_F/x)^2
>  --
>  -- i85 : assert( getNonUnit F === x )
>  --
>  -- i86 :
>  --       end
>  -- -- SIGSEGV
>  -- -* stack trace, pid: 3806
>  --  0# 0x000056275E6BE737 in /usr/bin/M2-binary
>  --  1# 0x000056275E6BE9EA in /usr/bin/M2-binary
>  --  2# 0x00007FC1E5D7BEF0 in /lib/x86_64-linux-gnu/libc.so.6
>  --  3# NTL::UniqueArray<NTL::UniquePtr<NTL::FFTPrimeInfo,
> NTL::DefaultDeleterPolicy> >::~UniqueArray() in
> /lib/x86_64-linux-gnu/libntl.so.44
>  --  4# __cxa_finalize in /lib/x86_64-linux-gnu/libc.so.6
>  --  5# 0x00007FC1E55F25B3 in /lib/x86_64-linux-gnu/libntl.so.43
>  -- -- end stack trace *-
>  --
> /usr/share/doc/Macaulay2/Core/tests/galois.m2:0:1-39:1: error:
>  -- o26 = k
>  --
>  -- o26 : GaloisField
>  --
>  -- i27 :
>  --       assert( length degree id_(k^1) == 0 )
>  --
>  -- i28 :
>  --       end
>  -- -- SIGSEGV
>  -- -* stack trace, pid: 3882
>  --  0# 0x0000558928975737 in /usr/bin/M2-binary
>  --  1# 0x00005589289759EA in /usr/bin/M2-binary
>  --  2# 0x00007F7A7EF02EF0 in /lib/x86_64-linux-gnu/libc.so.6
>  --  3# NTL::UniqueArray<NTL::UniquePtr<NTL::FFTPrimeInfo,
> NTL::DefaultDeleterPolicy> >::~UniqueArray() in
> /lib/x86_64-linux-gnu/libntl.so.44
>  --  4# __cxa_finalize in /lib/x86_64-linux-gnu/libc.so.6
>  --  5# 0x00007F7A7E7795B3 in /lib/x86_64-linux-gnu/libntl.so.43
>  -- -- end stack trace *-
>  --
> /usr/share/doc/Macaulay2/Core/tests/galois1.m2:0:1-66:1: error:
>  -- i33 : --assert( p (c*x) == (-t-2)^e * q*r ) -- this behavior has
> changed (15 June 2014):
>  --       assert( p (c*x) == t*q*r)
>  --
>  -- i34 :
>  --       -- # Local Variables:
>  --       -- # compile-command: "make -k -C
> $M2BUILDDIR/Macaulay2/packages/Macaulay2Doc/test galois1.out "
>  --       -- # End:
>  --
>  --
>  -- -- SIGSEGV
>  -- -* stack trace, pid: 3920
>  --  0# 0x000055973EC21737 in /usr/bin/M2-binary
>  --  1# 0x000055973EC219EA in /usr/bin/M2-binary
>  --  2# 0x00007FBD2A5B3EF0 in /lib/x86_64-linux-gnu/libc.so.6
>  --  3# NTL::UniqueArray<NTL::UniquePtr<NTL::FFTPrimeInfo,
> NTL::DefaultDeleterPolicy> >::~UniqueArray() in
> /lib/x86_64-linux-gnu/libntl.so.44
>  --  4# __cxa_finalize in /lib/x86_64-linux-gnu/libc.so.6
>  --  5# 0x00007FBD29E2A5B3 in /lib/x86_64-linux-gnu/libntl.so.43
>  -- -- end stack trace *-
>  --
> /usr/share/doc/Macaulay2/Core/tests/gcd.m2:0:1-85:1: error:
>  --
>  -- i64 : rawExtendedGCD( raw ( 1/2*f ), raw ( 1/3*g ))
>  --
>  -- o64 = (1, -x2-x+1, 3/2x+3/2)
>  --
>  -- o64 : Sequence
>  --
>  -- i65 :
>  --       end
>  -- -- SIGSEGV
>  -- -* stack trace, pid: 4262
>  --  0# 0x000055AE7C40E737 in /usr/bin/M2-binary
>  --  1# 0x000055AE7C40E9EA in /usr/bin/M2-binary
>  --  2# 0x00007FFA5CA6FEF0 in /lib/x86_64-linux-gnu/libc.so.6
>  --  3# NTL::UniqueArray<NTL::UniquePtr<NTL::FFTPrimeInfo,
> NTL::DefaultDeleterPolicy> >::~UniqueArray() in
> /lib/x86_64-linux-gnu/libntl.so.44
>  --  4# __cxa_finalize in /lib/x86_64-linux-gnu/libc.so.6
>  --  5# 0x00007FFA5C2E65B3 in /lib/x86_64-linux-gnu/libntl.so.43
>  -- -- end stack trace *-
>  --
> /usr/share/doc/Macaulay2/Core/tests/gens.m2:0:1-18:1: error:
>  --
>  -- i7 : assert( # gens(A) == 2 )
>  --
>  -- i8 : assert( # gens(A,CoefficientRing=>ZZ) == 3 )
>  --
>  -- i9 : assert( # gens(A,CoefficientRing=>ZZ/5) == 3 )
>  --
>  -- i10 :
>  --       end
>  -- -- SIGSEGV
>  -- -* stack trace, pid: 4300
>  --  0# 0x000055D3EB941737 in /usr/bin/M2-binary
>  --  1# 0x000055D3EB9419EA in /usr/bin/M2-binary
>  --  2# 0x00007F3AD5DA4EF0 in /lib/x86_64-linux-gnu/libc.so.6
>  --  3# NTL::UniqueArray<NTL::UniquePtr<NTL::FFTPrimeInfo,
> NTL::DefaultDeleterPolicy> >::~UniqueArray() in
> /lib/x86_64-linux-gnu/libntl.so.44
>  --  4# __cxa_finalize in /lib/x86_64-linux-gnu/libc.so.6
>  --  5# 0x00007F3AD561B5B3 in /lib/x86_64-linux-gnu/libntl.so.43
>  -- -- end stack trace *-
>  --
> /usr/share/doc/Macaulay2/Core/tests/GF.m2:0:1-57:1: error:
>  --
>  -- i16 : raw promote(a,S)  -- now it works
>  --
>  -- o16 = a
>  --
>  -- o16 : RawRingElement
>  --
>  -- i17 :
>  --       end
>  -- -- SIGSEGV
>  -- -* stack trace, pid: 4338
>  --  0# 0x0000559A835FF737 in /usr/bin/M2-binary
>  --  1# 0x0000559A835FF9EA in /usr/bin/M2-binary
>  --  2# 0x00007F9525C43EF0 in /lib/x86_64-linux-gnu/libc.so.6
>  --  3# NTL::UniqueArray<NTL::UniquePtr<NTL::FFTPrimeInfo,
> NTL::DefaultDeleterPolicy> >::~UniqueArray() in
> /lib/x86_64-linux-gnu/libntl.so.44
>  --  4# __cxa_finalize in /lib/x86_64-linux-gnu/libc.so.6
>  --  5# 0x00007F95254BA5B3 in /lib/x86_64-linux-gnu/libntl.so.43
>  -- -- end stack trace *-
>  --
> /usr/share/doc/Macaulay2/Core/tests/monorder.m2:0:1-81:1: error:
>  --
>  -- o30 = R
>  --
>  -- o30 : PolynomialRing
>  --
>  -- i31 : assert( id_(R^2) == sort id_(R^2) )
>  --
>  -- i32 :
>  --
>  -- -- SIGSEGV
>  -- -* stack trace, pid: 5594
>  --  0# 0x000055D7AD821737 in /usr/bin/M2-binary
>  --  1# 0x000055D7AD8219EA in /usr/bin/M2-binary
>  --  2# 0x00007F340B9F7EF0 in /lib/x86_64-linux-gnu/libc.so.6
>  --  3# NTL::UniqueArray<NTL::UniquePtr<NTL::FFTPrimeInfo,
> NTL::DefaultDeleterPolicy> >::~UniqueArray() in
> /lib/x86_64-linux-gnu/libntl.so.44
>  --  4# __cxa_finalize in /lib/x86_64-linux-gnu/libc.so.6
>  --  5# 0x00007F340B26E5B3 in /lib/x86_64-linux-gnu/libntl.so.43
>  -- -- end stack trace *-
>  --
> /usr/share/doc/Macaulay2/Core/tests/mutmat.m2:0:1-62:1: error:
>  --
>  -- i47 : assert(L_(0, 1) == 0)
>  --
>  -- i48 : assert(U_(1, 0) == 0)
>  --
>  -- i49 : assert(Q * L * U == M)
>  --
>  -- i50 :
>  --
>  -- -- SIGSEGV
>  -- -* stack trace, pid: 5746
>  --  0# 0x000055F5827AF737 in /usr/bin/M2-binary
>  --  1# 0x000055F5827AF9EA in /usr/bin/M2-binary
>  --  2# 0x00007FABA5E52EF0 in /lib/x86_64-linux-gnu/libc.so.6
>  --  3# NTL::UniqueArray<NTL::UniquePtr<NTL::FFTPrimeInfo,
> NTL::DefaultDeleterPolicy> >::~UniqueArray() in
> /lib/x86_64-linux-gnu/libntl.so.44
>  --  4# __cxa_finalize in /lib/x86_64-linux-gnu/libc.so.6
>  --  5# 0x00007FABA56C95B3 in /lib/x86_64-linux-gnu/libntl.so.43
>  -- -- end stack trace *-
>  --
> /usr/share/doc/Macaulay2/Core/tests/polyring-power.m2:0:1-31:1: error:
>  --
>  -- o15 = S
>  --
>  -- o15 : PolynomialRing
>  --
>  -- i16 : --testpower(x^2-3*y^2+z, 5^5 + 5^3+5^2+3*5+2) -- 20 seconds
> for iterative code...
>  --
>  --
>  --
>  -- -- SIGSEGV
>  -- -* stack trace, pid: 5898
>  --  0# 0x00005651E2C48737 in /usr/bin/M2-binary
>  --  1# 0x00005651E2C489EA in /usr/bin/M2-binary
>  --  2# 0x00007FE67B10AEF0 in /lib/x86_64-linux-gnu/libc.so.6
>  --  3# NTL::UniqueArray<NTL::UniquePtr<NTL::FFTPrimeInfo,
> NTL::DefaultDeleterPolicy> >::~UniqueArray() in
> /lib/x86_64-linux-gnu/libntl.so.44
>  --  4# __cxa_finalize in /lib/x86_64-linux-gnu/libc.so.6
>  --  5# 0x00007FE67A9815B3 in /lib/x86_64-linux-gnu/libntl.so.43
>  -- -- end stack trace *-
>  --
> /usr/share/doc/Macaulay2/Core/tests/prune2.m2:0:1-49:1: error:
>  -- o28 = R
>  --
>  -- o28 : PolynomialRing
>  --
>  -- i29 : assert ( R^0 == prune coker id_(R^3) )
>  --
>  -- i30 :
>  --
>  --
>  -- -- SIGSEGV
>  -- -* stack trace, pid: 6119
>  --  0# 0x00005593EC4D7737 in /usr/bin/M2-binary
>  --  1# 0x00005593EC4D79EA in /usr/bin/M2-binary
>  --  2# 0x00007FEC0BB38EF0 in /lib/x86_64-linux-gnu/libc.so.6
>  --  3# NTL::UniqueArray<NTL::UniquePtr<NTL::FFTPrimeInfo,
> NTL::DefaultDeleterPolicy> >::~UniqueArray() in
> /lib/x86_64-linux-gnu/libntl.so.44
>  --  4# __cxa_finalize in /lib/x86_64-linux-gnu/libc.so.6
>  --  5# 0x00007FEC0B3AF5B3 in /lib/x86_64-linux-gnu/libntl.so.43
>  -- -- end stack trace *-
>  --
> /usr/share/doc/Macaulay2/Core/tests/rank-GF-2.m2:0:1-81:1: error:
>  --      -- Check that the 55 points lie in respective planes
>  --      --
>  --      for i from 0 to 9 do
>  --      for j from 0 to 9 do
>  --      for m from 0 to 2 do
>  --      (s=substitute(Jten_(m,i), apply(6,q-> R5_q=>pts_(i,j)_q));
>  --      if s != 0 then print(toString i|" "|toString j|" "|toString m));
>  --
>  -- i10 : end
>  -- -- SIGSEGV
>  -- -* stack trace, pid: 6271
>  --  0# 0x000055935FA19737 in /usr/bin/M2-binary
>  --  1# 0x000055935FA199EA in /usr/bin/M2-binary
>  --  2# 0x00007F4AFF6E6EF0 in /lib/x86_64-linux-gnu/libc.so.6
>  --  3# NTL::UniqueArray<NTL::UniquePtr<NTL::FFTPrimeInfo,
> NTL::DefaultDeleterPolicy> >::~UniqueArray() in
> /lib/x86_64-linux-gnu/libntl.so.44
>  --  4# __cxa_finalize in /lib/x86_64-linux-gnu/libc.so.6
>  --  5# 0x00007F4AFEF5D5B3 in /lib/x86_64-linux-gnu/libntl.so.43
>  -- -- end stack trace *-
>  --
> /usr/share/doc/Macaulay2/Core/tests/rank-GF.m2:0:1-93:1: error:
> -- The complexity of matching the regular expression exceeded predefined
> bounds.  Try refactoring the regular expression to make each choice made
> by the state machine unambiguous.  This exception is thrown to prevent
> "eternal" matches that take an indefinite period time to locate.
> stdio:1:1:(3): error: unable to compile regular expression
> -- SIGSEGV
> -* stack trace, pid: 2919
>  0# 0x0000565004EBB737 in /usr/bin/M2-binary
>  1# 0x0000565004EBB9EA in /usr/bin/M2-binary
>  2# 0x00007F020885BEF0 in /lib/x86_64-linux-gnu/libc.so.6
>  3# NTL::UniqueArray<NTL::UniquePtr<NTL::FFTPrimeInfo,
> NTL::DefaultDeleterPolicy> >::~UniqueArray() in
> /lib/x86_64-linux-gnu/libntl.so.44
>  4# __cxa_finalize in /lib/x86_64-linux-gnu/libc.so.6
>  5# 0x00007F02080D25B3 in /lib/x86_64-linux-gnu/libntl.so.43
> -- end stack trace *-
>
>  cd /tmp/M2-2879-0/1-rundir/; GC_MAXIMUM_HEAP_SIZE=400M
> "/usr/bin/M2-binary" -q --int --no-randomize --no-readline --silent
> --stop --print-width 77 <"/tmp/M2-2879-0/0.m2" >>"/tmp/M2-2879-0/0.tmp"
> /tmp/M2-2879-0/0.tmp:0:1: (output file) error: Macaulay2 exited with
> status code 1
> /tmp/M2-2879-0/0.m2:0:1: (input file)
> M2: *** Error 1

Thanks for the report!

I had noticed this as well.  My guess is that it has something to do with
the transition of ntl.  libntl43 is in testing, and libntl44 recently appeared
in unstable.  The unstable autopkgtests, using only libntl44, run without
issue, e.g., [1], but the testing autopkgtests, which use both, have these
segfaults.  We even see both soname versions appearing in the stacktrace:

>  3# NTL::UniqueArray<NTL::UniquePtr<NTL::FFTPrimeInfo,
> NTL::DefaultDeleterPolicy> >::~UniqueArray() in
> /lib/x86_64-linux-gnu/libntl.so.44
>  4# __cxa_finalize in /lib/x86_64-linux-gnu/libc.so.6
>  5# 0x00007F02080D25B3 in /lib/x86_64-linux-gnu/libntl.so.43

I'm hopeful that once ntl 11.5.1-1 migrates to testing (which is imminent, as
today is day 5 of 5), this issue will be resolved.

[1] https://ci.debian.net/data/autopkgtest/unstable/amd64/m/macaulay2/15463185/log.gz
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 866 bytes
Desc: not available
URL: <http://alioth-lists.debian.net/pipermail/debian-science-maintainers/attachments/20210924/86e4ce7b/attachment-0001.sig>


More information about the debian-science-maintainers mailing list