Skip to content

Commit

Permalink
market: Avoid re-using state between transactions (#1221)
Browse files Browse the repository at this point in the history
  • Loading branch information
Stebalien committed Mar 2, 2023
1 parent f9b633b commit 9cb8a6b
Showing 1 changed file with 18 additions and 19 deletions.
37 changes: 18 additions & 19 deletions actors/market/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -535,25 +535,24 @@ impl Actor {
let miner_addr = rt.message().caller();
let curr_epoch = rt.curr_epoch();

let st: State = rt.state()?;
let proposals = st.get_proposal_array(rt.store())?;

let deal_spaces = {
validate_and_return_deal_space(
&proposals,
&params.deal_ids,
st.next_id,
&miner_addr,
params.sector_expiry,
curr_epoch,
None,
)
.context("failed to validate deal proposals for activation")?
};
let (deal_spaces, verified_infos) = rt.transaction(|st: &mut State, rt| {
let proposals = st.get_proposal_array(rt.store())?;

let deal_spaces = {
validate_and_return_deal_space(
&proposals,
&params.deal_ids,
st.next_id,
&miner_addr,
params.sector_expiry,
curr_epoch,
None,
)
.context("failed to validate deal proposals for activation")?
};

// Update deal states
let mut verified_infos = Vec::new();
rt.transaction(|st: &mut State, rt| {
// Update deal states
let mut verified_infos = Vec::new();
let mut deal_states: Vec<(DealID, DealState)> = vec![];

for deal_id in params.deal_ids {
Expand Down Expand Up @@ -613,7 +612,7 @@ impl Actor {

st.put_deal_states(rt.store(), &deal_states)?;

Ok(())
Ok((deal_spaces, verified_infos))
})?;

Ok(ActivateDealsResult { nonverified_deal_space: deal_spaces.deal_space, verified_infos })
Expand Down

0 comments on commit 9cb8a6b

Please sign in to comment.