-
Notifications
You must be signed in to change notification settings - Fork 186
Open
Labels
Type: BugSomething isn't workingSomething isn't working
Description
Describe the bug
StateManager::call_raw evaluates messages on tipset.parent_state() without running cron or migrations for epochs between the parent and target tipset. In cases with upgrade boundaries in that gap, RPC calls (StateCall / eth_call) can return incorrect results because the correct state requires fork logic that isn’t applied in the call path.
To reproduce
- Start Forest on a chain that includes an upgrade boundary.
- Pick a tipset where
parent_epoch < upgrade_epoch <= tipset_epoch. - Run a call at that tipset (
Filecoin.StateCalloreth_call). - Compare the result against full chain execution (or Lotus, which runs fork logic in
CallInternal).
Other information and links
#3733: https://github.com/filecoin-project/lotus/blob/0b0d7c96df590ab6ac2db3fb975a112a9a220199/chain/stmgr/call.go#L74C1-L267
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
Type: BugSomething isn't workingSomething isn't working
Type
Projects
Status
Ready