Skip to content
This repository has been archived by the owner on Oct 28, 2021. It is now read-only.

Port segfault during sync fix to 1.7 branch #5838

Closed
wants to merge 135 commits into from

Conversation

halfalicious
Copy link
Contributor

Port the fix for the segfault during syncing issue (#5832 / #5633) to the 1.7 branch

Original PR: #5834

gumb0 and others added 30 commits September 3, 2019 14:49
Bump version: 1.7.0-alpha.2 → 1.8.0-alpha.0
We are migrating to C++14/C++17 and Visual Studio 2015 will not be able to handle this at some point.
Introduce Berlin hard fork
cmake: Use C++14 by default
Drop Visual Studio 2015 support
Reduced gas cost for static calls made to precompiles.
Implement EIP-2046 Reduced gas cost for static calls made to precompiles in LegacyVM
Charge a reduced gas fee for calls to functions within the same contract
The tests exercise CALL/CALLCODE/DELEGATECALL/STATICCALL
Remove need for eip1380 schedule flag

Simplify gas adjustment for call-self case

Make minor updates to call self VM test
- use C++14 standard (needed for intx library)
- add library intx v0.4.0, fetched via Hunter
- include intx, s/u256/intx::uint256, s/u512/intx::uint512
- replaced all boost::multiprecision by equivalent intx constructs
- replaced VM::exp256 by intx::exp (also uses fast squaring algorithm)
"stylistic nitpick: avoid repeating the type"

Co-Authored-By: Andrei Maiboroda <[email protected]>
+declare negative flags as const, naming in camelCase
(suggestion from code review by gumb0)
halfalicious and others added 21 commits November 15, 2019 09:00
One can now initiate a rebuild via -R and have it complete successfully,
whereas prior to these changes it would fail with a database corruption
error.
Also insert the genesis block details into the extras database during
rebuild since the genesis block won't be reimported during the rebuild
process.
Fix database rebuild functionality - database (extras + state) can now be rebuilt via "-R" flag
Rebuild is triggered on db minorversion mismatch, but BlockChain::open
removes the extras database so rebuild won't find any blocks to
reimport. Address this by not removing the extras database on
minorversion mismatch.
Write database minor version to disk and fix rebuild on minor version mismatch bug
Disable all compiler optimizations in Debug build
Move StandardTrace class to separate file
Segfault is occurring when a peer reconnects while its disconnect is
still pending, which results in a live Session but no entry in
EthereumCapability::m_peers.
EthereumCapability::interpretCapabilityPacket directly accesses m_peers
via node ID rather than using a lookup function, which is causing the
segfault.
Fix segmentation fault during syncing
gumb0 and others added 2 commits November 20, 2019 19:17
@codecov-io
Copy link

Codecov Report

Merging #5838 into release/1.7 will increase coverage by <.01%.
The diff coverage is 0%.

Impacted file tree graph

@@              Coverage Diff               @@
##           release/1.7   #5838      +/-   ##
==============================================
+ Coverage         63.8%   63.8%   +<.01%     
==============================================
  Files              358     358              
  Lines            30595   30595              
  Branches          3406    3406              
==============================================
+ Hits             19520   19522       +2     
+ Misses            9846    9843       -3     
- Partials          1229    1230       +1

@halfalicious
Copy link
Contributor Author

Bad rebase, will fix tomorrow

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

10 participants