we support hitless restart of the grpc service for any configuration changes and policy audit logging interface has the following comment.
// Registers an audit logger factory. This should only be called during
// initialization.
void RegisterAuditLoggerFactory(std::unique_ptr<AuditLoggerFactory> factory);
Hitless restart of the service for any changes in the policy audit logging name is running into an assert and requires a process restart.
Init sequence:
RegisterAuditLoggerFactory(...)
server_data = new ::pi::server::ServerData();
server_data->builder.experimental().SetAuthorizationPolicyProvider(provider);
server_data->builder.BuildAndStart();
shutdown sequence:
server_data->server->Shutdown(<5 sec deadline>);
delete server_data;
Issue:
E0706 17:12:26.951911933 385451 audit_logging.cc:57] ASSERTION FAILED: registry->logger_factories_map_.emplace(name, std::move(factory)).second
Is there any way to avoid process restart for any of the policy audit logging config changes? Appreciate your input.
Thank you,
Ramesh