Skip to content
This repository has been archived by the owner on Nov 6, 2020. It is now read-only.

[stable]: backport #10691 and #10683 #11143

Merged
merged 2 commits into from
Oct 23, 2019

Conversation

niklasad1
Copy link
Collaborator

No description provided.

* Remove annoying compiler warnings

* Fix compiler warning (that will become an error)

Fixes #10648

I'm not sure this fix is Good™ but rustc seems happy enough.

There's a deeper issue which may or may not be related to this: the Engine is not shutdown properly and the `StepService` thread keeps running indefinitely after Ctrl-C (so `update_sealing()` is called repeatedly for 300sec). I don't think this is related to Clique as I've seen this happen on mainnet as well, but I wonder if the effects of it are worse for a PoA network where the node can create new blocks all on its own?

* Use saturating_sub

* WIP

* Fix warning, second attempt

The idea here is to avoid using `Arc::get_mut()` (which does not work: fails every time here) and instead trust `drop()` to do the right thing.

This is a conservative change. I think this can be reformed further, e.g. by `impl Drop for StepService` and halt the thread there, or even skip `join()`ing the thread entirely and trust the `AtomicBool` to signal shutdown. I also have doubts abut the `Option<StepService>`: seems a bit much to have an `Option` there and it makes things cumbersome.
* Use Drop to shutdown stepper thread
Make period == 0 an error and remove the Option from step_service

* Remove StepService

Remove StepService and spawn the stepping thread in `Clique::new()`. Don't store the thread handle and instead trust the `AtomicBool` to signal shutdown time.
Don't check for `period > 0`: we assume a valid chainspec file.

* Don't shutdown the stepper thread at all, just let it run until exit
Also: fix a few warnings and tests

* Put kvdb_memorydb back

* Warn&exit when engine is dropped
Don't sleep too long!

* Don't delay stepping thread

* Better formatting
@niklasad1 niklasad1 added the A8-backport 🕸 Pull request is already reviewed well in another branch. label Oct 8, 2019
@dvdplm dvdplm requested a review from s3krit October 8, 2019 13:19
@s3krit
Copy link
Contributor

s3krit commented Oct 11, 2019

I'd like to keep this PR open (or potentially merge it with a new version branch) until we make a new release - Ideally, there would be a single merge to stable and/or beta per release, taking all the backported changes from a new version branch (i.e., for stable this would be called something like v2.5.10-stable).

@niklasad1 niklasad1 added the A1-onice 🌨 Pull request is reviewed well, but should not yet be merged. label Oct 11, 2019
@s3krit
Copy link
Contributor

s3krit commented Oct 14, 2019

@niklasad1 I've made a new branch to encompass the changes that will comprise of our next stable release. Could you please change this PR to merge to the following branch? https://github.com/paritytech/parity-ethereum/tree/v2.5.10-stable
Cheers!

@niklasad1 niklasad1 closed this Oct 14, 2019
@niklasad1 niklasad1 reopened this Oct 14, 2019
@niklasad1 niklasad1 changed the base branch from stable to v2.5.10-stable October 14, 2019 15:58
@niklasad1 niklasad1 removed the A1-onice 🌨 Pull request is reviewed well, but should not yet be merged. label Oct 14, 2019
@ordian ordian added this to the Patch milestone Oct 17, 2019
@niklasad1 niklasad1 merged commit ebe4890 into v2.5.10-stable Oct 23, 2019
@niklasad1 niklasad1 deleted the na-stable-clique-backports branch October 23, 2019 07:44
@soc1c soc1c mentioned this pull request Nov 5, 2019
36 tasks
s3krit pushed a commit that referenced this pull request Nov 11, 2019
* ropsten #6631425 foundation #8798209 (#11201)
* [stable] builtin, istanbul and mordor testnet backports (#11234)
  * ethcore-builtin (#10850)
  * [builtin]: support `multiple prices and activations` in chain spec (#11039)
  * [chain specs]: activate `Istanbul` on mainnet (#11228)
  * ethcore/res: add mordor testnet configuration (#11200)
* Update list of bootnodes for xDai chain (#11236)
* ethcore: remove `test-helper feat` from build (#11047)
* Secret store: fix Instant::now() related race in net_keep_alive (#11155) (#11159)
* [stable]: backport #10691 and #10683 (#11143)
  * Fix compiler warning (that will become an error) (#10683)
  * Refactor Clique stepping (#10691)
* Add Constantinople eips to the dev (instant_seal) config (#10809)
* Add cargo-remote dir to .gitignore (?)
* Insert explicit warning into the panic hook (#11225)
* Fix docker centos build (#11226)
* Update MIX bootnodes. (#11203)
* Use provided usd-per-eth value if an endpoint is specified (#11209)
* Add new line after writing block to hex file. (#10984)
* Type annotation for next_key() matching of json filter options (#11192) (but no `FilterOption` in 2.5 so…)
* Upgrade jsonrpc to latest (#11206)
* [CI] check evmbin build (#11096)
* Correct EIP-712 encoding (#11092)
* [client]: Fix for incorrectly dropped consensus messages (#11086)
* Fix block detail updating (#11015)
* Switching sccache from local to Redis (#10971)
* Made ecrecover implementation trait public (#11188)
* [dependencies]: jsonrpc `14.0.1` (#11183)
* [receipt]: add `sender` & `receiver` to `RichReceipts` (#11179)
* [ethcore/builtin]: do not panic in blake2pricer on short input (#11180)
* util Host: fix a double Read Lock bug in fn Host::session_readable() (#11175)
* ethcore client: fix a double Read Lock bug in fn Client::logs() (#11172)
* Change how RPCs eth_call and eth_estimateGas handle "Pending" (#11127)
* Cleanup stratum a bit (#11161)
* Upgrade to jsonrpc v14 (#11151)
* SecretStore: expose restore_key_public in HTTP API (#10241)
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
A8-backport 🕸 Pull request is already reviewed well in another branch.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants