[Midnightbsd-cvs] [MidnightBSD/src] e110a7: Change the xid for client side krpc over UDP to

Lucas Holt noreply at github.com
Sun Nov 22 01:57:58 EST 2020


  Branch: refs/heads/master
  Home:   https://github.com/MidnightBSD/src
  Commit: e110a7047c05a0733f7afa98acc664b80045e467
      https://github.com/MidnightBSD/src/commit/e110a7047c05a0733f7afa98acc664b80045e467
  Author: Lucas Holt <luke at foolishgames.com>
  Date:   2020-11-22 (Sun, 22 Nov 2020)

  Changed paths:
    M sys/rpc/clnt_dg.c

  Log Message:
  -----------
  Change the xid for client side krpc over UDP to
a global value.

Without this patch, the xid used for the client side krpc requests over
UDP was initialized for each "connection". A "connection" for UDP is
rather sketchy and for the kernel NLM a new one is created every 2minutes.
A problem with client side interoperability with a Netapp server for the NLM
was reported and it is believed to be caused by reuse of the same xid.
Although this was never completely diagnosed by the reporter, I could see
how the same xid might get reused, since it is initialized to a value
based on the TOD clock every two minutes.
I suspect initializing the value for every "connection" was inherited from
userland library code, where having a global xid was not practical.
However, implementing a global "xid" for the kernel rpc is straightforward
and will ensure that an xid value is not reused for a long time. This
patch does that and is hoped it will fix the Netapp interoperability
problem.

Obtained from: FreeBSD




More information about the Midnightbsd-cvs mailing list