Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Crash about overflowing max_stackdepth #5154

Open
@tekknolagi

Description

@tekknolagi

Summary

I tried to run scrapscript.py with RustPython. It crashed. I reduced the input code with CReduce and then manually from ~4k lines to 21 lines.

Expected

No crash. In the full example, I expect the test suite to run. In the reduced example I expect nothing to happen.

Actual

# scrapscript.py
class LeftParen:
    pass
class RightParen:
    pass
class Lexer:
    def read_char(self) :
        return None
    def read_one(self) :
        while self:
            c = self.read_char()
            break
        else:
            return x
        {
                "(": LeftParen,
                ")": RightParen}
def tokenize():
    lexer = Lexer()
    while (lexer.read_one()) :
        pass
tokenize()
cedar% rustpython scrapscript.py test
[vm/src/frame.rs:1942] self = ExecutingFrame {
    code: code: <code object read_one at ??? file "scrapscript.py", line 8>,
    state: FrameState {
        stack: [
            [PyObject PyStr { value: "(", kind: Ascii, hash: -1 }],
            [PyObject [PyType LeftParen]],
            [PyObject PyStr { value: ")", kind: Ascii, hash: -1 }],
        ],
        blocks: [],
        lasti: 16,
    },
}
thread 'main' panicked at vm/src/frame.rs:1943:9:
tried to push value onto stack but overflowed max_stackdepth
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
cedar%

Metadata

Metadata

Assignees

No one assigned

    Labels

    C-bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions