-
-
Notifications
You must be signed in to change notification settings - Fork 111
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
Null client received in TestPromiseOrdering #543
Comments
For context, Apr 28 @zenhack wrote the following to @lthibault in the go-capnp Matrix channel:
@lthibault and I decided it'd be informative, at least, to do a quick The bisect will attempt to track down if any particular commit by @zenhack - or anyone else for that matter - stands out as a moment in time when TestPromiseOrdering broke. tl;dr: if we had TestPromiseOrdering back when v0.30 was released, this issue might have been caught. The idea is to apply TestPromiseOrdering at each commit and see if this theory holds, and we can point at a single commit and say, "this is why TestPromiseOrdering is failing." |
I've successfully ported I've already found and fixed an E-Ordering issue, which appeared immediately when the unit test was first merged on Jun 29. I'll continue working on a branch. The next step will be to rework the commit on top of Jun 26 which introduces The final step to reach a pull request is to catch up to the present day -- there are a few more commits from 390b049 to 163c79d mostly around the new structured logger interface. They touch a different section of the code. I'll send it when I'm all caught up. The nice thing about using a side-branch while I time-travel back 3 months (git is so cool), is I can keep running the fixed unit test as I work my way forward in time. The commits in my side-branch will be overwritten. I plan to force-push the branch to bring it forward in time. That the unit test wasn't working in 7e1bedd suggests @zenhack had a solution way back then. I would've really liked to hear his thoughts. :( tl;dr: it's looking doable to fix |
This is awesome! I'd very much welcome the opportunity to sync up on this with you, at your convenience, just to keep the proverbial bus factor above 1. Does it make sense to eagerly merge your fix into |
Quick dev update: I've force-pushed on my branch, now only 28 commits behind HEAD.
Update: I've force-pushed again and it now passes all tests ... except TestPromiseOrdering, which runs to completion. i.e. TestPromiseOrdering no longer gets the Null client which this issue is all about; instead the problem now is that promises are not fulfilled in E-Order... But this is pretty exciting. The previous commit is still present until it is garbage-collected. |
Just chiming in here while investigating #572: I can unfortunately still reproduce the "call on null client" error that this test was suffering from even on @davidhubbard's branch on commit 924f821. If it was related, chances are the changes are just hiding the issue in that specific test now, or my issue is unrelated. I will try to find a minimal reproducer eventually, as the tool to detect this is currently part of a larger proprietary project with C++ capnp components, and takes 30s+ to hit the bug during a benchmark. Maybe that will contribute towards finding a solution for this and my issue. |
Diff of test case.
The text was updated successfully, but these errors were encountered: