[PATCH] rpc_client: retry open on STATUS_PIPE_NOT_AVAILABLE
David Disseldorp
ddiss at suse.de
Tue Mar 4 07:44:29 MST 2014
Hi Metze,
On Tue, 04 Mar 2014 12:34:58 +0100, Stefan (metze) Metzmacher wrote:
> > Windows Server starts some named pipe services on demand, and responds
> > to initial open requests with STATUS_PIPE_NOT_AVAILABLE. The FssagentRpc
> > named pipe on Windows Server 2012 exhibits this behaviour.
> >
> > This change sees rpcclient retry named pipe open requests when the
> > server responds with STATUS_PIPE_NOT_AVAILABLE. The retry logic is
> > contained in an asynchronous tevent_timer callback, to allow for
> > non-blocking callers.
>
> Can you explain this more detailed please?
>
> What triggers the start of the service?
>
> Do you have some captures?
A create&x on the FssagentRpc named pipe triggers the start of the
FSRVP service. Such requests receive STATUS_PIPE_NOT_AVAILABLE errors
until the service is available.
I'll send you a capture off-list.
> Is STATUS_PIPE_NOT_AVAILABLE only returned if the service already
> started, but is not ready to handle io?
>
> Or is it returned for any non existing named pipe?
The MS specs don't have anything definitive in this regard, MS-ERRREF
states STATUS_PIPE_NOT_AVAILABLE = An instance of a named pipe cannot be
found in the listening state.
Some local tests against Windows Server 2012 gave:
- An open request against a non-existent named pipe retrieves a
STATUS_OBJECT_NAME_NOT_FOUND error.
- An open request against the FssagentRpc named pipe when the FSRVP
service is explicitly stopped retrieves a STATUS_INVALID_PIPE_STATE
error.
Cheers, David
More information about the samba-technical
mailing list