On Wed, Apr 29, 2020 at 11:46 AM J. Bruce Fields <bfields@xxxxxxxxxxxx> wrote: > > On Tue, Apr 28, 2020 at 10:12:29PM -0400, Olga Kornievskaia wrote: > > I also believe that client shouldn't be coded to a broken server. But > > in some of those cases, the client is not spec compliant, how is that > > a server bug? The case of SERVERFAULT of RESTOREFH I'm not sure what > > to make of it. I think it's more of a spec failure to address. It > > seems that server isn't allowed to fail after executing a > > non-idempotent operation but that's a hard requirement. I still think > > that client's best set of action is to ignore errors on RESTOREFH. > > Maybe. But how is a server hitting SERVERFAULT on RESTOREFH, anyway? > That's pretty weird. An example error is ENOMEM. A server is doing operations to lookup the filehandle (due to it being some other place) and needs to allocate memory. It's possible that resources are currently unavailable. Since RESTOREFH doesn't allow EDELAY, server can only return SERVERFAULT. But as I mentioned before, even if EDELAY was allowed, client only resends the whole compound which is incorrect in case of non-idempotent operations.