Skip to content
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

Swap to fmt.Errorf in jobobject package #1353

Merged
merged 2 commits into from
Apr 14, 2022
Merged
Show file tree
Hide file tree
Changes from 1 commit
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
12 changes: 6 additions & 6 deletions internal/jobobject/jobobject.go
Original file line number Diff line number Diff line change
Expand Up @@ -235,7 +235,7 @@ func setupNotifications(ctx context.Context, job *JobObject) (*queue.MessageQueu
jobMap.Store(uintptr(job.handle), mq)
if err := attachIOCP(job.handle, ioCompletionPort); err != nil {
jobMap.Delete(uintptr(job.handle))
return nil, errors.Wrap(err, "failed to attach job to IO completion port")
return nil, fmt.Errorf("failed to attach job to IO completion port: %w", err)
}
return mq, nil
}
Expand Down Expand Up @@ -362,7 +362,7 @@ func (job *JobObject) Pids() ([]uint32, error) {
}

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

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

bufInfo := (*winapi.JOBOBJECT_BASIC_PROCESS_ID_LIST)(unsafe.Pointer(&buf[0]))
Expand Down Expand Up @@ -402,7 +402,7 @@ func (job *JobObject) QueryMemoryStats() (*winapi.JOBOBJECT_MEMORY_USAGE_INFORMA
uint32(unsafe.Sizeof(info)),
nil,
); err != nil {
return nil, errors.Wrap(err, "failed to query for job object memory stats")
return nil, fmt.Errorf("failed to query for job object memory stats: %w", err)
}
return &info, nil
}
Expand All @@ -424,7 +424,7 @@ func (job *JobObject) QueryProcessorStats() (*winapi.JOBOBJECT_BASIC_ACCOUNTING_
uint32(unsafe.Sizeof(info)),
nil,
); err != nil {
return nil, errors.Wrap(err, "failed to query for job object process stats")
return nil, fmt.Errorf("failed to query for job object process stats: %w", err)
}
return &info, nil
}
Expand All @@ -446,7 +446,7 @@ func (job *JobObject) QueryStorageStats() (*winapi.JOBOBJECT_BASIC_AND_IO_ACCOUN
uint32(unsafe.Sizeof(info)),
nil,
); err != nil {
return nil, errors.Wrap(err, "failed to query for job object storage stats")
return nil, fmt.Errorf("failed to query for job object storage stats: %w", err)
}
return &info, nil
}
Expand Down
20 changes: 10 additions & 10 deletions internal/jobobject/limits.go
Original file line number Diff line number Diff line change
Expand Up @@ -24,23 +24,23 @@ func (job *JobObject) SetResourceLimits(limits *JobLimits) error {
// Go through and check what limits were specified and apply them to the job.
if limits.MemoryLimitInBytes != 0 {
if err := job.SetMemoryLimit(limits.MemoryLimitInBytes); err != nil {
return errors.Wrap(err, "failed to set job object memory limit")
return fmt.Errorf("failed to set job object memory limit: %w", err)
}
}

if limits.CPULimit != 0 {
if err := job.SetCPULimit(RateBased, limits.CPULimit); err != nil {
return errors.Wrap(err, "failed to set job object cpu limit")
return fmt.Errorf("failed to set job object cpu limit: %w", err)
}
} else if limits.CPUWeight != 0 {
if err := job.SetCPULimit(WeightBased, limits.CPUWeight); err != nil {
return errors.Wrap(err, "failed to set job object cpu limit")
return fmt.Errorf("failed to set job object cpu limit: %w", err)
}
}

if limits.MaxBandwidth != 0 || limits.MaxIOPS != 0 {
if err := job.SetIOLimit(limits.MaxBandwidth, limits.MaxIOPS); err != nil {
return errors.Wrap(err, "failed to set io limit on job object")
return fmt.Errorf("failed to set io limit on job object: %w", err)
}
}
return nil
Expand Down Expand Up @@ -208,7 +208,7 @@ func (job *JobObject) getExtendedInformation() (*windows.JOBOBJECT_EXTENDED_LIMI
uint32(unsafe.Sizeof(info)),
nil,
); err != nil {
return nil, errors.Wrapf(err, "query %v returned error", info)
return nil, fmt.Errorf("query %v returned error: %w", info, err)
}
return &info, nil
}
Expand All @@ -230,7 +230,7 @@ func (job *JobObject) getCPURateControlInformation() (*winapi.JOBOBJECT_CPU_RATE
uint32(unsafe.Sizeof(info)),
nil,
); err != nil {
return nil, errors.Wrapf(err, "query %v returned error", info)
return nil, fmt.Errorf("query %v returned error: %w", info, err)
}
return &info, nil
}
Expand All @@ -250,7 +250,7 @@ func (job *JobObject) setExtendedInformation(info *windows.JOBOBJECT_EXTENDED_LI
uintptr(unsafe.Pointer(info)),
uint32(unsafe.Sizeof(*info)),
); err != nil {
return errors.Wrapf(err, "failed to set Extended info %v on job object", info)
return fmt.Errorf("failed to set Extended info %v on job object: %w", info, err)
}
return nil
}
Expand All @@ -273,7 +273,7 @@ func (job *JobObject) getIOLimit() (*winapi.JOBOBJECT_IO_RATE_CONTROL_INFORMATIO
&ioInfo,
&blockCount,
); err != nil {
return nil, errors.Wrapf(err, "query %v returned error", ioInfo)
return nil, fmt.Errorf("query %v returned error: %w", ioInfo, err)
}

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

if _, err := winapi.SetIoRateControlInformationJobObject(job.handle, ioInfo); err != nil {
return errors.Wrapf(err, "failed to set IO limit info %v on job object", ioInfo)
return fmt.Errorf("failed to set IO limit info %v on job object: %w", ioInfo, err)
}
return nil
}
Expand All @@ -311,7 +311,7 @@ func (job *JobObject) setCPURateControlInfo(cpuInfo *winapi.JOBOBJECT_CPU_RATE_C
uintptr(unsafe.Pointer(cpuInfo)),
uint32(unsafe.Sizeof(cpuInfo)),
); err != nil {
return errors.Wrapf(err, "failed to set cpu limit info %v on job object", cpuInfo)
return fmt.Errorf("failed to set cpu limit info %v on job object: %w", cpuInfo, err)
}
return nil
}