-
Notifications
You must be signed in to change notification settings - Fork 36
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
Add begin.WithReselect option #1107
Conversation
Signed-off-by: Ed Warnicke <hagbard@gmail.com>
@Bolodya1997 First: an apology. You were correct that we needed to do something about 'outside requests' and how to handle them. You'd thought of it in terms of 'diffing' things. I thought about it in c076175 as 'merging'. Either way, something needed to be done. We've got a place holder in c076175 to hash out the details (if any) beyond what's there. I pulled forward the chain/nsmgr/heal_test.go tests. Currently all are passing except for TestNSMGR_HealForwarder. I believe this is because the interpose chain element gets stuck on trying to reach the same old Forwarder, even if its gone. I haven't fully gotten to the bottom of it, and that might be a good place for you to start @Bolodya1997 |
@Bolodya1997 Our issue appears to be that we are timing out the context here: sdk/pkg/networkservice/common/interpose/server.go Lines 102 to 104 in f264fec
|
@Bolodya1997 Figured out two things contributing to the TestNSMGR_HealForwarder failure:
sdk/pkg/tools/sandbox/dial_options.go Line 58 in f264fec
sdk/pkg/tools/sandbox/dial_options.go Line 60 in f264fec
If we don't use grpc.WithBlock() and grpc.WaitForReady() ... not only do the tests pass (with the note below) but the tests also run 5-6x faster. Why are we using these options when they slow things down a lot?
sdk/pkg/networkservice/chains/nsmgr/heal_test.go Lines 110 to 111 in 4807755
If we change those to checking for Requests() and Closes() with the correct expectations... that helps. |
Signed-off-by: Ed Warnicke <hagbard@gmail.com>
Signed-off-by: Ed Warnicke <hagbard@gmail.com>
Signed-off-by: Ed Warnicke <hagbard@gmail.com>
Signed-off-by: Ed Warnicke <hagbard@gmail.com>
TestNSMGR_HealForwarder is still failing. It is probably failing because the interpose chain element does not reselect Forwarders if one does not become available. Signed-off-by: Ed Warnicke <hagbard@gmail.com>
… grpc.WithBlock() from sandbox.DialOptions() Signed-off-by: Ed Warnicke <hagbard@gmail.com>
@glazychev-art Moving the conversation back here about the fact heal as currently written retries only once. Let's start by agreeing that 'heal tries exactly once' is wrong, and we just need to figure out the most elegant way of getting heal to retry until it succeeds (or is Closed from the outside). I tend to think of this in terms of events, in the current implementation:
Important thing to remember: #2b will close down the monitor eventLoop... so no new events will be processed. If #2d returns an error, we silently fail (not good). The reason I initially chose to have the The naive first thought would be to loop over resending the @glazychev-art Thoughts? |
Signed-off-by: Ed Warnicke hagbard@gmail.com
Description
Issue link
How Has This Been Tested?
Types of changes