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

Correct asymmetric route detection

    XMLWordPrintable

Details

    • Bug
    • Status: Resolved
    • Minor
    • Resolution: Fixed
    • None
    • Lustre 2.15.0
    • None
    • 3
    • 9223372036854775807

    Description

      In lnet_parse():

              if (lnet_drop_asym_route && for_me &&
                  LNET_NIDNET(src_nid) != LNET_NIDNET(from_nid)) {
                      struct lnet_net *net;
                      struct lnet_remotenet *rnet;
                      bool found = true;
      ...
                      rnet = lnet_find_rnet_locked(LNET_NIDNET(src_nid));
                      if (rnet) {
      ...
                      }
                      lnet_net_unlock(cpt);
                      if (!found) {
      ...
                              goto drop;
      

      Failure to lookup the remote net for LNET_NIDNET(src_nid) indicates an asymmetric route, but we do not drop the message in this case.

      another problem with this code: there's no guarantee that we'll have a route->lr_lnet that matches the net of ni->ni_nid.

      It would be better to move this check to after we have looked up the lpni of from_nid. Then, we can look at just the routes associated with the gateway that owns the lpni. If one of those routes has lr_net == LNET_NIDNET(src_nid), then the route is symmetrical

      Attachments

        Activity

          People

            hornc Chris Horn
            hornc Chris Horn
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: