[libcamera-devel] [PATCH] libcamera: process: Fail loudly on isolate

Laurent Pinchart laurent.pinchart at ideasonboard.com
Tue Jul 30 06:13:00 CEST 2019


Hi Jacopo,

Thank you for the patch.

On Fri, Jul 19, 2019 at 10:05:56AM +0200, Jacopo Mondi wrote:
> Add an error debug message when disassociating part of a process
> execution context using unshare fails.
> 
> As this is currently used to isolate a child process which is
> immediately terminated silently if unshare fails, add a debug printout
> and propagate up the error code to make the failure more visible.
> 
> Signed-off-by: Jacopo Mondi <jacopo at jmondi.org>
> ---
>  src/libcamera/process.cpp | 10 +++++++++-
>  1 file changed, 9 insertions(+), 1 deletion(-)
> 
> diff --git a/src/libcamera/process.cpp b/src/libcamera/process.cpp
> index 6c41da219f05..ab716a9cd57f 100644
> --- a/src/libcamera/process.cpp
> +++ b/src/libcamera/process.cpp
> @@ -306,7 +306,15 @@ void Process::closeAllFdsExcept(const std::vector<int> &fds)
> 
>  int Process::isolate()
>  {
> -	return unshare(CLONE_NEWUSER | CLONE_NEWNET);
> +	int ret = unshare(CLONE_NEWUSER | CLONE_NEWNET);
> +	if (ret) {
> +		ret = -errno;
> +		LOG(Process, Error) << "Failed to unshare execution context: "
> +				    << strerror(-ret);
> +		return ret;
> +	}
> +
> +	return 0;
>  }

I wonder if we shouldn't add the error message in the caller instead, as
the isolate() method is expected to grow, but for now this should be
good enough and can be changed later if needed.

Reviewed-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>

Please push :-)

> 
>  /**

-- 
Regards,

Laurent Pinchart


More information about the libcamera-devel mailing list