Skip to content

Commit 34d363a

Browse files
authored
Improve Go code error handling (#3230)
* Drop gerrors in runner.go * Drop gerrors in http.go * Drop gerrors in repo/manager.go * Drop gerrors in executor/files.go * Drop more gerrors usages * Drop gerrors in executor/repo.go * Drop gerrors in executor/executor.go * Drop gerrors package * Drop tracerr * Drop tracerr from go.mod * Fix wrapping nil errors * Wrap errors * Propagate check dstack-runner exists errors * Wrap errors in executor.go
1 parent 5f602d1 commit 34d363a

20 files changed

Lines changed: 197 additions & 281 deletions

File tree

runner/cmd/runner/main.go

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ import (
1212
"github.com/dstackai/dstack/runner/internal/log"
1313
"github.com/dstackai/dstack/runner/internal/runner/api"
1414
"github.com/sirupsen/logrus"
15-
"github.com/ztrue/tracerr"
1615
)
1716

1817
func main() {
@@ -21,17 +20,17 @@ func main() {
2120

2221
func start(tempDir string, homeDir string, httpPort int, sshPort int, logLevel int, version string) error {
2322
if err := os.MkdirAll(tempDir, 0o755); err != nil {
24-
return tracerr.Errorf("Failed to create temp directory: %w", err)
23+
return fmt.Errorf("create temp directory: %w", err)
2524
}
2625

2726
defaultLogFile, err := log.CreateAppendFile(filepath.Join(tempDir, consts.RunnerDefaultLogFileName))
2827
if err != nil {
29-
return tracerr.Errorf("Failed to create default log file: %w", err)
28+
return fmt.Errorf("create default log file: %w", err)
3029
}
3130
defer func() {
3231
err = defaultLogFile.Close()
3332
if err != nil {
34-
tracerr.Print(err)
33+
log.Error(context.TODO(), "Failed to close default log file", "err", err)
3534
}
3635
}()
3736

@@ -40,12 +39,12 @@ func start(tempDir string, homeDir string, httpPort int, sshPort int, logLevel i
4039

4140
server, err := api.NewServer(tempDir, homeDir, fmt.Sprintf(":%d", httpPort), sshPort, version)
4241
if err != nil {
43-
return tracerr.Errorf("Failed to create server: %w", err)
42+
return fmt.Errorf("create server: %w", err)
4443
}
4544

4645
log.Trace(context.TODO(), "Starting API server", "port", httpPort)
4746
if err := server.Run(); err != nil {
48-
return tracerr.Errorf("Server failed: %w", err)
47+
return fmt.Errorf("server failed: %w", err)
4948
}
5049

5150
return nil

runner/cmd/shim/main.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -252,9 +252,9 @@ func start(ctx context.Context, args shim.CLIArgs, serviceMode bool) (err error)
252252
if serviceMode {
253253
if err := shim.WriteHostInfo(shimHomeDir, dockerRunner.Resources(ctx)); err != nil {
254254
if errors.Is(err, os.ErrExist) {
255-
log.Error(ctx, "cannot write host info: file already exists")
255+
log.Error(ctx, "write host info: file already exists")
256256
} else {
257-
return err
257+
return fmt.Errorf("write host info: %w", err)
258258
}
259259
}
260260
}

runner/go.mod

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@ require (
2121
github.com/sirupsen/logrus v1.9.3
2222
github.com/stretchr/testify v1.10.0
2323
github.com/urfave/cli/v2 v2.27.1
24-
github.com/ztrue/tracerr v0.4.0
2524
golang.org/x/crypto v0.22.0
2625
golang.org/x/sys v0.26.0
2726
)

runner/go.sum

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -196,8 +196,6 @@ github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9dec
196196
github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
197197
github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0=
198198
github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0=
199-
github.com/ztrue/tracerr v0.4.0 h1:vT5PFxwIGs7rCg9ZgJ/y0NmOpJkPCPFK8x0vVIYzd04=
200-
github.com/ztrue/tracerr v0.4.0/go.mod h1:PaFfYlas0DfmXNpo7Eay4MFhZUONqvXM+T2HyGPpngk=
201199
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.50.0 h1:cEPbyTSEHlQR89XVlyo78gqluF8Y3oMeBkXGWzQsfXY=
202200
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.50.0/go.mod h1:DKdbWcT4GH1D0Y3Sqt/PFXt2naRKDWtU+eE6oLdFNA8=
203201
go.opentelemetry.io/otel v1.25.0 h1:gldB5FfhRl7OJQbUHt/8s0a7cE8fbsPAtdpRaApKy4k=

runner/internal/common/interpolator.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ import (
55
"fmt"
66
"strings"
77

8-
"github.com/dstackai/dstack/runner/internal/gerrors"
98
"github.com/dstackai/dstack/runner/internal/log"
109
)
1110

@@ -52,7 +51,7 @@ func (vi *VariablesInterpolator) Interpolate(ctx context.Context, s string) (str
5251
sb.WriteString(s[start:opening])
5352
closing := IndexWithOffset(s, PatternClosing, opening)
5453
if closing == -1 {
55-
return "", gerrors.Newf("no pattern closing: %s", s[opening:])
54+
return "", fmt.Errorf("no pattern closing: %s", s[opening:])
5655
}
5756

5857
name := strings.TrimSpace(s[opening+len(PatternOpening) : closing])

0 commit comments

Comments
 (0)