@@ -37,6 +37,14 @@ class BrokenResourceError(ExporterError):
3737 pass
3838
3939
40+ class UnknownResourceError (ExporterError ):
41+ pass
42+
43+
44+ class InvalidResourceRequestError (ExporterError ):
45+ pass
46+
47+
4048def log_subprocess_kernel_stack (logger , child ):
4149 if child .poll () is not None : # nothing to check if no longer running
4250 return
@@ -889,8 +897,9 @@ async def message_pump(self):
889897 out_message .set_acquired_request .resource_name ,
890898 )
891899 success = True
892- except BrokenResourceError as e :
900+ except ( BrokenResourceError , InvalidResourceRequestError , UnknownResourceError ) as e :
893901 reason = e .args [0 ]
902+ logging .warning ("set_acquired_request failed: %s" , reason )
894903 finally :
895904 in_message = labgrid_coordinator_pb2 .ExporterInMessage ()
896905 in_message .response .success = success
@@ -924,8 +933,14 @@ async def message_pump(self):
924933 async def acquire (self , group_name , resource_name , place_name ):
925934 resource = self .groups .get (group_name , {}).get (resource_name )
926935 if resource is None :
927- logging .error ("acquire request for unknown resource %s/%s by %s" , group_name , resource_name , place_name )
928- return
936+ raise UnknownResourceError (
937+ f"acquire request for unknown resource { group_name } /{ resource_name } by { place_name } "
938+ )
939+
940+ if resource .acquired :
941+ raise InvalidResourceRequestError (
942+ f"Resource { group_name } /{ resource_name } is already acquired by { resource .acquired } "
943+ )
929944
930945 try :
931946 resource .acquire (place_name )
@@ -935,8 +950,10 @@ async def acquire(self, group_name, resource_name, place_name):
935950 async def release (self , group_name , resource_name ):
936951 resource = self .groups .get (group_name , {}).get (resource_name )
937952 if resource is None :
938- logging .error ("release request for unknown resource %s/%s" , group_name , resource_name )
939- return
953+ raise UnknownResourceError (f"release request for unknown resource { group_name } /{ resource_name } " )
954+
955+ if not resource .acquired :
956+ raise InvalidResourceRequestError (f"Resource { group_name } /{ resource_name } is not acquired" )
940957
941958 try :
942959 resource .release ()
0 commit comments