From dafbac1c6fa8c77c776cc19710f8d4ae2705106c Mon Sep 17 00:00:00 2001 From: "Sean T. Allen" Date: Wed, 5 Jul 2023 20:10:44 +0000 Subject: [PATCH] Don't run test in debugger on Arm CirrusCI moved the Arm infrastructure from AWS to Google's cloud. In the process, the security setup for Docker containers changed and we no longer have the permissions required to "debug C++ code" in containers on Arm. Cirrus is unable "for security reasons" to change the configuration of the GKE to accomodate our needs. The error in question happens when you try to run a program started up in the debugger. We get: "'A' packet returned an error: 8" According to a posting on StackOverflow, this can be addressed by adding "--cap-add=SYS_PTRACE --security-opt seccomp=unconfined" to the "docker run" command. According to CirrusCI they added NET_RAW and SYS_PTRACE capabilities in an attempt to address the problem. However, that didn't work as we continued to get errors. Cirrus says they would have to weaken the seccomp setting for their entire cluster to address, something they aren't comfortable doing. They said we could run the workloads in privileged containers on dedicated virtual machines. That is a decent amount of work to set up and administer and adds some additional overhead money-wise. If we really need to turn this back on, we could consider going down that route. --- .cirrus.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.cirrus.yml b/.cirrus.yml index 1e777b360f..9e4513b8c3 100644 --- a/.cirrus.yml +++ b/.cirrus.yml @@ -73,13 +73,13 @@ task: debug_build_script: - make build config=debug debug_test_script: - - make test-ci config=debug usedebugger=lldb + - make test-ci config=debug release_configure_script: - make configure arch=armv8-a config=release release_build_script: - make build config=release release_test_script: - - make test-ci config=release usedebugger=lldb + - make test-ci config=release task: only_if: $CIRRUS_PR != '' @@ -714,7 +714,7 @@ task: build_script: - make build config=debug stress_test_script: - - make ${TARGET} config=debug usedebugger=lldb + - make ${TARGET} config=debug task: only_if: $CIRRUS_CRON == "stress"