From 2634af60a42ea48e255ccfa9a5e95d215d43c435 Mon Sep 17 00:00:00 2001 From: lunardunno <126363523+lunardunno@users.noreply.github.com> Date: Sat, 22 Mar 2025 16:07:35 +0400 Subject: [PATCH] Case for Runc Added error handling for Runc, which does not work in cgroup v2. Changed numbering of new errors. --- client/core/controllers/serverController.cpp | 2 ++ client/core/defs.h | 3 ++- client/core/errorstrings.cpp | 1 + 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/client/core/controllers/serverController.cpp b/client/core/controllers/serverController.cpp index 44e0ac1a..9caddced 100644 --- a/client/core/controllers/serverController.cpp +++ b/client/core/controllers/serverController.cpp @@ -467,6 +467,8 @@ ErrorCode ServerController::runContainerWorker(const ServerCredentials &credenti return ErrorCode::ServerPortAlreadyAllocatedError; if (stdOut.contains("is already in use by container")) return ErrorCode::ServerPortAlreadyAllocatedError; + if (stdOut.contains("runc doesn't work on cgroups v2") ) + return ErrorCode::ServerRuncNotWorkOnCgroupsV2; if (stdOut.contains("cgroup mountpoint does not exist")) return ErrorCode::ServerCgroupMountpointDoesNotExist; if (stdOut.contains("invalid publish")) diff --git a/client/core/defs.h b/client/core/defs.h index 9b36f9ed..fc1cafcf 100644 --- a/client/core/defs.h +++ b/client/core/defs.h @@ -58,7 +58,8 @@ namespace amnezia ServerUserDirectoryNotAccessible = 208, ServerUserNotAllowedInSudoers = 209, ServerUserPasswordRequired = 210, - ServerCgroupMountpointDoesNotExist = 211, + ServerRuncNotWorkOnCgroupsV2 = 211, + ServerCgroupMountpointDoesNotExist = 212, // Ssh connection errors SshRequestDeniedError = 300, diff --git a/client/core/errorstrings.cpp b/client/core/errorstrings.cpp index ea3f16bd..ae0bd682 100644 --- a/client/core/errorstrings.cpp +++ b/client/core/errorstrings.cpp @@ -26,6 +26,7 @@ QString errorString(ErrorCode code) { case(ErrorCode::ServerUserDirectoryNotAccessible): errorMessage = QObject::tr("The server user's home directory is not accessible"); break; case(ErrorCode::ServerUserNotAllowedInSudoers): errorMessage = QObject::tr("Action not allowed in sudoers"); break; case(ErrorCode::ServerUserPasswordRequired): errorMessage = QObject::tr("The user's password is required"); break; + case(ErrorCode::ServerRuncNotWorkOnCgroupsV2): errorMessage = QObject::tr("Docker error: Runc dosn't work on cgroups v2"); break; case(ErrorCode::ServerCgroupMountpointDoesNotExist): errorMessage = QObject::tr("Docker error: cgroup mountpoint does not exist"); break; // Libssh errors