xuzhenbao opened a new pull request, #802: URL: https://github.com/apache/celix/pull/802
This PR is used to resolve the problem that the remote service endpoint is exported to the remote before it is fully established, which may cause the remote service invocation failure when it is just online. The reason for this issue is that in the original design, the `rsa_rpc_factory_t` service is dynamically and asynchronously tracked based on the service description information when the service is exported/imported, which may lead to the corresponding `rsa_rpc_factory_t` service cannot be tracked in time when the service is exported/imported, and finally causes remote service invocation failure. To resolve this problem, this PR makes the following changes: 1. The types of `rsa_rpc_factory_t` services supported by rsa are configured through the properties of the RSA bundle or environment variables. And the `remote_service_admin_service_t` service strongly depends on the `rsa_rpc_factory_t` service, which can ensure that the service export/import operation is not performed when the `rsa_rpc_factory_t` service is not ready. 2. The `rsa_rpc_factory_t`, `rsa_request_handler_service_t` and `rsa_request_handler_service_t` are merged into one `celix_rsa_rpc_factory_t` service, which can simplify the management and use of services, and reduce some service tracking operations in the implementation. In addition, this PR also fixes some other issues: 1. The use-after-free of the service instance when the service factory is unregistered. 2. The RPC communication failure when the shared memory id is 0. _notes:_ Considering that the next celix release version is 3.0.0, the compatibility issue is not considered in the current PR. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
