#2767 The sdap_op code always ends request with EAGAIN
Opened 3 years ago by jhrozek. Modified 2 years ago

I was working on code that would re-fetch the keytab on a particular error message from connection establishment but then I found out the sdap_id_op code always ends the request with EAGAIN on failure:

688         if (ret == EOK) {
689             DEBUG(SSSDBG_TRACE_ALL,
690                   "notify connected to op #%d\n", notify_count);
691             sdap_id_op_connect_req_complete(op, DP_ERR_OK, ret);
692         } else if (is_offline) {
693             DEBUG(SSSDBG_TRACE_ALL, "notify offline to op #%d\n", notify_count);
694             sdap_id_op_connect_req_complete(op, DP_ERR_OFFLINE, EAGAIN);
695         } else {
696             DEBUG(SSSDBG_TRACE_ALL,
697                   "notify error to op #%d: %d [%s]\n", notify_count, ret, strerror(ret));
698             sdap_id_op_connect_req_complete(op, DP_ERR_FATAL, ret);
699         }
700     }

In this case, we hit the middle condition and end up offline, not the fatal error. This is really unfriendly towards the user of this interface. We should allow specific error codes.

We should work on this fix in 1.14 when we work on the syncrepl.

Fields changed

milestone: NEEDS_TRIAGE => SSSD 1.14 beta

Fields changed

rhbz: => 0

The sdap_ops code still needs more love..

milestone: SSSD 1.14 beta => SSSD 1.15 beta

Metadata Update from @jhrozek:
- Issue set to the milestone: SSSD Future releases (no date set yet)

2 years ago

Login to comment on this ticket.