M2 icon indicating copy to clipboard operation
M2 copied to clipboard

Crash when lifting from RR to ZZ

Open pzinn opened this issue 3 years ago • 2 comments

one-line crash:

i1 : lift( matrix {{1.}}, ZZ)
error!! lift called with no ZZ lifting method
-- SIGSEGV
-* stack trace, pid: 632942
 0# std::vector<boost::stacktrace::frame, std::allocator<boost::stacktrace::frame> >::size() const at /usr/include/c++/11/bits/stl_vector.h:919
 1# segv_handler at /home/pzinn/M2/M2/Macaulay2/bin/main.cpp:244
 2# 0x00007FCE3FFF4750 in /lib64/libc.so.6
 3# RingZZ::is_zero(ring_elem) const at /home/pzinn/M2/M2/Macaulay2/e/ZZ.cpp:149
 4# Ring::set_entry(vecterm*&, int, ring_elem) const at /home/pzinn/M2/M2/Macaulay2/e/ring-vecs.cpp:605
 5# Matrix::iterator::next() at /home/pzinn/M2/M2/Macaulay2/e/matrix.hpp:254
 6# interface_rawLift at /home/pzinn/M2/M2/Macaulay2/d/interface.dd:1461
 7# evaluate_evalraw at /home/pzinn/M2/M2/Macaulay2/d/evaluate.d:1303
 8# evaluate_evalraw at /home/pzinn/M2/M2/Macaulay2/d/evaluate.d:1263
 9# evaluate_evalraw at /home/pzinn/M2/M2/Macaulay2/d/evaluate.d:1263 (discriminator 2)
10# evaluate_applyFCCS at /home/pzinn/M2/M2/Macaulay2/d/evaluate.d:839 (discriminator 5)
11# evaluate_evalraw at /home/pzinn/M2/M2/Macaulay2/d/evaluate.d:1299
12# evaluate_applyFCS at /home/pzinn/M2/M2/Macaulay2/d/evaluate.d:529 (discriminator 1)
13# evaluate_evalraw at /home/pzinn/M2/M2/Macaulay2/d/evaluate.d:1307
14# evaluate_applyFCS at /home/pzinn/M2/M2/Macaulay2/d/evaluate.d:472 (discriminator 1)
15# iteratedApply at /home/pzinn/M2/M2/Macaulay2/d/actors3.d:2247 (discriminator 6)
16# evaluate_evalraw at /home/pzinn/M2/M2/Macaulay2/d/evaluate.d:1303
17# evaluate_applyFCS at /home/pzinn/M2/M2/Macaulay2/d/evaluate.d:472 (discriminator 1)
18# evaluate_evalraw at /home/pzinn/M2/M2/Macaulay2/d/evaluate.d:1310
19# evaluate_evalraw at /home/pzinn/M2/M2/Macaulay2/d/evaluate.d:1263 (discriminator 2)
20# evaluate_applyFCS at /home/pzinn/M2/M2/Macaulay2/d/evaluate.d:529 (discriminator 1)
21# evaluate_evalraw at /home/pzinn/M2/M2/Macaulay2/d/evaluate.d:1307
22# evaluate_applyFCS at /home/pzinn/M2/M2/Macaulay2/d/evaluate.d:472 (discriminator 1)
23# iteratedApply at /home/pzinn/M2/M2/Macaulay2/d/actors3.d:2247 (discriminator 6)
24# evaluate_evalraw at /home/pzinn/M2/M2/Macaulay2/d/evaluate.d:1303
25# evaluate_applyFCS at /home/pzinn/M2/M2/Macaulay2/d/evaluate.d:472 (discriminator 1)
26# evaluate_evalraw at /home/pzinn/M2/M2/Macaulay2/d/evaluate.d:1310
27# evaluate_evalexcept at /home/pzinn/M2/M2/Macaulay2/d/evaluate.d:1444
28# readeval3(parse_TokenFile_struct*, char, parse_DictionaryClosure_struct*, char, char, char) at /home/pzinn/M2/M2/Macaulay2/d/interp.dd:180
29# loadprint(M2_string_struct*, parse_DictionaryClosure_struct*, char) at /home/pzinn/M2/M2/Macaulay2/d/interp.dd:346 (discriminator 1)
30# commandInterpreter_2(tagged_union*) at /home/pzinn/M2/M2/Macaulay2/d/interp.dd:466 (discriminator 1)
31# evaluate_evalraw at /home/pzinn/M2/M2/Macaulay2/d/evaluate.d:1303
32# evaluate_evalraw at /home/pzinn/M2/M2/Macaulay2/d/evaluate.d:1263
33# evaluate_evalraw at /home/pzinn/M2/M2/Macaulay2/d/evaluate.d:1263 (discriminator 2)
34# evaluate_evalexcept at /home/pzinn/M2/M2/Macaulay2/d/evaluate.d:1444
35# readeval3(parse_TokenFile_struct*, char, parse_DictionaryClosure_struct*, char, char, char) at /home/pzinn/M2/M2/Macaulay2/d/interp.dd:180
36# readeval(parse_TokenFile_struct*, char, char) at /home/pzinn/M2/M2/Macaulay2/d/interp.dd:284
37# interp_process at /home/pzinn/M2/M2/Macaulay2/d/interp.dd:614
38# interpFunc(ArgCell*) at /home/pzinn/M2/M2/Macaulay2/bin/main.cpp:196
39# ThreadTask::run(SupervisorThread*) at /home/pzinn/M2/M2/Macaulay2/system/supervisor.cpp:377
40# SupervisorThread::threadEntryPoint() at /home/pzinn/M2/M2/Macaulay2/system/supervisor.cpp:426
41# SupervisorThread::threadEntryPoint(void*) at /home/pzinn/M2/M2/Macaulay2/system/supervisor.hpp:100
42# 0x00007FCE40BF69A8 in /lib64/libgc.so.1
43# GC_call_with_stack_base in /lib64/libgc.so.1
44# 0x00007FCE4003FB1A in /lib64/libc.so.6
45# 0x00007FCE400C4660 in /lib64/libc.so.6
-- end stack trace *-

Process M2 exited abnormally with code 1

pzinn avatar May 19 '22 02:05 pzinn

The code is in aring-glue.hpp:

  if (R == globalZZ)
    {
      printf("error!! lift called with no ZZ lifting method\n");
      // MES:TODO!! WRITE ME
      return true;
    }

@mikestillman -- should it return "false" instead?

DanGrayson avatar May 19 '22 02:05 DanGrayson

I'm not sure. Let me look at it. We want to be able to lift from real numbers that are close to integer, to ZZ, I think...

mikestillman avatar May 19 '22 02:05 mikestillman