Skip to content

Invalid allocation when using the System implicit #1850

Open
@matzayonc

Description

@matzayonc

Describe the bug
A clear and concise description of what the bug is.
When I include core::internal::require_implicit::<System>(); into any program, the cairo1run binary crashes with the error below.

Error: VirtualMachine(Hint((0, Memory(InconsistentMemory((Relocatable { segment_index: 1, offset: 7 }, RelocatableValue(Relocatable { segment_index: 13, offset: 0 }), RelocatableValue(Relocatable { segment_index: 14, offset: 0 })))))))

To Reproduce
Steps to reproduce the behavior:

  1. Create the program below
fn main(input: Array<felt252>) -> Array<felt252> {
    core::internal::require_implicit::<System>();
    input
}
  1. Run it with cairo1run
    cargo run -r --manifest-path ../cairo-vm/cairo1-run/Cargo.toml ../lib.cairo --args "[0 0]" --layout all_cairo --print_output --proof_mode

  2. See error

Expected behavior
The output of the program instead of an error.

What version/commit are you on?
For example: v0.6.0, e762069, etc.
Current main, rev=3fb0344ce038b3a68cae897c403d1f561cfe8da7

Additional context

Related to: https://t.me/lambdaworks/9122

I am working on a custom version of cairo-vm, that would be able to run contracts and I hit a blocker.

I managed to add a custom plugin, and gas management is also handled, and working fine. The issue I had was with the memory, which fails. If I try to access the program's arguments and there is a core::internal::require_implicit::<System>(); anywhere in the program, I get the error above.

Potentially unexpected change in the AP pointer.
I traced the problem back to failed allocation hint here:


The issue is present on the main branch as well, so not attaching a repository.

I think I narrowed down the place where the allocation hint is triggered.
hint AllocSegment {} into {dst: system}; here:

hint AllocSegment {} into {dst: system};
ap += 1;

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions