[LU-13779] Correct asymmetric route detection Created: 13/Jul/20 Updated: 24/Aug/22 Resolved: 11/Mar/21 |
|
| Status: | Resolved |
| Project: | Lustre |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | Lustre 2.15.0 |
| Type: | Bug | Priority: | Minor |
| Reporter: | Chris Horn | Assignee: | Chris Horn |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | None | ||
| Severity: | 3 |
| Rank (Obsolete): | 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 |
| Comments |
| Comment by Gerrit Updater [ 13/Jul/20 ] |
|
Chris Horn (chris.horn@hpe.com) uploaded a new patch: https://review.whamcloud.com/39349 |
| Comment by Gerrit Updater [ 10/Mar/21 ] |
|
Oleg Drokin (green@whamcloud.com) merged in patch https://review.whamcloud.com/39349/ |
| Comment by Peter Jones [ 11/Mar/21 ] |
|
Landed for 2.15 |