Skip to content

Commit ccec73f

Browse files
authored
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]>
1 parent 13ceffd commit ccec73f

File tree

3 files changed

+19
-19
lines changed

3 files changed

+19
-19
lines changed

internal/jobobject/jobobject.go

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ package jobobject
44

55
import (
66
"context"
7+
"errors"
78
"fmt"
89
"os"
910
"path/filepath"
@@ -13,7 +14,6 @@ import (
1314

1415
"github.com/Microsoft/hcsshim/internal/queue"
1516
"github.com/Microsoft/hcsshim/internal/winapi"
16-
"github.com/pkg/errors"
1717
"golang.org/x/sys/windows"
1818
)
1919

@@ -235,7 +235,7 @@ func setupNotifications(ctx context.Context, job *JobObject) (*queue.MessageQueu
235235
jobMap.Store(uintptr(job.handle), mq)
236236
if err := attachIOCP(job.handle, ioCompletionPort); err != nil {
237237
jobMap.Delete(uintptr(job.handle))
238-
return nil, errors.Wrap(err, "failed to attach job to IO completion port")
238+
return nil, fmt.Errorf("failed to attach job to IO completion port: %w", err)
239239
}
240240
return mq, nil
241241
}
@@ -362,7 +362,7 @@ func (job *JobObject) Pids() ([]uint32, error) {
362362
}
363363

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

368368
jobBasicProcessIDListSize := unsafe.Sizeof(info) + (unsafe.Sizeof(info.ProcessIdList[0]) * uintptr(info.NumberOfAssignedProcesses-1))
@@ -374,7 +374,7 @@ func (job *JobObject) Pids() ([]uint32, error) {
374374
uint32(len(buf)),
375375
nil,
376376
); err != nil {
377-
return nil, errors.Wrap(err, "failed to query for PIDs in job object")
377+
return nil, fmt.Errorf("failed to query for PIDs in job object: %w", err)
378378
}
379379

380380
bufInfo := (*winapi.JOBOBJECT_BASIC_PROCESS_ID_LIST)(unsafe.Pointer(&buf[0]))
@@ -402,7 +402,7 @@ func (job *JobObject) QueryMemoryStats() (*winapi.JOBOBJECT_MEMORY_USAGE_INFORMA
402402
uint32(unsafe.Sizeof(info)),
403403
nil,
404404
); err != nil {
405-
return nil, errors.Wrap(err, "failed to query for job object memory stats")
405+
return nil, fmt.Errorf("failed to query for job object memory stats: %w", err)
406406
}
407407
return &info, nil
408408
}
@@ -424,7 +424,7 @@ func (job *JobObject) QueryProcessorStats() (*winapi.JOBOBJECT_BASIC_ACCOUNTING_
424424
uint32(unsafe.Sizeof(info)),
425425
nil,
426426
); err != nil {
427-
return nil, errors.Wrap(err, "failed to query for job object process stats")
427+
return nil, fmt.Errorf("failed to query for job object process stats: %w", err)
428428
}
429429
return &info, nil
430430
}
@@ -446,7 +446,7 @@ func (job *JobObject) QueryStorageStats() (*winapi.JOBOBJECT_BASIC_AND_IO_ACCOUN
446446
uint32(unsafe.Sizeof(info)),
447447
nil,
448448
); err != nil {
449-
return nil, errors.Wrap(err, "failed to query for job object storage stats")
449+
return nil, fmt.Errorf("failed to query for job object storage stats: %w", err)
450450
}
451451
return &info, nil
452452
}

internal/jobobject/jobobject_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,14 @@ package jobobject
44

55
import (
66
"context"
7+
"errors"
78
"os"
89
"os/exec"
910
"path/filepath"
1011
"syscall"
1112
"testing"
1213
"time"
1314

14-
"github.com/pkg/errors"
1515
"golang.org/x/sys/windows"
1616
)
1717

internal/jobobject/limits.go

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,11 @@
33
package jobobject
44

55
import (
6+
"errors"
67
"fmt"
78
"unsafe"
89

910
"github.com/Microsoft/hcsshim/internal/winapi"
10-
"github.com/pkg/errors"
1111
"golang.org/x/sys/windows"
1212
)
1313

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

3131
if limits.CPULimit != 0 {
3232
if err := job.SetCPULimit(RateBased, limits.CPULimit); err != nil {
33-
return errors.Wrap(err, "failed to set job object cpu limit")
33+
return fmt.Errorf("failed to set job object cpu limit: %w", err)
3434
}
3535
} else if limits.CPUWeight != 0 {
3636
if err := job.SetCPULimit(WeightBased, limits.CPUWeight); err != nil {
37-
return errors.Wrap(err, "failed to set job object cpu limit")
37+
return fmt.Errorf("failed to set job object cpu limit: %w", err)
3838
}
3939
}
4040

4141
if limits.MaxBandwidth != 0 || limits.MaxIOPS != 0 {
4242
if err := job.SetIOLimit(limits.MaxBandwidth, limits.MaxIOPS); err != nil {
43-
return errors.Wrap(err, "failed to set io limit on job object")
43+
return fmt.Errorf("failed to set io limit on job object: %w", err)
4444
}
4545
}
4646
return nil
@@ -208,7 +208,7 @@ func (job *JobObject) getExtendedInformation() (*windows.JOBOBJECT_EXTENDED_LIMI
208208
uint32(unsafe.Sizeof(info)),
209209
nil,
210210
); err != nil {
211-
return nil, errors.Wrapf(err, "query %v returned error", info)
211+
return nil, fmt.Errorf("query %v returned error: %w", info, err)
212212
}
213213
return &info, nil
214214
}
@@ -230,7 +230,7 @@ func (job *JobObject) getCPURateControlInformation() (*winapi.JOBOBJECT_CPU_RATE
230230
uint32(unsafe.Sizeof(info)),
231231
nil,
232232
); err != nil {
233-
return nil, errors.Wrapf(err, "query %v returned error", info)
233+
return nil, fmt.Errorf("query %v returned error: %w", info, err)
234234
}
235235
return &info, nil
236236
}
@@ -250,7 +250,7 @@ func (job *JobObject) setExtendedInformation(info *windows.JOBOBJECT_EXTENDED_LI
250250
uintptr(unsafe.Pointer(info)),
251251
uint32(unsafe.Sizeof(*info)),
252252
); err != nil {
253-
return errors.Wrapf(err, "failed to set Extended info %v on job object", info)
253+
return fmt.Errorf("failed to set Extended info %v on job object: %w", info, err)
254254
}
255255
return nil
256256
}
@@ -273,7 +273,7 @@ func (job *JobObject) getIOLimit() (*winapi.JOBOBJECT_IO_RATE_CONTROL_INFORMATIO
273273
&ioInfo,
274274
&blockCount,
275275
); err != nil {
276-
return nil, errors.Wrapf(err, "query %v returned error", ioInfo)
276+
return nil, fmt.Errorf("query %v returned error: %w", ioInfo, err)
277277
}
278278

279279
if !isFlagSet(winapi.JOB_OBJECT_IO_RATE_CONTROL_ENABLE, ioInfo.ControlFlags) {
@@ -292,7 +292,7 @@ func (job *JobObject) setIORateControlInfo(ioInfo *winapi.JOBOBJECT_IO_RATE_CONT
292292
}
293293

294294
if _, err := winapi.SetIoRateControlInformationJobObject(job.handle, ioInfo); err != nil {
295-
return errors.Wrapf(err, "failed to set IO limit info %v on job object", ioInfo)
295+
return fmt.Errorf("failed to set IO limit info %v on job object: %w", ioInfo, err)
296296
}
297297
return nil
298298
}
@@ -311,7 +311,7 @@ func (job *JobObject) setCPURateControlInfo(cpuInfo *winapi.JOBOBJECT_CPU_RATE_C
311311
uintptr(unsafe.Pointer(cpuInfo)),
312312
uint32(unsafe.Sizeof(cpuInfo)),
313313
); err != nil {
314-
return errors.Wrapf(err, "failed to set cpu limit info %v on job object", cpuInfo)
314+
return fmt.Errorf("failed to set cpu limit info %v on job object: %w", cpuInfo, err)
315315
}
316316
return nil
317317
}

0 commit comments

Comments
 (0)