Skip to content

Add support for writeable CAS backed files #164

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 3 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion cmd/bb_noop_worker/BUILD.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ go_library(
deps = [
"//pkg/blobstore",
"//pkg/builder",
"//pkg/filesystem",
"//pkg/filesystem/filepool",
"//pkg/proto/configuration/bb_noop_worker",
"//pkg/proto/remoteworker",
"@com_github_buildbarn_bb_storage//pkg/blobstore/configuration",
Expand Down
4 changes: 2 additions & 2 deletions cmd/bb_noop_worker/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import (

re_blobstore "github.com/buildbarn/bb-remote-execution/pkg/blobstore"
"github.com/buildbarn/bb-remote-execution/pkg/builder"
re_filesystem "github.com/buildbarn/bb-remote-execution/pkg/filesystem"
"github.com/buildbarn/bb-remote-execution/pkg/filesystem/filepool"
"github.com/buildbarn/bb-remote-execution/pkg/proto/configuration/bb_noop_worker"
"github.com/buildbarn/bb-remote-execution/pkg/proto/remoteworker"
blobstore_configuration "github.com/buildbarn/bb-storage/pkg/blobstore/configuration"
Expand Down Expand Up @@ -76,7 +76,7 @@ func main() {
contentAddressableStorage,
int(configuration.MaximumMessageSizeBytes),
browserURL),
re_filesystem.EmptyFilePool,
filepool.EmptyFilePool,
clock.SystemClock,
configuration.WorkerId,
instanceNamePrefix,
Expand Down
2 changes: 1 addition & 1 deletion cmd/bb_worker/BUILD.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ go_library(
"//pkg/cas",
"//pkg/cleaner",
"//pkg/clock",
"//pkg/filesystem",
"//pkg/filesystem/filepool",
"//pkg/filesystem/virtual",
"//pkg/filesystem/virtual/configuration",
"//pkg/proto/completedactionlogger",
Expand Down
8 changes: 4 additions & 4 deletions cmd/bb_worker/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ import (
"github.com/buildbarn/bb-remote-execution/pkg/cas"
"github.com/buildbarn/bb-remote-execution/pkg/cleaner"
re_clock "github.com/buildbarn/bb-remote-execution/pkg/clock"
re_filesystem "github.com/buildbarn/bb-remote-execution/pkg/filesystem"
"github.com/buildbarn/bb-remote-execution/pkg/filesystem/filepool"
"github.com/buildbarn/bb-remote-execution/pkg/filesystem/virtual"
virtual_configuration "github.com/buildbarn/bb-remote-execution/pkg/filesystem/virtual/configuration"
cal_proto "github.com/buildbarn/bb-remote-execution/pkg/proto/completedactionlogger"
Expand Down Expand Up @@ -76,7 +76,7 @@ func main() {
// currently only used by the virtual file system to store
// output files of build actions. Going forward, this may be
// used to store core dumps generated by build actions as well.
filePool, err := re_filesystem.NewFilePoolFromConfiguration(configuration.FilePool)
filePool, err := filepool.NewFilePoolFromConfiguration(configuration.FilePool)
if err != nil {
return util.StatusWrap(err, "Failed to create file pool")
}
Expand Down Expand Up @@ -218,7 +218,7 @@ func main() {
virtualBuildDirectory = virtual.NewInMemoryPrepopulatedDirectory(
virtual.NewHandleAllocatingFileAllocator(
virtual.NewPoolBackedFileAllocator(
re_filesystem.EmptyFilePool,
filepool.EmptyFilePool,
util.DefaultErrorLogger),
handleAllocator),
symlinkFactory,
Expand Down Expand Up @@ -466,7 +466,7 @@ func main() {
buildClient := builder.NewBuildClient(
schedulerClient,
buildExecutor,
re_filesystem.NewQuotaEnforcingFilePool(
filepool.NewQuotaEnforcingFilePool(
filePool,
runnerConfiguration.MaximumFilePoolFileCount,
runnerConfiguration.MaximumFilePoolSizeBytes),
Expand Down
16 changes: 15 additions & 1 deletion internal/mock/BUILD.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -172,7 +172,6 @@ gomock(
out = "filesystem_re.go",
interfaces = [
"DirectoryOpener",
"FilePool",
"SectorAllocator",
],
library = "//pkg/filesystem",
Expand All @@ -181,6 +180,19 @@ gomock(
package = "mock",
)

gomock(
name = "filesystem_filepool",
out = "filesystem_filepool.go",
interfaces = [
"FilePool",
"ReaderAt",
],
library = "//pkg/filesystem/filepool",
mockgen_model_library = "@org_uber_go_mock//mockgen/model",
mockgen_tool = "@org_uber_go_mock//mockgen",
package = "mock",
)

gomock(
name = "filesystem_virtual",
out = "filesystem_virtual.go",
Expand Down Expand Up @@ -411,6 +423,7 @@ go_library(
":completedactionlogger.go",
":filesystem.go",
":filesystem_access.go",
":filesystem_filepool.go",
":filesystem_re.go",
":filesystem_virtual.go",
":grpc_go.go",
Expand Down Expand Up @@ -445,6 +458,7 @@ go_library(
"//pkg/cleaner",
"//pkg/filesystem",
"//pkg/filesystem/access",
"//pkg/filesystem/filepool",
"//pkg/filesystem/virtual",
"//pkg/proto/bazeloutputservice",
"//pkg/proto/buildqueuestate",
Expand Down
4 changes: 2 additions & 2 deletions pkg/builder/BUILD.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -36,8 +36,8 @@ go_library(
"//pkg/cas",
"//pkg/cleaner",
"//pkg/clock",
"//pkg/filesystem",
"//pkg/filesystem/access",
"//pkg/filesystem/filepool",
"//pkg/filesystem/virtual",
"//pkg/proto/cas",
"//pkg/proto/completedactionlogger",
Expand Down Expand Up @@ -104,8 +104,8 @@ go_test(
"//internal/mock",
"//pkg/cleaner",
"//pkg/clock",
"//pkg/filesystem",
"//pkg/filesystem/access",
"//pkg/filesystem/filepool",
"//pkg/proto/cas",
"//pkg/proto/completedactionlogger",
"//pkg/proto/remoteworker",
Expand Down
6 changes: 3 additions & 3 deletions pkg/builder/build_client.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import (
"time"

remoteexecution "github.com/bazelbuild/remote-apis/build/bazel/remote/execution/v2"
"github.com/buildbarn/bb-remote-execution/pkg/filesystem"
"github.com/buildbarn/bb-remote-execution/pkg/filesystem/filepool"
"github.com/buildbarn/bb-remote-execution/pkg/proto/remoteworker"
"github.com/buildbarn/bb-storage/pkg/clock"
"github.com/buildbarn/bb-storage/pkg/digest"
Expand All @@ -28,7 +28,7 @@ type BuildClient struct {
// Constant fields.
scheduler remoteworker.OperationQueueClient
buildExecutor BuildExecutor
filePool filesystem.FilePool
filePool filepool.FilePool
clock clock.Clock
instanceNamePrefix digest.InstanceName
instanceNamePatcher digest.InstanceNamePatcher
Expand All @@ -45,7 +45,7 @@ type BuildClient struct {

// NewBuildClient creates a new BuildClient instance that is set to the
// initial state (i.e., being idle).
func NewBuildClient(scheduler remoteworker.OperationQueueClient, buildExecutor BuildExecutor, filePool filesystem.FilePool, clock clock.Clock, workerID map[string]string, instanceNamePrefix digest.InstanceName, platform *remoteexecution.Platform, sizeClass uint32) *BuildClient {
func NewBuildClient(scheduler remoteworker.OperationQueueClient, buildExecutor BuildExecutor, filePool filepool.FilePool, clock clock.Clock, workerID map[string]string, instanceNamePrefix digest.InstanceName, platform *remoteexecution.Platform, sizeClass uint32) *BuildClient {
return &BuildClient{
scheduler: scheduler,
buildExecutor: buildExecutor,
Expand Down
4 changes: 2 additions & 2 deletions pkg/builder/build_directory.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@ import (
"context"
"os"

re_filesystem "github.com/buildbarn/bb-remote-execution/pkg/filesystem"
"github.com/buildbarn/bb-remote-execution/pkg/filesystem/access"
"github.com/buildbarn/bb-remote-execution/pkg/filesystem/filepool"
"github.com/buildbarn/bb-storage/pkg/digest"
"github.com/buildbarn/bb-storage/pkg/filesystem"
"github.com/buildbarn/bb-storage/pkg/filesystem/path"
Expand Down Expand Up @@ -36,7 +36,7 @@ type BuildDirectory interface {
// errors. Implementations of BuildDirectory are free to let
// this be a no-op, with the disadvantage that they cannot apply
// resource limits or provide rich I/O error messages.
InstallHooks(filePool re_filesystem.FilePool, errorLogger util.ErrorLogger)
InstallHooks(filePool filepool.FilePool, errorLogger util.ErrorLogger)

// Recursively merges the contents of a Directory stored in the
// Content Addressable Storage into a local directory. If this
Expand Down
4 changes: 2 additions & 2 deletions pkg/builder/build_executor.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@ import (
"context"

remoteexecution "github.com/bazelbuild/remote-apis/build/bazel/remote/execution/v2"
"github.com/buildbarn/bb-remote-execution/pkg/filesystem"
"github.com/buildbarn/bb-remote-execution/pkg/filesystem/access"
"github.com/buildbarn/bb-remote-execution/pkg/filesystem/filepool"
"github.com/buildbarn/bb-remote-execution/pkg/proto/remoteworker"
"github.com/buildbarn/bb-storage/pkg/digest"

Expand Down Expand Up @@ -67,5 +67,5 @@ func GetResultAndGRPCCodeFromExecuteResponse(response *remoteexecution.ExecuteRe
// requests and yield an execute response.
type BuildExecutor interface {
CheckReadiness(ctx context.Context) error
Execute(ctx context.Context, filePool filesystem.FilePool, monitor access.UnreadDirectoryMonitor, digestFunction digest.Function, request *remoteworker.DesiredState_Executing, executionStateUpdates chan<- *remoteworker.CurrentState_Executing) *remoteexecution.ExecuteResponse
Execute(ctx context.Context, filePool filepool.FilePool, monitor access.UnreadDirectoryMonitor, digestFunction digest.Function, request *remoteworker.DesiredState_Executing, executionStateUpdates chan<- *remoteworker.CurrentState_Executing) *remoteexecution.ExecuteResponse
}
4 changes: 2 additions & 2 deletions pkg/builder/caching_build_executor.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@ import (
"net/url"

remoteexecution "github.com/bazelbuild/remote-apis/build/bazel/remote/execution/v2"
"github.com/buildbarn/bb-remote-execution/pkg/filesystem"
"github.com/buildbarn/bb-remote-execution/pkg/filesystem/access"
"github.com/buildbarn/bb-remote-execution/pkg/filesystem/filepool"
cas_proto "github.com/buildbarn/bb-remote-execution/pkg/proto/cas"
"github.com/buildbarn/bb-remote-execution/pkg/proto/remoteworker"
re_util "github.com/buildbarn/bb-remote-execution/pkg/util"
Expand Down Expand Up @@ -42,7 +42,7 @@ func NewCachingBuildExecutor(base BuildExecutor, contentAddressableStorage, acti
}
}

func (be *cachingBuildExecutor) Execute(ctx context.Context, filePool filesystem.FilePool, monitor access.UnreadDirectoryMonitor, digestFunction digest.Function, request *remoteworker.DesiredState_Executing, executionStateUpdates chan<- *remoteworker.CurrentState_Executing) *remoteexecution.ExecuteResponse {
func (be *cachingBuildExecutor) Execute(ctx context.Context, filePool filepool.FilePool, monitor access.UnreadDirectoryMonitor, digestFunction digest.Function, request *remoteworker.DesiredState_Executing, executionStateUpdates chan<- *remoteworker.CurrentState_Executing) *remoteexecution.ExecuteResponse {
response := be.BuildExecutor.Execute(ctx, filePool, monitor, digestFunction, request, executionStateUpdates)
if actionDigest, err := digestFunction.NewDigestFromProto(request.ActionDigest); err != nil {
attachErrorToExecuteResponse(response, util.StatusWrap(err, "Failed to extract digest for action"))
Expand Down
4 changes: 2 additions & 2 deletions pkg/builder/completed_action_logging_build_executor.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@ import (
"context"

remoteexecution "github.com/bazelbuild/remote-apis/build/bazel/remote/execution/v2"
"github.com/buildbarn/bb-remote-execution/pkg/filesystem"
"github.com/buildbarn/bb-remote-execution/pkg/filesystem/access"
"github.com/buildbarn/bb-remote-execution/pkg/filesystem/filepool"
cas_proto "github.com/buildbarn/bb-remote-execution/pkg/proto/cas"
cal_proto "github.com/buildbarn/bb-remote-execution/pkg/proto/completedactionlogger"
"github.com/buildbarn/bb-remote-execution/pkg/proto/remoteworker"
Expand Down Expand Up @@ -34,7 +34,7 @@ func NewCompletedActionLoggingBuildExecutor(base BuildExecutor, uuidGenerator ut
}
}

func (be *completedActionLoggingBuildExecutor) Execute(ctx context.Context, filePool filesystem.FilePool, monitor access.UnreadDirectoryMonitor, digestFunction digest.Function, request *remoteworker.DesiredState_Executing, executionStateUpdates chan<- *remoteworker.CurrentState_Executing) *remoteexecution.ExecuteResponse {
func (be *completedActionLoggingBuildExecutor) Execute(ctx context.Context, filePool filepool.FilePool, monitor access.UnreadDirectoryMonitor, digestFunction digest.Function, request *remoteworker.DesiredState_Executing, executionStateUpdates chan<- *remoteworker.CurrentState_Executing) *remoteexecution.ExecuteResponse {
response := be.BuildExecutor.Execute(ctx, filePool, monitor, digestFunction, request, executionStateUpdates)

completedAction := &cal_proto.CompletedAction{
Expand Down
4 changes: 2 additions & 2 deletions pkg/builder/cost_computing_build_executor.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@ import (

remoteexecution "github.com/bazelbuild/remote-apis/build/bazel/remote/execution/v2"

re_filesystem "github.com/buildbarn/bb-remote-execution/pkg/filesystem"
"github.com/buildbarn/bb-remote-execution/pkg/filesystem/access"
"github.com/buildbarn/bb-remote-execution/pkg/filesystem/filepool"
"github.com/buildbarn/bb-remote-execution/pkg/proto/remoteworker"
"github.com/buildbarn/bb-remote-execution/pkg/proto/resourceusage"
"github.com/buildbarn/bb-storage/pkg/digest"
Expand All @@ -31,7 +31,7 @@ func NewCostComputingBuildExecutor(base BuildExecutor, expensesPerSecond map[str
}
}

func (be *costComputingBuildExecutor) Execute(ctx context.Context, filePool re_filesystem.FilePool, monitor access.UnreadDirectoryMonitor, digestFunction digest.Function, request *remoteworker.DesiredState_Executing, executionStateUpdates chan<- *remoteworker.CurrentState_Executing) *remoteexecution.ExecuteResponse {
func (be *costComputingBuildExecutor) Execute(ctx context.Context, filePool filepool.FilePool, monitor access.UnreadDirectoryMonitor, digestFunction digest.Function, request *remoteworker.DesiredState_Executing, executionStateUpdates chan<- *remoteworker.CurrentState_Executing) *remoteexecution.ExecuteResponse {
response := be.BuildExecutor.Execute(ctx, filePool, monitor, digestFunction, request, executionStateUpdates)

totalTime := response.Result.ExecutionMetadata.WorkerCompletedTimestamp.AsTime().Sub(response.Result.ExecutionMetadata.WorkerStartTimestamp.AsTime()).Seconds()
Expand Down
10 changes: 5 additions & 5 deletions pkg/builder/file_pool_stats_build_executor.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@ import (
"sync"

remoteexecution "github.com/bazelbuild/remote-apis/build/bazel/remote/execution/v2"
re_filesystem "github.com/buildbarn/bb-remote-execution/pkg/filesystem"
"github.com/buildbarn/bb-remote-execution/pkg/filesystem/access"
"github.com/buildbarn/bb-remote-execution/pkg/filesystem/filepool"
"github.com/buildbarn/bb-remote-execution/pkg/proto/remoteworker"
"github.com/buildbarn/bb-remote-execution/pkg/proto/resourceusage"
"github.com/buildbarn/bb-storage/pkg/digest"
Expand All @@ -30,7 +30,7 @@ func NewFilePoolStatsBuildExecutor(buildExecutor BuildExecutor) BuildExecutor {
}
}

func (be *filePoolStatsBuildExecutor) Execute(ctx context.Context, filePool re_filesystem.FilePool, monitor access.UnreadDirectoryMonitor, digestFunction digest.Function, request *remoteworker.DesiredState_Executing, executionStateUpdates chan<- *remoteworker.CurrentState_Executing) *remoteexecution.ExecuteResponse {
func (be *filePoolStatsBuildExecutor) Execute(ctx context.Context, filePool filepool.FilePool, monitor access.UnreadDirectoryMonitor, digestFunction digest.Function, request *remoteworker.DesiredState_Executing, executionStateUpdates chan<- *remoteworker.CurrentState_Executing) *remoteexecution.ExecuteResponse {
fp := statsCollectingFilePool{base: filePool}
response := be.BuildExecutor.Execute(ctx, &fp, monitor, digestFunction, request, executionStateUpdates)

Expand All @@ -49,16 +49,16 @@ func (be *filePoolStatsBuildExecutor) Execute(ctx context.Context, filePool re_f
// statsCollectingFilePool is a decorator for FilePool that measures the
// number of files created and the number of operations performed.
type statsCollectingFilePool struct {
base re_filesystem.FilePool
base filepool.FilePool

lock sync.Mutex
stats resourceusage.FilePoolResourceUsage
totalSize uint64
totalFiles uint64
}

func (fp *statsCollectingFilePool) NewFile() (filesystem.FileReadWriter, error) {
f, err := fp.base.NewFile()
func (fp *statsCollectingFilePool) NewFile(sparseReaderAt filepool.SparseReaderAt, size uint64) (filesystem.FileReadWriter, error) {
f, err := fp.base.NewFile(sparseReaderAt, size)
if err != nil {
return nil, err
}
Expand Down
27 changes: 22 additions & 5 deletions pkg/builder/file_pool_stats_build_executor_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@ import (
remoteexecution "github.com/bazelbuild/remote-apis/build/bazel/remote/execution/v2"
"github.com/buildbarn/bb-remote-execution/internal/mock"
"github.com/buildbarn/bb-remote-execution/pkg/builder"
"github.com/buildbarn/bb-remote-execution/pkg/filesystem"
"github.com/buildbarn/bb-remote-execution/pkg/filesystem/access"
"github.com/buildbarn/bb-remote-execution/pkg/filesystem/filepool"
"github.com/buildbarn/bb-remote-execution/pkg/proto/remoteworker"
"github.com/buildbarn/bb-remote-execution/pkg/proto/resourceusage"
"github.com/buildbarn/bb-storage/pkg/digest"
Expand Down Expand Up @@ -43,13 +43,13 @@ func TestFilePoolStatsBuildExecutorExample(t *testing.T) {
monitor,
digest.MustNewFunction("hello", remoteexecution.DigestFunction_MD5),
request,
gomock.Any()).DoAndReturn(func(ctx context.Context, filePool filesystem.FilePool, monitor access.UnreadDirectoryMonitor, digestFunction digest.Function, request *remoteworker.DesiredState_Executing, executionStateUpdates chan<- *remoteworker.CurrentState_Executing) *remoteexecution.ExecuteResponse {
f, err := filePool.NewFile()
gomock.Any()).DoAndReturn(func(ctx context.Context, filePool filepool.FilePool, monitor access.UnreadDirectoryMonitor, digestFunction digest.Function, request *remoteworker.DesiredState_Executing, executionStateUpdates chan<- *remoteworker.CurrentState_Executing) *remoteexecution.ExecuteResponse {
f, err := filePool.NewFile(nil, 0)
require.NoError(t, err)
require.NoError(t, f.Truncate(5))
require.NoError(t, f.Close())

f, err = filePool.NewFile()
f, err = filePool.NewFile(nil, 0)
require.NoError(t, err)
n, err := f.WriteAt([]byte("Hello"), 100)
require.Equal(t, 5, n)
Expand All @@ -70,12 +70,29 @@ func TestFilePoolStatsBuildExecutorExample(t *testing.T) {
}
})

// Mock all the file operations performed in the execution request.
filePool := mock.NewMockFilePool(ctrl)
file1 := mock.NewMockFileReadWriter(ctrl)
file2 := mock.NewMockFileReadWriter(ctrl)

filePool.EXPECT().NewFile(nil, uint64(0)).Return(file1, nil)
file1.EXPECT().Truncate(int64(5)).Return(nil)
file1.EXPECT().Close().Return(nil)
filePool.EXPECT().NewFile(nil, uint64(0)).Return(file2, nil)
file2.EXPECT().WriteAt([]byte("Hello"), int64(100)).Return(5, nil)
file2.EXPECT().ReadAt(gomock.Any(), int64(98)).DoAndReturn(func(p []byte, offset int64) (int, error) {
copy(p, []byte("\x00\x00Hello\x00\x00\x00"))
return 7, io.EOF
})
file2.EXPECT().Truncate(int64(42)).Return(nil)
file2.EXPECT().Close().Return(nil)

// Perform the execution request.
executionStateUpdates := make(chan *remoteworker.CurrentState_Executing, 3)
buildExecutor := builder.NewFilePoolStatsBuildExecutor(baseBuildExecutor)
executeResponse := buildExecutor.Execute(
ctx,
filesystem.InMemoryFilePool,
filePool,
monitor,
digest.MustNewFunction("hello", remoteexecution.DigestFunction_MD5),
request,
Expand Down
4 changes: 2 additions & 2 deletions pkg/builder/local_build_executor.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@ import (

remoteexecution "github.com/bazelbuild/remote-apis/build/bazel/remote/execution/v2"
re_clock "github.com/buildbarn/bb-remote-execution/pkg/clock"
re_filesystem "github.com/buildbarn/bb-remote-execution/pkg/filesystem"
"github.com/buildbarn/bb-remote-execution/pkg/filesystem/access"
"github.com/buildbarn/bb-remote-execution/pkg/filesystem/filepool"
"github.com/buildbarn/bb-remote-execution/pkg/proto/remoteworker"
runner_pb "github.com/buildbarn/bb-remote-execution/pkg/proto/runner"
"github.com/buildbarn/bb-storage/pkg/blobstore"
Expand Down Expand Up @@ -127,7 +127,7 @@ func (be *localBuildExecutor) CheckReadiness(ctx context.Context) error {
return err
}

func (be *localBuildExecutor) Execute(ctx context.Context, filePool re_filesystem.FilePool, monitor access.UnreadDirectoryMonitor, digestFunction digest.Function, request *remoteworker.DesiredState_Executing, executionStateUpdates chan<- *remoteworker.CurrentState_Executing) *remoteexecution.ExecuteResponse {
func (be *localBuildExecutor) Execute(ctx context.Context, filePool filepool.FilePool, monitor access.UnreadDirectoryMonitor, digestFunction digest.Function, request *remoteworker.DesiredState_Executing, executionStateUpdates chan<- *remoteworker.CurrentState_Executing) *remoteexecution.ExecuteResponse {
// Timeout handling.
response := NewDefaultExecuteResponse(request)
action := request.Action
Expand Down
Loading