Thanks Dominic for sharing the details of PR 4954. I posted a question on the PR but it may be of interest to others so reposting here.
Since your team is also working on versioning (PR 4986), I'm wondering about the broader implications of this change. If the sequence or composition references actions specifically by version, then it should be an error to invoke an alternate version. If the sequence uses "latest" then this change is acceptable. Was the intent for this change strictly to address compositions? Or for singleton actions as well? -r On Tue, Sep 29, 2020 at 12:45 AM Dominic Kim <style9...@gmail.com> wrote: > Dear whiskers. > > Currently, an invoker rejects an activation with an outdated action. > This can happen in the following situations. > > 1. Stale activations are sent to invokers. > This is a case where Kafka could not send some activations in time and the > action codes are updated in the meantime. It can happen when a target > invoker fails for some reason. When the invoker becomes healthy again, it > can receive the outdated activations. > > > 2. The underlying action of a sequence action is updated while the sequence > action is running. > In case a sequence action includes long-running actions, the underlying > actions can be updated while the sequence action is still running. > > In both cases, invokers receive outdated actions and it rejects them due to > revision mismatch. > > @upgle opened a pull request to address this issue. > https://github.com/apache/openwhisk/pull/4954 > > The main change is to take the latest codes as a fallback when the revision > mismatch occurs. > Since this could be a kind of semantics change as an activation would > successfully run which would have been rejected with the current code, > please share your opinion. > > I approved the PR with a warning log denoting the revision mismatch > happens. > > Since it already has been open for some time, I would merge it in 72 hours. > > Regards > Dominic. >