I am trying to produce a stack frame error by loading a big struct in an account.
pub struct HitStackSize {
board: [Option<BigStruct>; 10],
}
#[derive(AnchorSerialize, AnchorDeserialize, Copy, Clone, PartialEq, Eq)]
// Size of this struct is 32 bytes * 4 = 128 bytes
pub struct BigStruct {
pub public_key_1: Pubkey,
pub public_key_2: Pubkey,
pub public_key_3: Pubkey,
pub public_key_4: Pubkey,
pub small_scrut: SmallScrut,
pub padding: [u8; 199],
}
#[derive(AnchorSerialize, AnchorDeserialize, Copy, Clone, PartialEq, Eq)]
pub struct SmallScrut {
pub public_key_1: u64,
pub public_key_2: u64,
pub public_key_3: u64,
pub public_key_4: u64,
}
But instead of a stack frame error like in anchor 0.27.0 I am now getting:
Simulation failed.
Message: Transaction simulation failed: Error processing Instruction 0: Program failed to complete.
Logs:
[
"Program E7GebMdwaGevhj7G9EZFhkrMz6gQKyTnTNbx8gWvf8KF invoke [1]",
"Program log: Instruction: InitializeHitStackSize",
"Program 11111111111111111111111111111111 invoke [2]",
"Program 11111111111111111111111111111111 success",
"Program E7GebMdwaGevhj7G9EZFhkrMz6gQKyTnTNbx8gWvf8KF consumed 12887 of 200000 compute units",
"Program E7GebMdwaGevhj7G9EZFhkrMz6gQKyTnTNbx8gWvf8KF failed: Overlapping copy"
].
Catch the `SendTransactionError` and call `getLogs()` on it for full details.
What does this error mean? Is it the same as stack frame violation?
Im using anchor 0.30.0 with zero copy and solana 1.18.16.