From 98889ffbbaff392eebabcbe3719b4daf70f40b65 Mon Sep 17 00:00:00 2001 From: Boming Zhang Date: Wed, 22 Jul 2026 23:56:41 -0700 Subject: [PATCH] feat(sandbox): add tar-based copyIn to bypass SOCK_SEQPACKET file limit --- internal/executor/sandbox/executor.go | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/internal/executor/sandbox/executor.go b/internal/executor/sandbox/executor.go index d8d3e4f..6d0b7b5 100644 --- a/internal/executor/sandbox/executor.go +++ b/internal/executor/sandbox/executor.go @@ -52,15 +52,16 @@ func prepareTar(cmds []stage.Cmd) (bool, []byte) { if cmds[i].CopyInDir != "" && estimateCopyInSize(&cmds[i]) >= tarThreshold { tarData, keysInTar := createCopyInTar(&cmds[i]) + if tarData == nil { + return false, nil + } + slog.Debug("prepareTar", "tarSize", len(tarData), "keysInTar", len(keysInTar)) for j := range cmds { cmds[j].CopyInDir = "" for _, k := range keysInTar { delete(cmds[j].CopyIn, k) } } - if tarData == nil { - return false, nil - } return true, tarData } } @@ -101,11 +102,11 @@ func (e *Sandbox) runWithTar(cmds []stage.Cmd, tarData []byte) ([]stage.Executor tarFileName := "/w/__joj3_copyin.tar" tarCmd := stage.Cmd{ - Args: []string{"/bin/tar", "xf", tarFileName, "-C", "/w"}, + Args: []string{"/bin/tar", "xf", tarFileName, "-C", "/w", "--no-same-owner"}, Env: cmds[0].Env, Stdin: &stage.CmdFile{Content: strPtr("")}, - Stdout: &stage.CmdFile{Name: strPtr("__tar_stdout"), Max: int64Ptr(1)}, - Stderr: &stage.CmdFile{Name: strPtr("__tar_stderr"), Max: int64Ptr(1)}, + Stdout: &stage.CmdFile{Name: strPtr("__tar_stdout"), Max: int64Ptr(256)}, + Stderr: &stage.CmdFile{Name: strPtr("__tar_stderr"), Max: int64Ptr(256)}, CPULimit: cmds[0].CPULimit, ClockLimit: cmds[0].ClockLimit, MemoryLimit: cmds[0].MemoryLimit, @@ -116,7 +117,6 @@ func (e *Sandbox) runWithTar(cmds []stage.Cmd, tarData []byte) ([]stage.Executor CopyIn: map[string]stage.CmdFile{ tarFileName: {FileID: &fid}, }, - CopyOutCached: []string{tarFileName}, } allCmds := append([]stage.Cmd{tarCmd}, cmds...)