-
Notifications
You must be signed in to change notification settings - Fork 304
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
DAOS-16878 pool: Reduce unexpected DER_NO_SERVICEs
It has been observed that pool_svc_step_up_cb may encounter a -DER_NOTLEADER and pass it to ds_pool_failed_add. This error is a replica error and may be transient; it doesn't indicate that the PS is unavailable. This patch addresses the observed scenario by replacing the ds_pool_failed_add call from pool_svc_step_up_cb with a special up-but-with-error mode for the PS, which can only serve requests by returning an error. - Add pool_svc.ps_error for indicating the special up-but-with-error mode. Check and return it in pool_svc_lookup_leader. Handle it specially in callers of pool_svc_lookup. - Use this new mode only for a conservative set of errors. Including an error by mistake is worse than missing an error. - Add pool UUIDs to a few log messages to make future debugging easier. The ds_pool_failed_add mechanism should be used for replica errors only. And, such errors should not immediately stop PS clients from trying other replicas. This issue is relatively tricky and will not be addressed by the current patch. Features: pool Skip-nlt: true Signed-off-by: Li Wei <[email protected]> Required-githooks: true
- Loading branch information
Showing
1 changed file
with
89 additions
and
38 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters