When an edgeless_node starts a function in
edgeless_node::base_runtime::runtime::RuntimeTask<FunctionInstanceType>::start_function()
it optimistically assumes that the creation of the function instance will not fail, in fact, function_instance_runner::FunctionInstanceRunner::new() does not return a Result but an object.
However, with a container run-time the creation may fail for a number of good reasons (e.g., Docker daemon not responding, image not available locally), therefore the failure should be handled to avoid the current situation:
- function start
- instance creation fails -> the function is not initialized and an exit event is generated
- however, the node marks the request as well-accepted
- the orchestrator and controller receive no indication that the function instance is not running properly
When an edgeless_node starts a function in
it optimistically assumes that the creation of the function instance will not fail, in fact,
function_instance_runner::FunctionInstanceRunner::new()does not return aResultbut an object.However, with a container run-time the creation may fail for a number of good reasons (e.g., Docker daemon not responding, image not available locally), therefore the failure should be handled to avoid the current situation: