Skip to content

ORC runs into infinite recursion #22927

Closed
@theamarin

Description

Description

I can manage ORC to run into an apparently infinite recursion, which obviously should not happen.

Nim Version

The commit that breaks ORC for me is 71dc929.
It works with 02be212 but fails with 71dc929.

Current Output

[Suite] module
  [OK] attach_and_update
Traceback (most recent call last)
.../nim-lang/lib/system/iterators.nim(78) tests
.../nim-lang/lib/system.nim(910) newModule
.../nim-lang/lib/system/orc.nim(510) nimDecRefIsLastCyclicStatic
.../nim-lang/lib/system/orc.nim(475) rememberCycle
.../nim-lang/lib/system/orc.nim(415) registerCycle
.../nim-lang/lib/system/orc.nim(385) collectCycles
.../nim-lang/lib/system/orc.nim(340) collectCyclesBacon
.../nim-lang/lib/system/orc.nim(97) free
.../nim-lang/lib/system/orc.nim(510) nimDecRefIsLastCyclicStatic
.../nim-lang/lib/system/orc.nim(475) rememberCycle
.../nim-lang/lib/system/orc.nim(415) registerCycle
.../nim-lang/lib/system/orc.nim(385) collectCycles
.../nim-lang/lib/system/orc.nim(340) collectCyclesBacon
.../nim-lang/lib/system/orc.nim(97) free
.../nim-lang/lib/system/orc.nim(510) nimDecRefIsLastCyclicStatic
.../nim-lang/lib/system/orc.nim(475) rememberCycle
.../nim-lang/lib/system/orc.nim(415) registerCycle
.../nim-lang/lib/system/orc.nim(385) collectCycles
.../nim-lang/lib/system/orc.nim(340) collectCyclesBacon
.../nim-lang/lib/system/orc.nim(97) free
.../nim-lang/lib/system/orc.nim(510) nimDecRefIsLastCyclicStatic
.../nim-lang/lib/system/orc.nim(475) rememberCycle
.../nim-lang/lib/system/orc.nim(415) registerCycle
.../nim-lang/lib/system/orc.nim(385) collectCycles
.../nim-lang/lib/system/orc.nim(340) collectCyclesBacon
.../nim-lang/lib/system/orc.nim(97) free
.../nim-lang/lib/system/orc.nim(510) nimDecRefIsLastCyclicStatic
.../nim-lang/lib/system/orc.nim(475) rememberCycle
.../nim-lang/lib/system/orc.nim(415) registerCycle
.../nim-lang/lib/system/orc.nim(385) collectCycles
.../nim-lang/lib/system/orc.nim(340) collectCyclesBacon
(1874 calls omitted) ...
.../nim-lang/lib/system/orc.nim(475) rememberCycle
.../nim-lang/lib/system/orc.nim(415) registerCycle
.../nim-lang/lib/system/orc.nim(385) collectCycles
.../nim-lang/lib/system/orc.nim(340) collectCyclesBacon
.../nim-lang/lib/system/orc.nim(97) free
.../nim-lang/lib/system/orc.nim(510) nimDecRefIsLastCyclicStatic
.../nim-lang/lib/system/orc.nim(475) rememberCycle
.../nim-lang/lib/system/orc.nim(415) registerCycle
.../nim-lang/lib/system/orc.nim(385) collectCycles
.../nim-lang/lib/system/orc.nim(340) collectCyclesBacon
.../nim-lang/lib/system/orc.nim(97) free
.../nim-lang/lib/system/orc.nim(510) nimDecRefIsLastCyclicStatic
.../nim-lang/lib/system/orc.nim(475) rememberCycle
.../nim-lang/lib/system/orc.nim(415) registerCycle
.../nim-lang/lib/system/orc.nim(385) collectCycles
.../nim-lang/lib/system/orc.nim(340) collectCyclesBacon
.../nim-lang/lib/system/orc.nim(97) free
.../nim-lang/lib/system/orc.nim(510) nimDecRefIsLastCyclicStatic
.../nim-lang/lib/system/orc.nim(475) rememberCycle
.../nim-lang/lib/system/orc.nim(415) registerCycle
.../nim-lang/lib/system/orc.nim(385) collectCycles
.../nim-lang/lib/system/orc.nim(340) collectCyclesBacon
.../nim-lang/lib/system/orc.nim(97) free
.../nim-lang/lib/system/orc.nim(510) nimDecRefIsLastCyclicStatic
.../nim-lang/lib/system/orc.nim(475) rememberCycle
.../nim-lang/lib/system/orc.nim(415) registerCycle
.../nim-lang/lib/system/orc.nim(385) collectCycles
.../nim-lang/lib/system/orc.nim(340) collectCyclesBacon
.../nim-lang/lib/system/orc.nim(97) free
.../nim-lang/lib/system/orc.nim(510) nimDecRefIsLastCyclicStatic
.../nim-lang/lib/system/orc.nim(475) rememberCycle
.../nim-lang/lib/system/orc.nim(415) registerCycle
.../nim-lang/lib/system/orc.nim(385) collectCycles
.../nim-lang/lib/system/orc.nim(340) collectCyclesBacon
.../nim-lang/lib/system/orc.nim(97) free
.../nim-lang/lib/system/orc.nim(510) nimDecRefIsLastCyclicStatic
.../nim-lang/lib/system/orc.nim(475) rememberCycle
.../nim-lang/lib/system/orc.nim(415) registerCycle
.../nim-lang/lib/system/orc.nim(385) collectCycles
.../nim-lang/lib/system/orc.nim(340) collectCyclesBacon
.../nim-lang/lib/system/orc.nim(97) free
.../nim-lang/lib/system/orc.nim(510) nimDecRefIsLastCyclicStatic
.../nim-lang/lib/system/orc.nim(475) rememberCycle
.../nim-lang/lib/system/orc.nim(415) registerCycle
.../nim-lang/lib/system/orc.nim(385) collectCycles
.../nim-lang/lib/system/orc.nim(340) collectCyclesBacon
.../nim-lang/lib/system/orc.nim(97) free
.../nim-lang/lib/system/orc.nim(510) nimDecRefIsLastCyclicStatic
.../nim-lang/lib/system/orc.nim(475) rememberCycle
.../nim-lang/lib/system/orc.nim(415) registerCycle
.../nim-lang/lib/system/orc.nim(385) collectCycles
.../nim-lang/lib/system/orc.nim(340) collectCyclesBacon
.../nim-lang/lib/system/orc.nim(97) free
.../nim-lang/lib/system/orc.nim(510) nimDecRefIsLastCyclicStatic
.../nim-lang/lib/system/orc.nim(475) rememberCycle
.../nim-lang/lib/system/orc.nim(415) registerCycle
.../nim-lang/lib/system/orc.nim(385) collectCycles
.../nim-lang/lib/system/orc.nim(340) collectCyclesBacon
.../nim-lang/lib/system/orc.nim(97) free
.../nim-lang/lib/system/orc.nim(510) nimDecRefIsLastCyclicStatic
.../nim-lang/lib/system/orc.nim(475) rememberCycle
.../nim-lang/lib/system/orc.nim(415) registerCycle
.../nim-lang/lib/system/orc.nim(385) collectCycles
.../nim-lang/lib/system/orc.nim(340) collectCyclesBacon
.../nim-lang/lib/system/orc.nim(97) free
.../nim-lang/lib/system/orc.nim(510) nimDecRefIsLastCyclicStatic
.../nim-lang/lib/system/orc.nim(475) rememberCycle
.../nim-lang/lib/system/orc.nim(415) registerCycle
.../nim-lang/lib/system/orc.nim(385) collectCycles
.../nim-lang/lib/system/orc.nim(340) collectCyclesBacon
.../nim-lang/lib/system/orc.nim(97) free
.../nim-lang/lib/system/orc.nim(510) nimDecRefIsLastCyclicStatic
.../nim-lang/lib/system/orc.nim(475) rememberCycle
.../nim-lang/lib/system/orc.nim(415) registerCycle
.../nim-lang/lib/system/orc.nim(385) collectCycles
.../nim-lang/lib/system/orc.nim(340) collectCyclesBacon
.../nim-lang/lib/system/orc.nim(97) free
.../nim-lang/lib/system/orc.nim(510) nimDecRefIsLastCyclicStatic
.../nim-lang/lib/system/orc.nim(475) rememberCycle
.../nim-lang/lib/system/orc.nim(415) registerCycle
.../nim-lang/lib/system/orc.nim(385) collectCycles
.../nim-lang/lib/system/orc.nim(340) collectCyclesBacon
.../nim-lang/lib/system/orc.nim(97) free
.../nim-lang/lib/system/orc.nim(510) nimDecRefIsLastCyclicStatic
.../nim-lang/lib/system/orc.nim(475) rememberCycle
.../nim-lang/lib/system/orc.nim(415) registerCycle
.../nim-lang/lib/system/orc.nim(375) collectCycles
.../nim-lang/lib/system/cellseqs_v2.nim(37) init
.../nim-lang/lib/system/alloc.nim(1052) alloc
.../nim-lang/lib/system/alloc.nim(895) rawAlloc
.../nim-lang/lib/system/alloc.nim(654) getBigChunk
.../nim-lang/lib/system/alloc.nim splitChunk
.../nim-lang/lib/system/alloc.nim(580) splitChunk2
.../nim-lang/lib/system/alloc.nim(563) updatePrevSize
.../nim-lang/lib/system/alloc.nim(528) isAccessible
.../nim-lang/lib/system/alloc.nim pageIndex
Error: call depth limit reached in a debug build (2000 function calls). You can change it with -d:nimCallDepthLimit=<int> but really try to avoid deep recursions instead.

Expected Output

[Suite] module
  [OK] attach_and_update
  [OK] attach_signal

Possible Solution

Revert or fix 71dc929

Additional Information

If I skip the test attach_and_update, the test attach_signal succeeds, so there obviously is a dependency on code that ran previously.
But this makes it unclear to me how to create a minimal failing example.

Any input is appreciated.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions