-
Notifications
You must be signed in to change notification settings - Fork 4
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
deadlock on locking HBBFT State after receiving Agreements #7
Comments
checked in a fix with deb449e, There is a deadlock detection tool: after fixing this doublelock, we can now create a Seal, but we seem to have the same Issue with locking of seals. |
an update of parking_lot to latest version v0.12.1 results into a vesion conflict by our old friend parity-crypto:
|
with latest changes it looks like that we manage to achieve the decryption share, |
probably a reentrant lock has been identified for update-sealing.
|
after removing long holding hbbft state locks we have another deadlock scenario, that was not detected by the deadlock detection: this checkin resulted in the situation that the system is not able to acquire a write lock on hbbft state again. |
here are the connected stacktraces for this:
|
switching to std::sync resulted in the same deadlock situation. parking_lot deadlock detection could not detect a deadlock, even it existed. but after changing try_lock, the deadlock detection is able to find deadlocks again: (checkin: d71be72)
|
version with a first cleanup that does not deadlock anymore: |
The reason for not producing blocks is an infinite lock on the hbbft worker thread that tries to write the hbbft state:
ethcore::engines::hbbft::hbbft_engine::HoneyBadgerBFT::start_hbbft_epoch
ethcore::engines::hbbft::hbbft_engine::HoneyBadgerBFT::process_hb_message
ethcore::engines::hbbft::hbbft_engine::HoneyBadgerBFT::replay_cached_messages
This bug is new and might be connected to the integration of either peer management or hbbft message tracking
a second thread that tries to write on the state is
The text was updated successfully, but these errors were encountered: