Skip to content

Commit 3e54439

Browse files
authored
[shim] Fix DCGMWrapperInterface nil check (bis) (#3001)
Fixes: #2997
1 parent 38e66bc commit 3e54439

File tree

2 files changed

+6
-3
lines changed

2 files changed

+6
-3
lines changed

runner/internal/shim/api/handlers.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ import (
44
"context"
55
"errors"
66
"net/http"
7-
"reflect"
87

98
"github.com/dstackai/dstack/runner/internal/api"
109
"github.com/dstackai/dstack/runner/internal/log"
@@ -25,7 +24,7 @@ func (s *ShimServer) HealthcheckHandler(w http.ResponseWriter, r *http.Request)
2524
func (s *ShimServer) InstanceHealthHandler(w http.ResponseWriter, r *http.Request) (interface{}, error) {
2625
ctx := r.Context()
2726
response := InstanceHealthResponse{}
28-
if !reflect.ValueOf(s.dcgmWrapper).IsNil() {
27+
if s.dcgmWrapper != nil {
2928
if dcgmHealth, err := s.dcgmWrapper.GetHealth(); err != nil {
3029
log.Error(ctx, "failed to get health from DCGM", "err", err)
3130
} else {

runner/internal/shim/api/server.go

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import (
44
"context"
55
"net"
66
"net/http"
7+
"reflect"
78
"sync"
89

910
"github.com/dstackai/dstack/runner/internal/api"
@@ -29,7 +30,7 @@ type ShimServer struct {
2930
runner TaskRunner
3031

3132
dcgmExporter *dcgm.DCGMExporter
32-
dcgmWrapper dcgm.DCGMWrapperInterface
33+
dcgmWrapper dcgm.DCGMWrapperInterface // interface with nil value normalized to plain nil
3334

3435
version string
3536
}
@@ -38,6 +39,9 @@ func NewShimServer(
3839
ctx context.Context, address string, version string,
3940
runner TaskRunner, dcgmExporter *dcgm.DCGMExporter, dcgmWrapper dcgm.DCGMWrapperInterface,
4041
) *ShimServer {
42+
if dcgmWrapper != nil && reflect.ValueOf(dcgmWrapper).IsNil() {
43+
dcgmWrapper = nil
44+
}
4145
r := api.NewRouter()
4246
s := &ShimServer{
4347
HttpServer: &http.Server{

0 commit comments

Comments
 (0)