Uploaded image for project: 'Lustre'
  1. Lustre
  2. LU-5979

RPC size compatibility code

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: Minor Minor
    • Lustre 2.8.0
    • Lustre 2.8.0
    • None
    • 3
    • 16692

      From Lustre code comments:

      For interoperability with 1.8 and 2.0 clients/servers. The RPC verification code allows larger RPC buffers, but not smaller buffers. Until we no longer need to keep compatibility with older servers/clients we can only check that the buffer size is at least as large as obd_connect_data_v1. That is not in itself harmful, since the chance of just corrupting this field is low. See JIRA LU-16 for details.

      In Lustre 2.8, tag 2.7.53 and above, this RPC size compatibility is no longer maintained. If we want to maintain the RPC size compatibility, the following code should be modified else it should be removed:

      In file lustre/ptlrpc/layout.c, the definition of the RMF_CONNECT_DATA struct contains:

      #if LUSTRE_VERSION_CODE > OBD_OCD_VERSION(2, 7, 53, 0)
      		    sizeof(struct obd_connect_data),
      #else
      /* For interoperability with 1.8 and 2.0 clients/servers.
      * The RPC verification code allows larger RPC buffers, but not
      * smaller buffers.  Until we no longer need to keep compatibility
      * with older servers/clients we can only check that the buffer
      * size is at least as large as obd_connect_data_v1.  That is not
      * not in itself harmful, since the chance of just corrupting this
      * field is low.  See JIRA LU-16 for details. */
      		    sizeof(struct obd_connect_data_v1),
      #endif
      

            utopiabound Nathaniel Clark
            jamesanunez James Nunez (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: