parent
1c47d0d67c
commit
2bb187af85
101
4320.patch
Normal file
101
4320.patch
Normal file
@ -0,0 +1,101 @@
|
||||
From a1524608b05e6c89e2b99f64923f064d888465ce Mon Sep 17 00:00:00 2001
|
||||
From: Hui Zhou <hzhou321@anl.gov>
|
||||
Date: Mon, 18 Nov 2019 14:52:55 -0600
|
||||
Subject: [PATCH 1/2] ch3: fix improper error handling from MPL_get_sockaddr
|
||||
|
||||
MPL layer does not directly return mpi_errno. Use MPIR_ERR_CHKANDJUMP
|
||||
macro to create the appropriate return code. See pmodels/mpich#4318.
|
||||
|
||||
Cherry-picked from [8d923937ec5d].
|
||||
---
|
||||
.../channels/nemesis/netmod/tcp/tcp_init.c | 23 +++++++++++--------
|
||||
1 file changed, 13 insertions(+), 10 deletions(-)
|
||||
|
||||
diff --git a/src/mpid/ch3/channels/nemesis/netmod/tcp/tcp_init.c b/src/mpid/ch3/channels/nemesis/netmod/tcp/tcp_init.c
|
||||
index 4c2383ed8f..bc58211eb6 100644
|
||||
--- a/src/mpid/ch3/channels/nemesis/netmod/tcp/tcp_init.c
|
||||
+++ b/src/mpid/ch3/channels/nemesis/netmod/tcp/tcp_init.c
|
||||
@@ -307,8 +307,9 @@ static int GetSockInterfaceAddr(int myRank, char *ifname, int maxIfname,
|
||||
if (MPIR_CVAR_NEMESIS_TCP_NETWORK_IFACE) {
|
||||
char s[100];
|
||||
int len;
|
||||
- mpi_errno = MPL_get_sockaddr_iface(MPIR_CVAR_NEMESIS_TCP_NETWORK_IFACE, p_addr);
|
||||
- MPIR_ERR_CHKANDJUMP1(mpi_errno, mpi_errno, MPI_ERR_OTHER, "**iface_notfound", "**iface_notfound %s", MPIR_CVAR_NEMESIS_TCP_NETWORK_IFACE);
|
||||
+ int ret = MPL_get_sockaddr_iface(MPIR_CVAR_NEMESIS_TCP_NETWORK_IFACE, p_addr);
|
||||
+ MPIR_ERR_CHKANDJUMP1(ret != 0, mpi_errno, MPI_ERR_OTHER, "**iface_notfound",
|
||||
+ "**iface_notfound %s", MPIR_CVAR_NEMESIS_TCP_NETWORK_IFACE);
|
||||
|
||||
MPL_sockaddr_to_str(p_addr, s, 100);
|
||||
MPL_DBG_MSG_FMT(MPIDI_CH3_DBG_CONNECT, VERBOSE, (MPL_DBG_FDEST,
|
||||
@@ -354,12 +355,13 @@ static int GetSockInterfaceAddr(int myRank, char *ifname, int maxIfname,
|
||||
|
||||
ifname_string = ifname;
|
||||
|
||||
- /* If we didn't find a specific name, then try to get an IP address
|
||||
- directly from the available interfaces, if that is supported on
|
||||
- this platform. Otherwise, we'll drop into the next step that uses
|
||||
- the ifname */
|
||||
- mpi_errno = MPL_get_sockaddr_iface( NULL, p_addr);
|
||||
- if (mpi_errno) MPIR_ERR_POP(mpi_errno);
|
||||
+ /* If we didn't find a specific name, then try to get an IP address
|
||||
+ * directly from the available interfaces, if that is supported on
|
||||
+ * this platform. Otherwise, we'll drop into the next step that uses
|
||||
+ * the ifname */
|
||||
+ int ret = MPL_get_sockaddr_iface(NULL, p_addr);
|
||||
+ MPIR_ERR_CHKANDJUMP1(ret != 0, mpi_errno, MPI_ERR_OTHER, "**iface_notfound",
|
||||
+ "**iface_notfound %s", NULL);
|
||||
ifaddrFound = 1;
|
||||
}
|
||||
else {
|
||||
@@ -369,8 +371,9 @@ static int GetSockInterfaceAddr(int myRank, char *ifname, int maxIfname,
|
||||
|
||||
/* If we don't have an IP address, try to get it from the name */
|
||||
if (!ifaddrFound) {
|
||||
- mpi_errno = MPL_get_sockaddr(ifname_string, p_addr);
|
||||
- MPIR_ERR_CHKANDJUMP2(mpi_errno, mpi_errno, MPI_ERR_OTHER, "**gethostbyname", "**gethostbyname %s %d", ifname_string, h_errno);
|
||||
+ int ret = MPL_get_sockaddr(ifname_string, p_addr);
|
||||
+ MPIR_ERR_CHKANDJUMP2(ret != 0, mpi_errno, MPI_ERR_OTHER, "**gethostbyname",
|
||||
+ "**gethostbyname %s %d", ifname_string, h_errno);
|
||||
}
|
||||
|
||||
fn_exit:
|
||||
|
||||
From 89157ad35c0885b4758d250d019f0f7cf0f59095 Mon Sep 17 00:00:00 2001
|
||||
From: Hui Zhou <hzhou321@anl.gov>
|
||||
Date: Wed, 15 Jan 2020 13:29:56 -0600
|
||||
Subject: [PATCH 2/2] pmi: fix a wrong condition checking return of
|
||||
MPL_get_sockaddr
|
||||
|
||||
Cherry-picked from [3e6af3c2fbaf]. See pmodels/mpich#4318.
|
||||
---
|
||||
src/mpl/include/mpl_sockaddr.h | 3 +++
|
||||
src/pmi/simple/simple_pmi.c | 2 +-
|
||||
2 files changed, 4 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/mpl/include/mpl_sockaddr.h b/src/mpl/include/mpl_sockaddr.h
|
||||
index c0eb749419..a9860c1353 100644
|
||||
--- a/src/mpl/include/mpl_sockaddr.h
|
||||
+++ b/src/mpl/include/mpl_sockaddr.h
|
||||
@@ -21,6 +21,9 @@
|
||||
|
||||
typedef struct sockaddr_storage MPL_sockaddr_t;
|
||||
|
||||
+/* The following functions when return an int, it returns 0 on success,
|
||||
+ * non-zero indicates error. It is consistent with posix socket functions.
|
||||
+ */
|
||||
void MPL_sockaddr_set_aftype(int type);
|
||||
int MPL_get_sockaddr(const char *s_hostname, MPL_sockaddr_t * p_addr);
|
||||
int MPL_get_sockaddr_direct(int type, MPL_sockaddr_t * p_addr);
|
||||
diff --git a/src/pmi/simple/simple_pmi.c b/src/pmi/simple/simple_pmi.c
|
||||
index df37a8689f..7f660bdac9 100644
|
||||
--- a/src/pmi/simple/simple_pmi.c
|
||||
+++ b/src/pmi/simple/simple_pmi.c
|
||||
@@ -881,7 +881,7 @@ static int PMII_Connect_to_pm(char *hostname, int portnum)
|
||||
int q_wait = 1;
|
||||
|
||||
ret = MPL_get_sockaddr(hostname, &addr);
|
||||
- if (!ret) {
|
||||
+ if (ret) {
|
||||
PMIU_printf(1, "Unable to get host entry for %s\n", hostname);
|
||||
return PMI_FAIL;
|
||||
}
|
@ -1,7 +1,7 @@
|
||||
Summary: A high-performance implementation of MPI
|
||||
Name: mpich
|
||||
Version: 3.3.2
|
||||
Release: 3%{?dist}
|
||||
Release: 4%{?dist}
|
||||
License: MIT
|
||||
URL: https://www.mpich.org/
|
||||
|
||||
@ -11,6 +11,8 @@ Source2: mpich.pth.py2
|
||||
Source3: mpich.pth.py3
|
||||
Patch0: mpich-modules.patch
|
||||
Patch1: 0001-Drop-real128.patch
|
||||
# fix for #1793563 and #1799473
|
||||
Patch2: https://github.com/pmodels/mpich/pull/4320.patch
|
||||
|
||||
BuildRequires: gcc
|
||||
BuildRequires: gcc-c++
|
||||
@ -103,6 +105,7 @@ mpich support for Python 3.
|
||||
%ifarch %{arm}
|
||||
%patch1 -p1
|
||||
%endif
|
||||
%patch2 -p1
|
||||
|
||||
%build
|
||||
CONFIGURE_OPTS=(
|
||||
@ -226,6 +229,9 @@ make check VERBOSE=1
|
||||
%{python3_sitearch}/%{name}.pth
|
||||
|
||||
%changelog
|
||||
* Fri Feb 14 2020 Christoph Junghans <junghans@votca.org> - 3.3.2-4
|
||||
- Add 4320.patch to fix #1793563 and #1799473
|
||||
|
||||
* Thu Jan 30 2020 Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> - 3.3.2-3
|
||||
- Add requirement for redhat-rpm-config (#1795674)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user