New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Avoid double-callbacks in CALL #188

Merged
merged 1 commit into from Sep 13, 2017

Conversation

Projects
None yet
2 participants
@axic
Member

axic commented Aug 20, 2017

This fixes test case Call50000_identity.

@axic

This comment has been minimized.

Show comment
Hide comment
@axic

axic Aug 21, 2017

Member

Explanation: the actual call is moved into the successful-case of accountIsEmpty. The way to trigger two callbacks is if the account is empty and thus newAccountGas applies, but deducting that triggers an OOG. In this case the actual call still happens resulting in a double callback.

Member

axic commented Aug 21, 2017

Explanation: the actual call is moved into the successful-case of accountIsEmpty. The way to trigger two callbacks is if the account is empty and thus newAccountGas applies, but deducting that triggers an OOG. In this case the actual call still happens resulting in a double callback.

@axic

This comment has been minimized.

Show comment
Hide comment
@axic

axic Aug 21, 2017

Member

This change also enables turning back on a lot of tests, the skip list would need to be reduced to

const skip = [
  'CALLCODE_Bounds', // Uses >270Mb of memory
  'CALL_Bounds', // Uses >270Mb of memory
  'CREATE_Bounds', // Uses >270Mb of memory
  'DELEGATECALL_Bounds', // Uses >270Mb of memory
  'mload32bitBound_return2', // Uses too much memory
  'RevertDepthCreateAddressCollision', // test case is wrong
]

I believe those memory ones could be fixed by #174.

Member

axic commented Aug 21, 2017

This change also enables turning back on a lot of tests, the skip list would need to be reduced to

const skip = [
  'CALLCODE_Bounds', // Uses >270Mb of memory
  'CALL_Bounds', // Uses >270Mb of memory
  'CREATE_Bounds', // Uses >270Mb of memory
  'DELEGATECALL_Bounds', // Uses >270Mb of memory
  'mload32bitBound_return2', // Uses too much memory
  'RevertDepthCreateAddressCollision', // test case is wrong
]

I believe those memory ones could be fixed by #174.

@holgerd77

Looks good to me. This looks generally cleaner to me having the code execution in a deterministic order.

@axic

This comment has been minimized.

Show comment
Hide comment
@axic

axic Sep 13, 2017

Member

@jwasinger @holgerd77 @cdetrio anybody merging this? :)

Member

axic commented Sep 13, 2017

@jwasinger @holgerd77 @cdetrio anybody merging this? :)

@holgerd77

This comment has been minimized.

Show comment
Hide comment
@holgerd77

holgerd77 Sep 13, 2017

Member

@axic I though that there is an in progress label attached, therefore I waited, has this some other meaning than the [WIP] pre-string?

Member

holgerd77 commented Sep 13, 2017

@axic I though that there is an in progress label attached, therefore I waited, has this some other meaning than the [WIP] pre-string?

@axic

This comment has been minimized.

Show comment
Hide comment
@axic

axic Sep 13, 2017

Member

@holgerd77 I don't know how that label ended up there, but no, this is finished.

Member

axic commented Sep 13, 2017

@holgerd77 I don't know how that label ended up there, but no, this is finished.

@axic axic removed the in progress label Sep 13, 2017

@holgerd77

Can you rebase this?

@axic

This comment has been minimized.

Show comment
Hide comment
@axic
Member

axic commented Sep 13, 2017

@holgerd77 done

@holgerd77

Looks good

@holgerd77 holgerd77 merged commit c85ab76 into master Sep 13, 2017

2 checks passed

ci/circleci Your tests passed on CircleCI!
Details
continuous-integration/travis-ci/pr The Travis CI build passed
Details

@axic axic deleted the double-callback branch Sep 13, 2017

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment