Macaulay2 / Macaulay2/M2

irreducibleCharacteristicSeries segfault

Open
#3,497 5 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Core
Dominant language
Macaulay2
Stars
435
Forks
297
Avg merge
4d 20h
Merged PRs (30d)
11

Description

should probably be fixed, it's annoying:
```
i1 : R=QQ[x]

o1 = R

o1 : PolynomialRing

i2 : I=ideal R

o2 = ideal ()

o2 : Ideal of R

i3 : irreducibleCharacteristicSeries I
-- SIGSEGV
-* stack trace, pid: 15915
0# boost::stacktrace::basic_stacktrace >::basic_stacktrace() at /usr/include/boost/stacktrace/stacktrace.hpp:129
1# segv_handler at /home/pzinn/M2/M2/Macaulay2/bin/main.cpp:249
2# 0x00007F6DFE44FD00 in /lib64/libc.so.6
3# get_max_var(List const&) in /lib64/libfactory-4.4.0.so
4# neworder(List const&) in /lib64/libfactory-4.4.0.so
5# neworderint(List const&) in /lib64/libfactory-4.4.0.so
6# rawIdealReorder at /home/pzinn/M2/M2/Macaulay2/e/interface/factory.cpp:790
7# interface_rawIdealReorder at /home/pzinn/M2/M2/BUILD/fedora/Macaulay2/d/interface-tmp.cc:1483
8# evaluate_evalraw at /home/pzinn/M2/M2/Macaulay2/d/evaluate.d:1492
9# evaluate_evalraw at /home/pzinn/M2/M2/Macaulay2/d/evaluate.d:1529
10# evaluate_evalraw at /home/pzinn/M2/M2/Macaulay2/d/evaluate.d:1600
11# evaluate_applyFCE at /home/pzinn/M2/M2/Macaulay2/d/evaluate.d:805
12# evaluate_evalraw at /home/pzinn/M2/M2/Macaulay2/d/evaluate.d:1501 (discriminator 1)
13# evaluate_evalexcept at /home/pzinn/M2/M2/Macaulay2/d/evaluate.d:1650
14# readeval3(parse_TokenFile_struct*, char, parse_DictionaryClosure_struct*, char, char, char) at /home/pzinn/M2/M2/Macaulay2/d/interp.dd:187
15# loadprint(M2_string_struct*, parse_DictionaryClosure_struct*, char) at /home/pzinn/M2/M2/Macaulay2/d/interp.dd:357
16# commandInterpreter_2(tagged_union*) at /home/pzinn/M2/M2/Macaulay2/d/interp.dd:477 (discriminator 1)
17# evaluate_evalraw at /home/pzinn/M2/M2/Macaulay2/d/evaluate.d:1492
18# evaluate_evalraw at /home/pzinn/M2/M2/Macaulay2/d/evaluate.d:1529
19# evaluate_evalraw at /home/pzinn/M2/M2/Macaulay2/d/evaluate.d:1596
20# evaluate_evalexcept at /home/pzinn/M2/M2/Macaulay2/d/evaluate.d:1650
21# readeval3(parse_TokenFile_struct*, char, parse_DictionaryClosure_struct*, char, char, char) at /home/pzinn/M2/M2/Macaulay2/d/interp.dd:187
22# readeval(parse_TokenFile_struct*, char, char) at /home/pzinn/M2/M2/Macaulay2/d/interp.dd:294 (discriminator 1)
23# interp_process at /home/pzinn/M2/M2/Macaulay2/d/interp.dd:626 (discriminator 1)
24# interpFunc(ArgCell*) at /home/pzinn/M2/M2/Macaulay2/bin/main.cpp:201
25# ThreadTask::run(SupervisorThread*) at /home/pzinn/M2/M2/Macaulay2/system/supervisor.cpp:359 (discriminator 1)
26# SupervisorThread::threadEntryPoint() at /home/pzinn/M2/M2/Macaulay2/system/supervisor.cpp:404
27# SupervisorThread::threadEntryPoint(void*) at /home/pzinn/M2/M2/Macaulay2/system/supervisor.hpp:89
28# 0x00007F6DFFEE1AF6 in /lib64/libgc.so.1
29# GC_call_with_stack_base in /lib64/libgc.so.1
30# 0x00007F6DFE4A66D7 in /lib64/libc.so.6
31# 0x00007F6DFE52A60C in /lib64/libc.so.6
-- end stack trace *-
```

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the irreducibleCharacteristicSeries reproducer in the issue and follow the stack trace to rawIdealReorder in interface/factory.cpp around line 790. Run the empty-ideal example to confirm the crash, then inspect how the empty input reaches Factory's reorder functions. Done means the command no longer segfaults and regression coverage verifies its resulting behavior.

Written by the indexing model from the issue text.

Assessment

Domain
backend
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.