Skip to content

Commit

Permalink
fix so server functions code resets by sessions
Browse files Browse the repository at this point in the history
  • Loading branch information
viktorvaladi committed Jan 31, 2025
1 parent 23a2cdd commit e018d14
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 3 deletions.
2 changes: 0 additions & 2 deletions fedn/network/combiner/hooks/hooks.py
Original file line number Diff line number Diff line change
Expand Up @@ -122,8 +122,6 @@ def HandleProvidedFunctions(self, request: fedn.ProvidedFunctionsResponse, conte
:rtype: :class:`fedn.network.grpc.fedn_pb2.ProvidedFunctionsResponse`
"""
logger.info("Receieved provided functions request.")
if self.implemented_functions is not None:
return fedn.ProvidedFunctionsResponse(available_functions=self.implemented_functions)
server_functions_code = request.function_code
self.server_functions_code = server_functions_code
self.implemented_functions = {}
Expand Down
6 changes: 5 additions & 1 deletion fedn/network/combiner/roundhandler.py
Original file line number Diff line number Diff line change
Expand Up @@ -98,6 +98,7 @@ def __init__(self, server):
self.server_functions = inspect.getsource(ServerFunctions)
self.update_handler = UpdateHandler(modelservice=modelservice)
self.hook_interface = CombinerHookInterface()
self.session_id = ""

def set_aggregator(self, aggregator):
self.aggregator = get_aggregator(aggregator, self.update_handler)
Expand Down Expand Up @@ -324,7 +325,10 @@ def execute_training_round(self, config):
# Download model to update and set in temp storage.
self.stage_model(config["model_id"])

provided_functions = self.hook_interface.provided_functions(self.server_functions)
# If new session, update server function code and check which functions are provided
if self.session_id != config["session_id"]:
self.session_id = config["session_id"]
provided_functions = self.hook_interface.provided_functions(self.server_functions)

if provided_functions.get("client_selection", False):
clients = self.hook_interface.client_selection(clients=self.server.get_active_trainers())
Expand Down

0 comments on commit e018d14

Please sign in to comment.