[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