-
Notifications
You must be signed in to change notification settings - Fork 2.1k
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
OnFirstMessageDeliveryFailed
no longer performs address lookup after 21256
#21639
Comments
Solution 4 (which I still have not looked into so I don't have pros/cons) |
Just to be clear, a spec SHOULD means "it's expected that any good implementation will do this; not doing it must be grounded in very good reasons". So yes, it's technically spec-compliant to not do it, but not doing it is also second-guessing the intent of the spec and needs to be very firmly grounded. I don't think we have such firm grounding here, and should be implementing this, esp. since it is working right now and we are breaking it. In terms of where to do it... We could add some way to run the |
My vote would be for 1. I think it has the least number of changes. |
At this point I am just documenting things at they come. I haven't decided on which approach yet. The issue with reusing Originally when I first wrote solution 1, I had the idea that the lookup would happen entirely within Right now I am investigating if the |
The only things I can think of there are:
|
I don't think there is (but I will double check)
Yes, there might also be a couple other drawbacks listed below After spending most of yesterday looking into the possible solutions here are the two that I think are the most feasible. I switched to letters as to not confuse them with the numbered solutions mentioned earlier in this issue. Solution A:
Solution B:
I think it is likely apparent in my write-up I have biased towards Solution A, but wanted to post this in case anyone disagrees or has something that I overlooked. Both of these solutions allow for parallel lookup on different |
Problem
After #21256
OnFirstMessageDeliveryFailed
no longer performs address lookup on established sessions. This is because previouslyOperationalDeviceProxy
would stick throughout the lifetime of the establish connection and it would receive the event and perform the address lookup. WithOperationalSessionSetup
now being ephemeral and only living for the lifetime of the session setup, it is no longer is around whenOnFirstMessageDeliveryFailed
event is dispatched.Proposed Solution
Here are 3 potential solutions:
OnFirstMessageDeliveryFailed
is removed fromSessionDelegate
.ReliableMessageMgr
now notifies theSessionManager
about first message delivery failureSessionManager
should only manage active connection, having it perform an address lookup is somewhat outside the scope of it's role and is starting to creepOperationalSessionSetup
so need to figure out a clean spot for this code to live in one spot functionally be used by bothOperationalSessionSetup
andSessionManager
.Create a completely new
SessionDelegate
derived object that will perform address lookupRemove
OnFirstMessageDeliveryFailed
entirely. The spec only mentions that we should do this, so it is not a requirement.The text was updated successfully, but these errors were encountered: