-
Notifications
You must be signed in to change notification settings - Fork 330
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
fix: Add exceptions for edge cases for best effort responses. #3155
fix: Add exceptions for edge cases for best effort responses. #3155
Conversation
Should we have a test for this case as well? |
I can add something for this specifically but you could argue that we don't have any unit tests for best effort anything at the moment. The pragmatic approach would seem to be adding tests for exceptions like this one rather than duplicating everything and then also higher level tests such as state machine tests (which is how I found this bug). |
Indeed, we do not have any tests for best-effort messages in Message Routing proper. We do have quite a few of them lower down, in Edit: Not necessarily for this PR, just stating my opinion. |
…r_stopped_and_not_found_for_best_effort
…ropped_best_effort_messages
…r_stopped_and_not_found_for_best_effort
…r_stopped_and_not_found_for_best_effort
…ropped_best_effort_messages
….com:dfinity/ic into add_exceptions_for_stopped_and_not_found_for_best_effort
…r_stopped_and_not_found_for_best_effort
There is a bit of confusion whether we should use |
For best effort responses, it is expected that sometimes a second response arrives late. These cases are filtered by checking against the callback when inducting into the replicated state, but the canister could have been stopped or even removed in the mean time in which case we don't even make it to this check. Therefore these cases must be filtered elsewhere since they are expected and not critical errors.