ThreadSanitizer cannot disable ASLR on the Gitea Docker runner #20
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Problem
The ThreadSanitizer workflow cannot run reliably on the current Gitea Actions Docker runner. ThreadSanitizer aborts before main() with unexpected memory mapping unless ASLR is disabled with setarch -R on this kernel.
The repository workflow already installs util-linux, which provides setarch. The job still fails because the Docker runner's default seccomp profile denies the personality syscall used by setarch -R. This is also reproducible against the current main workflow; normal build, coverage, and mutation jobs remain green.
Functional consequence
The default CI pipeline reports a ThreadSanitizer failure even when the library thread tests pass. A repository workflow cannot grant the required syscall permission, so further package installation will not resolve the failure.
Closing this
Configure a Starfort runner label backed by a host executor or a Docker/seccomp policy that permits the personality syscall, then select that label for the ThreadSanitizer workflow job. Re-enable the default ThreadSanitizer job and verify its 36 CTest programs pass on that runner.
Scope
This involves .gitea/workflows/ci.yaml, scripts/thread_test.sh, and the Starfort Gitea Actions runner configuration.