Commit 217c757
committed
prov/rxm, prov/util: Update logic for source and dir_recv
When updating the unspec queue address information the peer_context's
connection is sometimes NULL. This results in segmentation faults on
av_insert so checking for it before accessing it fixes the issue.
However, this isn't a complete fix because it leaves potential for an
entry to get stuck in the wrong queue. The util_srx implementation is
overcomplicated for the non-directed receive case. To simplify this,
queuing will be limited to the unspecified unexpected queue when not
using directed receive. This is because we do not need to enable the
per-peer queues unless directed receive is requested. This makes sure
that entries do not get stuck in the wrong queue because they are all
living in the same one. It also simplifies the lookup for the
non-directed receive case.
Note: We do not want to fix this by forcing the rx_buf->conn to be set
for all incoming message. We want to avoid an extra lookup/set because
the conn is only needed for FI_SOURCE and FI_DIRECTED_RECV cases.1 parent e57cc58 commit 217c757
2 files changed
+5
-2
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
225 | 225 | | |
226 | 226 | | |
227 | 227 | | |
| 228 | + | |
| 229 | + | |
| 230 | + | |
228 | 231 | | |
229 | 232 | | |
230 | 233 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
346 | 346 | | |
347 | 347 | | |
348 | 348 | | |
349 | | - | |
| 349 | + | |
350 | 350 | | |
351 | 351 | | |
352 | 352 | | |
| |||
371 | 371 | | |
372 | 372 | | |
373 | 373 | | |
374 | | - | |
| 374 | + | |
375 | 375 | | |
376 | 376 | | |
377 | 377 | | |
| |||
0 commit comments