mtl-portals4: don't finalize flow control if Portals4 was not initialized
This commit fixes a segfault in mtl-portals4 finalize(). The segfault occurs if finalize() is called without any calls to add_procs(). This commit resolves the segfault by skipping the flow control fini() call if Portals4 was not initialized. Signed-off-by: Todd Kordenbrock <thkgcode@gmail.com> (cherry picked from commit e7b867c044f8b776b75f3c6d917745c06237743e)
Этот коммит содержится в:
родитель
3652cd93c5
Коммит
1f5a79bbd4
@ -9,7 +9,7 @@
|
||||
* University of Stuttgart. All rights reserved.
|
||||
* Copyright (c) 2004-2005 The Regents of the University of California.
|
||||
* All rights reserved.
|
||||
* Copyright (c) 2010-2015 Sandia National Laboratories. All rights reserved.
|
||||
* Copyright (c) 2010-2019 Sandia National Laboratories. All rights reserved.
|
||||
* Copyright (c) 2014 Intel, Inc. All rights reserved.
|
||||
* $COPYRIGHT$
|
||||
*
|
||||
@ -551,12 +551,12 @@ ompi_mtl_portals4_finalize(struct mca_mtl_base_module_t *mtl)
|
||||
if (0 == ompi_mtl_portals4.need_init) {
|
||||
opal_progress_unregister(ompi_mtl_portals4_progress);
|
||||
while (0 != ompi_mtl_portals4_progress()) { }
|
||||
}
|
||||
|
||||
#if OMPI_MTL_PORTALS4_FLOW_CONTROL
|
||||
ompi_mtl_portals4_flowctl_fini();
|
||||
ompi_mtl_portals4_flowctl_fini();
|
||||
#endif
|
||||
ompi_mtl_portals4_recv_short_fini();
|
||||
ompi_mtl_portals4_recv_short_fini();
|
||||
}
|
||||
|
||||
if (!PtlHandleIsEqual(ompi_mtl_portals4.long_overflow_me_h, PTL_INVALID_HANDLE)) {
|
||||
PtlMEUnlink(ompi_mtl_portals4.long_overflow_me_h);
|
||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user