Skip to content

Commit dab144a

Browse files
committed
Swap to fmt.Errorf in jobobject package (#1353)
* Swap to fmt.Errorf in jobobject package This change swaps to fmt.Errorf for wrapped errors in the jobobject package from errors.Wrap. We'd had talks of moving this code to winio where we've removed our pkg/errors dependency so this would make the port easier. Signed-off-by: Daniel Canter <[email protected]> (cherry picked from commit ccec73f) Signed-off-by: Daniel Canter <[email protected]>
1 parent 51a80ff commit dab144a

3 files changed

Lines changed: 19 additions & 19 deletions

File tree

internal/jobobject/jobobject.go

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,13 @@ package jobobject
22

33
import (
44
"context"
5+
"errors"
56
"fmt"
67
"sync"
78
"unsafe"
89

910
"github.com/Microsoft/hcsshim/internal/queue"
1011
"github.com/Microsoft/hcsshim/internal/winapi"
11-
"github.com/pkg/errors"
1212
"golang.org/x/sys/windows"
1313
)
1414

@@ -221,7 +221,7 @@ func setupNotifications(ctx context.Context, job *JobObject) (*queue.MessageQueu
221221
jobMap.Store(uintptr(job.handle), mq)
222222
if err := attachIOCP(job.handle, ioCompletionPort); err != nil {
223223
jobMap.Delete(uintptr(job.handle))
224-
return nil, errors.Wrap(err, "failed to attach job to IO completion port")
224+
return nil, fmt.Errorf("failed to attach job to IO completion port: %w", err)
225225
}
226226
return mq, nil
227227
}
@@ -348,7 +348,7 @@ func (job *JobObject) Pids() ([]uint32, error) {
348348
}
349349

350350
if err != winapi.ERROR_MORE_DATA {
351-
return nil, errors.Wrap(err, "failed initial query for PIDs in job object")
351+
return nil, fmt.Errorf("failed initial query for PIDs in job object: %w", err)
352352
}
353353

354354
jobBasicProcessIDListSize := unsafe.Sizeof(info) + (unsafe.Sizeof(info.ProcessIdList[0]) * uintptr(info.NumberOfAssignedProcesses-1))
@@ -360,7 +360,7 @@ func (job *JobObject) Pids() ([]uint32, error) {
360360
uint32(len(buf)),
361361
nil,
362362
); err != nil {
363-
return nil, errors.Wrap(err, "failed to query for PIDs in job object")
363+
return nil, fmt.Errorf("failed to query for PIDs in job object: %w", err)
364364
}
365365

366366
bufInfo := (*winapi.JOBOBJECT_BASIC_PROCESS_ID_LIST)(unsafe.Pointer(&buf[0]))
@@ -388,7 +388,7 @@ func (job *JobObject) QueryMemoryStats() (*winapi.JOBOBJECT_MEMORY_USAGE_INFORMA
388388
uint32(unsafe.Sizeof(info)),
389389
nil,
390390
); err != nil {
391-
return nil, errors.Wrap(err, "failed to query for job object memory stats")
391+
return nil, fmt.Errorf("failed to query for job object memory stats: %w", err)
392392
}
393393
return &info, nil
394394
}
@@ -410,7 +410,7 @@ func (job *JobObject) QueryProcessorStats() (*winapi.JOBOBJECT_BASIC_ACCOUNTING_
410410
uint32(unsafe.Sizeof(info)),
411411
nil,
412412
); err != nil {
413-
return nil, errors.Wrap(err, "failed to query for job object process stats")
413+
return nil, fmt.Errorf("failed to query for job object process stats: %w", err)
414414
}
415415
return &info, nil
416416
}
@@ -432,7 +432,7 @@ func (job *JobObject) QueryStorageStats() (*winapi.JOBOBJECT_BASIC_AND_IO_ACCOUN
432432
uint32(unsafe.Sizeof(info)),
433433
nil,
434434
); err != nil {
435-
return nil, errors.Wrap(err, "failed to query for job object storage stats")
435+
return nil, fmt.Errorf("failed to query for job object storage stats: %w", err)
436436
}
437437
return &info, nil
438438
}

internal/jobobject/jobobject_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,12 @@ package jobobject
22

33
import (
44
"context"
5+
"errors"
56
"os/exec"
67
"syscall"
78
"testing"
89
"time"
910

10-
"github.com/pkg/errors"
1111
"golang.org/x/sys/windows"
1212
)
1313

internal/jobobject/limits.go

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
package jobobject
22

33
import (
4+
"errors"
45
"fmt"
56
"unsafe"
67

78
"github.com/Microsoft/hcsshim/internal/winapi"
8-
"github.com/pkg/errors"
99
"golang.org/x/sys/windows"
1010
)
1111

@@ -22,23 +22,23 @@ func (job *JobObject) SetResourceLimits(limits *JobLimits) error {
2222
// Go through and check what limits were specified and apply them to the job.
2323
if limits.MemoryLimitInBytes != 0 {
2424
if err := job.SetMemoryLimit(limits.MemoryLimitInBytes); err != nil {
25-
return errors.Wrap(err, "failed to set job object memory limit")
25+
return fmt.Errorf("failed to set job object memory limit: %w", err)
2626
}
2727
}
2828

2929
if limits.CPULimit != 0 {
3030
if err := job.SetCPULimit(RateBased, limits.CPULimit); err != nil {
31-
return errors.Wrap(err, "failed to set job object cpu limit")
31+
return fmt.Errorf("failed to set job object cpu limit: %w", err)
3232
}
3333
} else if limits.CPUWeight != 0 {
3434
if err := job.SetCPULimit(WeightBased, limits.CPUWeight); err != nil {
35-
return errors.Wrap(err, "failed to set job object cpu limit")
35+
return fmt.Errorf("failed to set job object cpu limit: %w", err)
3636
}
3737
}
3838

3939
if limits.MaxBandwidth != 0 || limits.MaxIOPS != 0 {
4040
if err := job.SetIOLimit(limits.MaxBandwidth, limits.MaxIOPS); err != nil {
41-
return errors.Wrap(err, "failed to set io limit on job object")
41+
return fmt.Errorf("failed to set io limit on job object: %w", err)
4242
}
4343
}
4444
return nil
@@ -206,7 +206,7 @@ func (job *JobObject) getExtendedInformation() (*windows.JOBOBJECT_EXTENDED_LIMI
206206
uint32(unsafe.Sizeof(info)),
207207
nil,
208208
); err != nil {
209-
return nil, errors.Wrapf(err, "query %v returned error", info)
209+
return nil, fmt.Errorf("query %v returned error: %w", info, err)
210210
}
211211
return &info, nil
212212
}
@@ -228,7 +228,7 @@ func (job *JobObject) getCPURateControlInformation() (*winapi.JOBOBJECT_CPU_RATE
228228
uint32(unsafe.Sizeof(info)),
229229
nil,
230230
); err != nil {
231-
return nil, errors.Wrapf(err, "query %v returned error", info)
231+
return nil, fmt.Errorf("query %v returned error: %w", info, err)
232232
}
233233
return &info, nil
234234
}
@@ -248,7 +248,7 @@ func (job *JobObject) setExtendedInformation(info *windows.JOBOBJECT_EXTENDED_LI
248248
uintptr(unsafe.Pointer(info)),
249249
uint32(unsafe.Sizeof(*info)),
250250
); err != nil {
251-
return errors.Wrapf(err, "failed to set Extended info %v on job object", info)
251+
return fmt.Errorf("failed to set Extended info %v on job object: %w", info, err)
252252
}
253253
return nil
254254
}
@@ -271,7 +271,7 @@ func (job *JobObject) getIOLimit() (*winapi.JOBOBJECT_IO_RATE_CONTROL_INFORMATIO
271271
&ioInfo,
272272
&blockCount,
273273
); err != nil {
274-
return nil, errors.Wrapf(err, "query %v returned error", ioInfo)
274+
return nil, fmt.Errorf("query %v returned error: %w", ioInfo, err)
275275
}
276276

277277
if !isFlagSet(winapi.JOB_OBJECT_IO_RATE_CONTROL_ENABLE, ioInfo.ControlFlags) {
@@ -290,7 +290,7 @@ func (job *JobObject) setIORateControlInfo(ioInfo *winapi.JOBOBJECT_IO_RATE_CONT
290290
}
291291

292292
if _, err := winapi.SetIoRateControlInformationJobObject(job.handle, ioInfo); err != nil {
293-
return errors.Wrapf(err, "failed to set IO limit info %v on job object", ioInfo)
293+
return fmt.Errorf("failed to set IO limit info %v on job object: %w", ioInfo, err)
294294
}
295295
return nil
296296
}
@@ -309,7 +309,7 @@ func (job *JobObject) setCPURateControlInfo(cpuInfo *winapi.JOBOBJECT_CPU_RATE_C
309309
uintptr(unsafe.Pointer(cpuInfo)),
310310
uint32(unsafe.Sizeof(cpuInfo)),
311311
); err != nil {
312-
return errors.Wrapf(err, "failed to set cpu limit info %v on job object", cpuInfo)
312+
return fmt.Errorf("failed to set cpu limit info %v on job object: %w", cpuInfo, err)
313313
}
314314
return nil
315315
}

0 commit comments

Comments
 (0)