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

Resolve 175 race condition, no change to hook timing #178

Merged
merged 9 commits into from
Jul 22, 2021

Conversation

hannahhoward
Copy link
Collaborator

Goals

fix #175

Implementation

This builds of #176 but avoids moving hooks around in terms of timing in any substantive way. Rather, it cleans up hook processing to insure that request hooks are processed only on the main response manager thread, so that there aren't races with any calls made during hook processing.

move unused query executor dependencies to response manager
realign requestqueud and incoming request timing while maintaining fix to bug behavior
Copy link
Member

@raulk raulk left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not a Graphsync expert nor do I have the experience to know exactly what's going on here at the code level. But @hannahhoward and I iterated through various solutions offband, and this made the failing tests on Lotus side succeed, while assuring that it doesn't cause a regression with the queued hooks.

@raulk raulk merged commit 24d32d0 into release/0.6.x Jul 22, 2021
@raulk raulk deleted the fix/pause-race-condition-final branch July 22, 2021 22:39
@raulk raulk linked an issue Jul 22, 2021 that may be closed by this pull request
hannahhoward added a commit that referenced this pull request Aug 5, 2021
* feat: fire network error when network disconnects during request (#164)

* release: 0.6.1

* Better logging for Graphsync traversal (#167)

* log gs traversal

* Apply suggestions from code review

Co-authored-by: dirkmc <dirkmdev@gmail.com>

* add debug logs

* add debug logs

Co-authored-by: dirkmc <dirkmdev@gmail.com>

* release: v0.6.2 (#168)

* Fix/log blockstore reads (#169)

* log gs traversal

* Apply suggestions from code review

Co-authored-by: dirkmc <dirkmdev@gmail.com>

* add debug logs

* fixed logging

* Apply suggestions from code review

Co-authored-by: dirkmc <dirkmdev@gmail.com>

* fixed error

Co-authored-by: dirkmc <dirkmdev@gmail.com>

* release: v0.6.3 (#170)

* request queued hook

* test request queued hook

* release: v0.6.4

* Resolve 175 race condition, no change to hook timing (#178)

* feat(requestmanager): add request timing (#181)

* Add cancel request and wait function (#185)

* fix(responsemanager): fix error codes (#182)

enforce much tighter consistency with graphsync spec in usage of error codes

* refactor: replace particular request not found errors with public error (#188)

* release: 0.6.8

Co-authored-by: dirkmc <dirkmdev@gmail.com>
Co-authored-by: Aarsh Shah <aarshkshah1992@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Response unpaused but never calls outgoing block hook
2 participants