Skip to content

Invalid allocation when using the System implicit #1850

@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

Labels

bugSomething isn't workingcheck-outdatedSome research needed to verify the issue is not stale or should be closed.

Type

No type

Projects

Status

In Progress

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions