Skip to content
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

Solidify blocks synchronously while they are processed #1761

Merged
merged 2 commits into from
Sep 19, 2022

Conversation

muXxer
Copy link
Collaborator

@muXxer muXxer commented Sep 19, 2022

In case a client issues a block on top of solid parents, and he assumes that the resulting block also is solid, it happened that the node already processed the block, but didn't mark the block as solid yet. This causes problems in the client if they reuse the issued block in the next block as a parent immediately, because the submit might fail due to "block not solid" errors.

This PR fixes this race condition.

@muXxer muXxer force-pushed the fix/block-not-solid branch from f275356 to f0a0862 Compare September 19, 2022 14:48
@muXxer muXxer added this to the HORNET-v2.0.0 milestone Sep 19, 2022
@muXxer muXxer added the bug Something isn't working label Sep 19, 2022
@muXxer muXxer self-assigned this Sep 19, 2022
@muXxer muXxer linked an issue Sep 19, 2022 that may be closed by this pull request
@muXxer muXxer merged commit cdc993a into develop Sep 19, 2022
@muXxer muXxer deleted the fix/block-not-solid branch September 19, 2022 15:16
muXxer added a commit that referenced this pull request Dec 27, 2022
* Solidify messages synchronously while they are processed

* Only trigger the future cone solidifier if the message is solid
muXxer added a commit that referenced this pull request Jan 9, 2023
* Use iotaledger repository

* Update go version to 1.19

* Upgrade libp2p to monorepo version

* Fix libp2p connection issue (#1533)

* Use fixed private keys in peering tests

* Fix libp2p connection issue

* Send correct error message if a block is submitted without parents and no PoW is enabled

* Add new `/api/routes` endpoint

* Block static peers in autopeering module (#1608)

* Block static peers in autopeering module

* Disable TTL in selection blocklist

* Use hive.go chrysalis backports

* Avoid locking of the p2p Manager while connection attempts are performed (#1614)

* Avoid locking of the p2p Manager while connection attempts are performed

* Fix missing handling of peers already known to the manager

* Add per-request Rest metrics to prometheus (#1651)

* - Add per-request Rest metrics to prometheus

* - Made echo dep optional

* Extend dockerignore (#1660)

* Add new config param to disable snapshot file creation. Defaults to false. (#1711)

* Add config parameter to control whether the ledger state is checked on startup. Defaults to false. (#1712)

* Add config parameter to control whether the ledger state is checked on startup

* Measure and log ledger check time

* Added a ledger token supply check to the db-hash tool

* Drop unhealthy peers (#1736)

* Drop peers that are below our pruning index (#1739)

* Fix stuck peer (#1752)

* Removed OpenedStream/ClosedStream since they were removed from network.Notifee

* Drop connection to peer if the stream is closed

* Solidify messages synchronously while they are processed (#1761)

* Solidify messages synchronously while they are processed

* Only trigger the future cone solidifier if the message is solid

* Fix edge case in warpsync which deadlocks syncing (#1763)

* Github workflow updates

* Update CodeQL action to v2

* Run security-and-quality query suite

* Update actions/checkout to v3

* Update docker actions

* Add /metadata, /raw, /children endpoints to /included-message

* Release v1.2.2

* Read info from SyncManager atomically

* Add timestamp funcs to MilestoneStorage

* Update workflows

* Fix linter errors

* Add context to connect and reconnect peer

* Fix syncing issue by preventing requests race condition

* Address review comments

* Update modules

* Ignore linter warning

Co-authored-by: Alexander Sporn <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Block not solid even if it was successfully attached
2 participants