librpc: Lower dcesrv_call_dispatch_local() errors from DBG_ERR to DBG_INFO
authorSamuel Cabrero <scabrero@samba.org>
Mon, 1 Mar 2021 16:26:24 +0000 (17:26 +0100)
committerJeremy Allison <jra@samba.org>
Sat, 6 Mar 2021 02:20:05 +0000 (02:20 +0000)
Before merging the s3 and s4 RPC servers the rpcint_dispatch function
was not logging any error.

This commit lowers from DBG_ERR to DBG_INFO the importance of error
messages when dispatching local RPC calls. There are some situations
where RPC functions return RPC faults and this is not a fatal condition.
One example is _lsa_QueryInfoPolicy2.

This change prevents a noisy error logged when winbindd tries to connect to
its primary domain in the nt4_member and ad_member test environments:

[2021/03/01 16:49:38.486111,  0, pid=12456] ../../librpc/rpc/dcesrv_core.c:2990(dcesrv_call_dispatch_local)
  dcesrv_call_dispatch_local: DCE/RPC fault in call lsarpc:2E - DCERPC_NCA_S_OP_RNG_ERROR

Signed-off-by: Samuel Cabrero <scabrero@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
librpc/rpc/dcesrv_core.c

index a51467c87c054c341a9562c8117468e277ecd774..7a20ffe71a0e2899ee4fdae7628c080911b813cd 100644 (file)
@@ -2978,19 +2978,19 @@ _PUBLIC_ NTSTATUS dcesrv_call_dispatch_local(struct dcesrv_call_state *call)
        /* unravel the NDR for the packet */
        status = call->context->iface->ndr_pull(call, call, pull, &call->r);
        if (!NT_STATUS_IS_OK(status)) {
-               DBG_ERR("DCE/RPC fault in call %s:%02X - %s\n",
-                       call->context->iface->name,
-                       call->pkt.u.request.opnum,
-                       dcerpc_errstr(call, call->fault_code));
+               DBG_INFO("DCE/RPC fault in call %s:%02X - %s\n",
+                        call->context->iface->name,
+                        call->pkt.u.request.opnum,
+                        dcerpc_errstr(call, call->fault_code));
                return dcerpc_fault_to_nt_status(call->fault_code);
        }
 
        status = call->context->iface->local(call, call, call->r);
        if (!NT_STATUS_IS_OK(status)) {
-               DBG_ERR("DCE/RPC fault in call %s:%02X - %s\n",
-                       call->context->iface->name,
-                       call->pkt.u.request.opnum,
-                       dcerpc_errstr(call, call->fault_code));
+               DBG_INFO("DCE/RPC fault in call %s:%02X - %s\n",
+                        call->context->iface->name,
+                        call->pkt.u.request.opnum,
+                        dcerpc_errstr(call, call->fault_code));
                return dcerpc_fault_to_nt_status(call->fault_code);
        }
 
@@ -3000,10 +3000,10 @@ _PUBLIC_ NTSTATUS dcesrv_call_dispatch_local(struct dcesrv_call_state *call)
        /* call the reply function */
        status = call->context->iface->reply(call, call, call->r);
        if (!NT_STATUS_IS_OK(status)) {
-               DBG_ERR("DCE/RPC fault in call %s:%02X - %s\n",
-                       call->context->iface->name,
-                       call->pkt.u.request.opnum,
-                       dcerpc_errstr(call, call->fault_code));
+               DBG_INFO("DCE/RPC fault in call %s:%02X - %s\n",
+                        call->context->iface->name,
+                        call->pkt.u.request.opnum,
+                        dcerpc_errstr(call, call->fault_code));
                return dcerpc_fault_to_nt_status(call->fault_code);
        }
 
@@ -3016,10 +3016,10 @@ _PUBLIC_ NTSTATUS dcesrv_call_dispatch_local(struct dcesrv_call_state *call)
 
        status = call->context->iface->ndr_push(call, call, push, call->r);
        if (!NT_STATUS_IS_OK(status)) {
-               DBG_ERR("DCE/RPC fault in call %s:%02X - %s\n",
-                       call->context->iface->name,
-                       call->pkt.u.request.opnum,
-                       dcerpc_errstr(call, call->fault_code));
+               DBG_INFO("DCE/RPC fault in call %s:%02X - %s\n",
+                        call->context->iface->name,
+                        call->pkt.u.request.opnum,
+                        dcerpc_errstr(call, call->fault_code));
                return dcerpc_fault_to_nt_status(call->fault_code);
        }