@@ -174,14 +174,12 @@ func acquireLock(lockFile string) (*flock.Flock, error) {
174174 select {
175175 case <- timeout :
176176 logger .Log .Printf ("Acquiring lock timeout exceeded" )
177- fmt .Printf ("Acquiring lock timeout exceeded\n " )
178- return nil , fmt .Errorf ("lock acquisition timed out" )
177+ return nil , fmt .Errorf ("Acquiring lock timeout exceeded" )
179178 case <- tick :
180179 locked , err := lock .TryLock ()
181180 if err != nil {
182181 logger .Log .Printf ("Failed to acquire lock, Error: %v" , err )
183- fmt .Printf ("Failed to acquire lock, Error: %v\n " , err )
184- return nil , err
182+ return nil , fmt .Errorf ("Failed to acquire lock, Error: %v" , err )
185183 }
186184 if locked {
187185 return lock , nil
@@ -211,8 +209,7 @@ func parseGPUsList(gpus string) ([]int, []string, []string, error) {
211209 gpusInfo , err := amdgpu .GetAMDGPUs ()
212210 if err != nil {
213211 logger .Log .Printf ("Failed to get AMD GPUs info, Error: %v" , err )
214- fmt .Printf ("Failed to get AMD GPUs info, Error: %v\n " , err )
215- return []int {}, []string {}, []string {}, err
212+ return []int {}, []string {}, []string {}, fmt .Errorf ("Failed to get AMD GPUs info, Error: %v" , err )
216213 }
217214
218215 if gpus == "all" || gpus == "All" || gpus == "ALL" {
@@ -287,8 +284,7 @@ func isGPUTrackerInitialized() (bool, error) {
287284 gpuTrackerInitialized = true
288285 } else {
289286 if ! os .IsNotExist (err ) {
290- fmt .Printf ("Error checking file %v, Error:%v\n " , gpuTrackerFile , err )
291- return false , err
287+ return false , fmt .Errorf ("Error checking file %v, Error:%v" , gpuTrackerFile , err )
292288 }
293289 }
294290
@@ -299,17 +295,17 @@ func readGPUTrackerFile() (gpu_tracker_data_t, error) {
299295 file , err := os .Open (gpuTrackerFile )
300296 if err != nil {
301297 logger .Log .Printf ("Error opening file, Error: %v" , err )
302- fmt . Printf ( "Error opening file, Error: %v \n " , err )
303- return gpu_tracker_data_t { GPUsStatus : make ( map [ int ] gpu_status_t ), GPUsInfo : make ( map [ int ]amdgpu. DeviceInfo )} , err
298+ return gpu_tracker_data_t { GPUsStatus : make ( map [ int ] gpu_status_t ), GPUsInfo : make ( map [ int ]amdgpu. DeviceInfo )},
299+ fmt . Errorf ( "Error opening file, Error: %v" , err )
304300 }
305301 defer file .Close ()
306302
307303 var gpuTrackerData gpu_tracker_data_t
308304 decoder := json .NewDecoder (file )
309305 if err := decoder .Decode (& gpuTrackerData ); err != nil {
310306 logger .Log .Printf ("Failed to decode JSON, Error: %v" , err )
311- fmt . Printf ( "Failed to decode JSON, Error: %v \n " , err )
312- return gpu_tracker_data_t { GPUsStatus : make ( map [ int ] gpu_status_t ), GPUsInfo : make ( map [ int ]amdgpu. DeviceInfo )} , err
307+ return gpu_tracker_data_t { GPUsStatus : make ( map [ int ] gpu_status_t ), GPUsInfo : make ( map [ int ]amdgpu. DeviceInfo )},
308+ fmt . Errorf ( "Failed to decode JSON, Error: %v" , err )
313309 }
314310
315311 return gpuTrackerData , nil
@@ -320,33 +316,29 @@ func writeGPUTrackerFile(gpuTrackerData gpu_tracker_data_t) error {
320316 tempFile , err := os .Create (tempPath )
321317 if err != nil {
322318 logger .Log .Printf ("Error creating temp file, Error: %v" , err )
323- fmt .Printf ("Error creating temp file, Error: %v\n " , err )
324- return err
319+ return fmt .Errorf ("Error creating temp file, Error: %v" , err )
325320 }
326321
327322 encoder := json .NewEncoder (tempFile )
328323 if err := encoder .Encode (gpuTrackerData ); err != nil {
329324 tempFile .Close ()
330325 os .Remove (tempPath )
331326 logger .Log .Printf ("Error encoding JSON to temp file, Error: %v" , err )
332- fmt .Printf ("Error encoding JSON to temp file, Error: %v\n " , err )
333- return err
327+ return fmt .Errorf ("Error encoding JSON to temp file, Error: %v" , err )
334328 }
335329
336330 if err := tempFile .Sync (); err != nil {
337331 tempFile .Close ()
338332 os .Remove (tempPath )
339333 logger .Log .Printf ("Error syncing temp file: %v" , err )
340- fmt .Printf ("Error syncing temp file: %v\n " , err )
341- return err
334+ return fmt .Errorf ("Error syncing temp file: %v" , err )
342335 }
343336
344337 tempFile .Close ()
345338
346339 if err := os .Rename (tempPath , gpuTrackerFile ); err != nil {
347340 logger .Log .Printf ("Error renaming temp file: %v" , err )
348- fmt .Printf ("Error renaming temp file: %v\n " , err )
349- return err
341+ return fmt .Errorf ("Error renaming temp file: %v" , err )
350342 }
351343
352344 return nil
@@ -356,8 +348,7 @@ func initializeGPUTracker() error {
356348 gpusInfo , err := amdgpu .GetAMDGPUs ()
357349 if err != nil {
358350 logger .Log .Printf ("Failed to get AMD GPUs info, Error: %v" , err )
359- fmt .Printf ("Failed to get AMD GPUs info, Error: %v\n " , err )
360- return err
351+ return fmt .Errorf ("Failed to get AMD GPUs info, Error: %v" , err )
361352 }
362353
363354 uuidToGPUIdMap , err := amdgpu .GetUniqueIdToDeviceIndexMap ()
@@ -394,8 +385,7 @@ func validateGPUsInfo(savedGPUsInfo map[int]amdgpu.DeviceInfo) (bool, error) {
394385 tempGPUsInfo , err := amdgpu .GetAMDGPUs ()
395386 if err != nil {
396387 logger .Log .Printf ("Failed to get AMD GPUs info, Error: %v" , err )
397- fmt .Printf ("Failed to get AMD GPUs info, Error: %v\n " , err )
398- return false , err
388+ return false , fmt .Errorf ("Failed to get AMD GPUs info, Error: %v" , err )
399389 }
400390 currentGPUsInfo := make (map [int ]amdgpu.DeviceInfo )
401391 for gpuId , gpuInfo := range tempGPUsInfo {
@@ -412,7 +402,7 @@ func validateGPUsInfo(savedGPUsInfo map[int]amdgpu.DeviceInfo) (bool, error) {
412402 return true , nil
413403}
414404
415- func (gpuTracker * gpu_tracker_t ) Init () error {
405+ func (gpuTracker * gpu_tracker_t ) Init () ( err error ) {
416406 lock , err := acquireLock (gpuTracker .gpuTrackerLockFile )
417407 if err != nil {
418408 return fmt .Errorf ("Init lock failed: %v" , err )
@@ -435,16 +425,14 @@ func (gpuTracker *gpu_tracker_t) Init() error {
435425 err = gpuTracker .initializeGPUTracker ()
436426 if err != nil {
437427 logger .Log .Printf ("Failed to initialize GPU Tracker, Error: %v" , err )
438- fmt .Printf ("Failed to initialize GPU Tracker, Error: %v\n " , err )
439- return err
428+ return fmt .Errorf ("Failed to initialize GPU Tracker, Error: %v" , err )
440429 }
441430
442431 logger .Log .Printf ("GPU Tracker has been initialized" )
443- fmt .Printf ("GPU Tracker has been initialized\n " )
444432 return nil
445433}
446434
447- func (gpuTracker * gpu_tracker_t ) Enable () error {
435+ func (gpuTracker * gpu_tracker_t ) Enable () ( err error ) {
448436 lock , err := acquireLock (gpuTracker .gpuTrackerLockFile )
449437 if err != nil {
450438 return fmt .Errorf ("Enable lock failed: %v" , err )
@@ -519,7 +507,7 @@ func (gpuTracker *gpu_tracker_t) Enable() error {
519507 return nil
520508}
521509
522- func (gpuTracker * gpu_tracker_t ) Disable () error {
510+ func (gpuTracker * gpu_tracker_t ) Disable () ( err error ) {
523511 lock , err := acquireLock (gpuTracker .gpuTrackerLockFile )
524512 if err != nil {
525513 return fmt .Errorf ("Disable lock failed: %v" , err )
@@ -576,7 +564,7 @@ func (gpuTracker *gpu_tracker_t) Disable() error {
576564 return nil
577565}
578566
579- func (gpuTracker * gpu_tracker_t ) Reset () error {
567+ func (gpuTracker * gpu_tracker_t ) Reset () ( err error ) {
580568 lock , err := acquireLock (gpuTracker .gpuTrackerLockFile )
581569 if err != nil {
582570 return fmt .Errorf ("Reset lock failed: %v" , err )
@@ -655,7 +643,7 @@ func (gpuTracker *gpu_tracker_t) Reset() error {
655643 return nil
656644}
657645
658- func (gpuTracker * gpu_tracker_t ) ShowStatus () error {
646+ func (gpuTracker * gpu_tracker_t ) ShowStatus () ( err error ) {
659647 lock , err := acquireLock (gpuTracker .gpuTrackerLockFile )
660648 if err != nil {
661649 return fmt .Errorf ("ShowStatus lock failed: %v" , err )
@@ -738,7 +726,7 @@ func (gpuTracker *gpu_tracker_t) ShowStatus() error {
738726 return nil
739727}
740728
741- func (gpuTracker * gpu_tracker_t ) MakeGPUsExclusive (gpus string ) error {
729+ func (gpuTracker * gpu_tracker_t ) MakeGPUsExclusive (gpus string ) ( err error ) {
742730 lock , err := acquireLock (gpuTracker .gpuTrackerLockFile )
743731 if err != nil {
744732 return fmt .Errorf ("MakeGPUsExclusive lock failed: %v" , err )
@@ -841,7 +829,7 @@ func (gpuTracker *gpu_tracker_t) MakeGPUsExclusive(gpus string) error {
841829 return nil
842830}
843831
844- func (gpuTracker * gpu_tracker_t ) MakeGPUsShared (gpus string ) error {
832+ func (gpuTracker * gpu_tracker_t ) MakeGPUsShared (gpus string ) ( err error ) {
845833 lock , err := acquireLock (gpuTracker .gpuTrackerLockFile )
846834 if err != nil {
847835 return fmt .Errorf ("MakeGPUsShared lock failed: %v" , err )
@@ -932,7 +920,7 @@ func (gpuTracker *gpu_tracker_t) MakeGPUsShared(gpus string) error {
932920 return nil
933921}
934922
935- func (gpuTracker * gpu_tracker_t ) ReserveGPUs (gpus string , containerId string ) ([]int , error ) {
923+ func (gpuTracker * gpu_tracker_t ) ReserveGPUs (gpus string , containerId string ) (allocatedGPUs []int , err error ) {
936924 lock , err := acquireLock (gpuTracker .gpuTrackerLockFile )
937925 if err != nil {
938926 return nil , fmt .Errorf ("ReserveGPUs lock failed: %v" , err )
@@ -949,6 +937,7 @@ func (gpuTracker *gpu_tracker_t) ReserveGPUs(gpus string, containerId string) ([
949937 if r := recover (); r != nil {
950938 logger .Log .Printf ("Recovered in ReserveGPUs: %v" , r )
951939 err = fmt .Errorf ("Panic in ReserveGPUs: %v" , r )
940+ allocatedGPUs = []int {}
952941 }
953942 }()
954943
@@ -998,7 +987,6 @@ func (gpuTracker *gpu_tracker_t) ReserveGPUs(gpus string, containerId string) ([
998987 return []int {}, fmt .Errorf ("GPUs info is invalid. Please reset GPU Tracker.\n " )
999988 }
1000989
1001- var allocatedGPUs []int
1002990 var unavailableGPUs []int
1003991 for _ , gpuId := range validGPUs {
1004992 if gpusTrackerData .GPUsStatus [gpuId ].Accessibility == SHARED_ACCESS ||
@@ -1036,7 +1024,7 @@ func (gpuTracker *gpu_tracker_t) ReserveGPUs(gpus string, containerId string) ([
10361024 return allocatedGPUs , nil
10371025}
10381026
1039- func (gpuTracker * gpu_tracker_t ) ReleaseGPUs (containerId string ) error {
1027+ func (gpuTracker * gpu_tracker_t ) ReleaseGPUs (containerId string ) ( err error ) {
10401028 removeContainerId := func (containerId string , containerIds []string ) ([]string , bool ) {
10411029 for idx , id := range containerIds {
10421030 if id == containerId {
0 commit comments