I have proposed a PR[0] to change the behavior of the container proxy when an 
action container produces a response large enough to be truncated. The change 
is to leave the container running instead of killing it and most people seem to 
agree that's a fine idea.

This PR prompted an implementation discussion regarding the necessity of a new 
ActivationResponse[1] error type or if these truncations should just look like 
ApplicationErrors to the rest of the codebase.

I had wrote the original change to create a new "Truncated" error type. I did 
this because it felt semantically different for OpenWhisk to alter the response 
via truncation rather than an ApplicationError where, the "action ran but there 
was an error and it was handled".

Moreover, I remember someone mentioning some interest in reducing the amount of 
activation data stored in the db and responses that we didn't even fully pass 
to the caller seemed like an obvious thing to just not store.

So basically, this comes down to do we think that it would be helpful for other 
areas of the code base to be able to distinguish between "action[s that] ran 
but there was an error and it was handled" and the action produced a large 
response that OpenWhisk truncated.

-d

[0] - https://github.com/apache/openwhisk/pull/4754
[1] - 
https://github.com/apache/openwhisk/blob/b304812c5033ecb55d9ef41aa3cfa4ce419a986d/common/scala/src/main/scala/org/apache/openwhisk/core/entity/ActivationResult.scala#L74

Reply via email to