Skip to content

Commit 17c4cf0

Browse files
author
Ralph Castain
committed
Install PMIx v3.0.0 release
Signed-off-by: Ralph Castain <rhc@open-mpi.org>
1 parent 018ca4e commit 17c4cf0

File tree

8 files changed

+119
-50
lines changed

8 files changed

+119
-50
lines changed

opal/mca/pmix/pmix3x/pmix/LICENSE

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ Copyright (c) 2006-2010 Sun Microsystems, Inc. All rights reserved.
2626
Copyright (c) 2006-2010 The University of Houston. All rights reserved.
2727
Copyright (c) 2006-2009 Myricom, Inc. All rights reserved.
2828
Copyright (c) 2007-2008 UT-Battelle, LLC. All rights reserved.
29-
Copyright (c) 2007-2010 IBM Corporation. All rights reserved.
29+
Copyright (c) 2007-2018 IBM Corporation. All rights reserved.
3030
Copyright (c) 1998-2005 Forschungszentrum Juelich, Juelich Supercomputing
3131
Centre, Federal Republic of Germany
3232
Copyright (c) 2005-2008 ZIH, TU Dresden, Federal Republic of Germany
@@ -36,7 +36,7 @@ Copyright (c) 2008-2009 Institut National de Recherche en
3636
Informatique. All rights reserved.
3737
Copyright (c) 2007 Lawrence Livermore National Security, LLC.
3838
All rights reserved.
39-
Copyright (c) 2007-2009 Mellanox Technologies. All rights reserved.
39+
Copyright (c) 2007-2018 Mellanox Technologies. All rights reserved.
4040
Copyright (c) 2006-2010 QLogic Corporation. All rights reserved.
4141
Copyright (c) 2008-2010 Oak Ridge National Labs. All rights reserved.
4242
Copyright (c) 2006-2010 Oracle and/or its affiliates. All rights reserved.
@@ -45,7 +45,7 @@ Copyright (c) 2010 ARM ltd. All rights reserved.
4545
Copyright (c) 2010-2011 Alex Brick <bricka@ccs.neu.edu>. All rights reserved.
4646
Copyright (c) 2012 The University of Wisconsin-La Crosse. All rights
4747
reserved.
48-
Copyright (c) 2013-2014 Intel, Inc. All rights reserved.
48+
Copyright (c) 2013-2018 Intel, Inc. All rights reserved.
4949
Copyright (c) 2011-2014 NVIDIA Corporation. All rights reserved.
5050

5151
$COPYRIGHT$

opal/mca/pmix/pmix3x/pmix/NEWS

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,8 +60,21 @@ current release as well as the "stable" bug fix release branch.
6060
channels, including local/remote syslog and email. Added
6161
attributes to query available channels and to tag and
6262
format output.
63+
- Fix several memory and file descriptor leaks
6364

6465

66+
2.1.2 -- TBD
67+
----------------------
68+
- Added PMIX_VERSION_RELEASE string to pmix_version.h
69+
- Added PMIX_SPAWNED and PMIX_PARENT_ID keys to all procs
70+
started via PMIx_Spawn
71+
- Fixed faulty compares in PMI/PMI2 tests
72+
- Fixed bug in direct modex for data on remote node
73+
- Correctly transfer all cached job info to the client's
74+
shared memory region upon first connection
75+
- Fix potential deadlock in PMIx_server_init in an error case
76+
- Fix uninitialized variable
77+
- Fix several memory and file descriptor leaks
6578

6679

6780
2.1.1 -- 23 Feb 2018

opal/mca/pmix/pmix3x/pmix/README

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ Copyright (c) 2007 Myricom, Inc. All rights reserved.
1515
Copyright (c) 2008 IBM Corporation. All rights reserved.
1616
Copyright (c) 2010 Oak Ridge National Labs. All rights reserved.
1717
Copyright (c) 2011 University of Houston. All rights reserved.
18-
Copyright (c) 2013-2017 Intel, Inc. All rights reserved.
18+
Copyright (c) 2013-2018 Intel, Inc. All rights reserved.
1919
$COPYRIGHT$
2020

2121
Additional copyrights may follow
@@ -25,13 +25,14 @@ $HEADER$
2525
===========================================================================
2626

2727
When submitting questions and problems, be sure to include as much
28-
extra information as possible. This web page details all the
29-
information that we request in order to provide assistance:
28+
extra information as possible. The issues template on the
29+
GitHub repo provides directions:
3030

31-
http://pmix.github.io/pmix/community/help/
31+
http://github.com/pmix/pmix/issues
3232

3333
The best way to report bugs, send comments, or ask questions is to
34-
sign up on the PMIx mailing list, which is hosted by GoogleGroups:
34+
open an issue on the repo. Alternatively, you are welcome to sign
35+
up for the developer/user mailing list:
3536

3637
pmix@googlegroups.com
3738

@@ -48,7 +49,7 @@ Thanks for your time.
4849

4950
More information is available in the PMIx FAQ:
5051

51-
http://pmix.github.io/pmix/faq/
52+
https://pmix.org/support
5253

5354
We are in early days, so please be patient - info will grow as questions
5455
are addressed.
@@ -63,7 +64,7 @@ General notes
6364

6465
- The majority of PMIx's documentation is here in this file, the
6566
included man pages, and on the web site FAQ
66-
(http://pmix.github.io/pmix/faq). This will eventually be
67+
(https://pmix.org/support). This will eventually be
6768
supplemented with cohesive installation and user documentation files.
6869

6970
- Systems that have been tested are:
@@ -312,7 +313,7 @@ Common Questions
312313
Many common questions about building and using PMIx are answered
313314
on the FAQ:
314315

315-
http://pmix.github.io/pmix/faq/
316+
https://pmix.org/support
316317

317318
===========================================================================
318319

@@ -323,10 +324,10 @@ Found a bug? Got a question? Want to make a suggestion? Want to
323324
contribute to PMIx? Please let us know!
324325

325326
When submitting questions and problems, be sure to include as much
326-
extra information as possible. This web page details all the
327-
information that we request in order to provide assistance:
327+
extra information as possible. Again, the issues template is your
328+
friend in this regard!
328329

329-
http://pmix.github.io/pmix/community/help/
330+
https://github.com/pmix/pmix/issues
330331

331332
Questions and comments should generally be sent to the PMIx mailing
332333
list (pmix@googlegroups.com). Because of spam, only
@@ -338,4 +339,4 @@ user's list:
338339

339340
https://groups.google.com/d/forum/pmix
340341

341-
Make today an PMIx day!
342+
Make today a PMIx day!

opal/mca/pmix/pmix3x/pmix/VERSION

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ greek=
3030
# command, or with the date (if "git describe" fails) in the form of
3131
# "date<date>".
3232

33-
repo_rev=git7b5106a
33+
repo_rev=gitffba520
3434

3535
# If tarball_version is not empty, it is used as the version string in
3636
# the tarball filename, regardless of all other versions listed in
@@ -44,7 +44,7 @@ tarball_version=
4444

4545
# The date when this release was created
4646

47-
date="Jun 19, 2018"
47+
date="Jul 01, 2018"
4848

4949
# The shared library version of each of PMIx's public libraries.
5050
# These versions are maintained in accordance with the "Library

opal/mca/pmix/pmix3x/pmix/src/mca/gds/ds12/gds_dstore.c

Lines changed: 19 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -2885,6 +2885,8 @@ static pmix_status_t dstore_del_nspace(const char* nspace)
28852885
ns_map_t *ns_map;
28862886
session_t *session_tbl = NULL;
28872887
ns_track_elem_t *trk = NULL;
2888+
int dstor_track_idx;
2889+
size_t session_tbl_idx;
28882890

28892891
PMIX_OUTPUT_VERBOSE((10, pmix_gds_base_framework.framework_output,
28902892
"%s:%d:%s delete nspace `%s`", __FILE__, __LINE__, __func__, nspace));
@@ -2893,7 +2895,8 @@ static pmix_status_t dstore_del_nspace(const char* nspace)
28932895
rc = PMIX_ERR_NOT_AVAILABLE;
28942896
return rc;
28952897
}
2896-
2898+
dstor_track_idx = ns_map_data->track_idx;
2899+
session_tbl_idx = ns_map_data->tbl_idx;
28972900
size = pmix_value_array_get_size(_ns_map_array);
28982901
ns_map = PMIX_VALUE_ARRAY_GET_BASE(_ns_map_array, ns_map_t);
28992902

@@ -2905,30 +2908,29 @@ static pmix_status_t dstore_del_nspace(const char* nspace)
29052908
continue;
29062909
}
29072910
in_use++;
2908-
break;
2909-
}
2910-
}
2911-
2912-
if(ns_map_data->track_idx >= 0) {
2913-
trk = pmix_value_array_get_item(_ns_track_array, ns_map_data->track_idx);
2914-
if((ns_map_data->track_idx + 1) > (int)pmix_value_array_get_size(_ns_track_array)) {
2915-
rc = PMIX_ERR_VALUE_OUT_OF_BOUNDS;
2916-
PMIX_ERROR_LOG(rc);
2917-
goto exit;
2918-
}
2919-
if (true == trk->in_use) {
2920-
PMIX_DESTRUCT(trk);
29212911
}
29222912
}
29232913

29242914
/* A lot of nspaces may be using same session info
29252915
* session record can only be deleted once all references are gone */
29262916
if (!in_use) {
29272917
session_tbl = PMIX_VALUE_ARRAY_GET_BASE(_session_array, session_t);
2928-
29292918
PMIX_OUTPUT_VERBOSE((10, pmix_gds_base_framework.framework_output,
2930-
"%s:%d:%s delete session for jobuid: %d", __FILE__, __LINE__, __func__, session_tbl[ns_map_data->tbl_idx].jobuid));
2931-
_esh_session_release(&session_tbl[ns_map_data->tbl_idx]);
2919+
"%s:%d:%s delete session for jobuid: %d",
2920+
__FILE__, __LINE__, __func__, session_tbl[session_tbl_idx].jobuid));
2921+
size = pmix_value_array_get_size(_ns_track_array);
2922+
if (size && (dstor_track_idx >= 0)) {
2923+
if((dstor_track_idx + 1) > size) {
2924+
rc = PMIX_ERR_VALUE_OUT_OF_BOUNDS;
2925+
PMIX_ERROR_LOG(rc);
2926+
goto exit;
2927+
}
2928+
trk = pmix_value_array_get_item(_ns_track_array, dstor_track_idx);
2929+
if (true == trk->in_use) {
2930+
PMIX_DESTRUCT(trk);
2931+
}
2932+
}
2933+
_esh_session_release(&session_tbl[session_tbl_idx]);
29322934
}
29332935
exit:
29342936
return rc;

opal/mca/pmix/pmix3x/pmix/src/server/pmix_server.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1821,10 +1821,10 @@ static void clct_complete(pmix_status_t status,
18211821
static void clct(int sd, short args, void *cbdata)
18221822
{
18231823
pmix_inventory_rollup_t *cd = (pmix_inventory_rollup_t*)cbdata;
1824+
pmix_status_t rc;
18241825

18251826
#if PMIX_HAVE_HWLOC
18261827
/* if we don't know our topology, we better get it now */
1827-
pmix_status_t rc;
18281828
if (NULL == pmix_hwloc_topology) {
18291829
if (PMIX_SUCCESS != (rc = pmix_hwloc_get_topology(NULL, 0))) {
18301830
PMIX_ERROR_LOG(rc);

opal/mca/pmix/pmix3x/pmix/test/simple/Makefile.am

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -27,91 +27,91 @@ noinst_PROGRAMS = simptest simpclient simppub simpdyn simpft simpdmodex \
2727
test_pmix simptool simpdie simplegacy simptimeout \
2828
gwtest gwclient stability quietclient
2929

30-
simptest_SOURCES = \
30+
simptest_SOURCES = $(headers) \
3131
simptest.c
3232
simptest_LDFLAGS = $(PMIX_PKG_CONFIG_LDFLAGS)
3333
simptest_LDADD = \
3434
$(top_builddir)/src/libpmix.la
3535

36-
simpclient_SOURCES = \
36+
simpclient_SOURCES = $(headers) \
3737
simpclient.c
3838
simpclient_LDFLAGS = $(PMIX_PKG_CONFIG_LDFLAGS)
3939
simpclient_LDADD = \
4040
$(top_builddir)/src/libpmix.la
4141

42-
simppub_SOURCES = \
42+
simppub_SOURCES = $(headers) \
4343
simppub.c
4444
simppub_LDFLAGS = $(PMIX_PKG_CONFIG_LDFLAGS)
4545
simppub_LDADD = \
4646
$(top_builddir)/src/libpmix.la
4747

48-
simpdmodex_SOURCES = \
48+
simpdmodex_SOURCES = $(headers) \
4949
simpdmodex.c
5050
simpdmodex_LDFLAGS = $(PMIX_PKG_CONFIG_LDFLAGS)
5151
simpdmodex_LDADD = \
5252
$(top_builddir)/src/libpmix.la
5353

54-
simpft_SOURCES = \
54+
simpft_SOURCES = $(headers) \
5555
simpft.c
5656
simpft_LDFLAGS = $(PMIX_PKG_CONFIG_LDFLAGS)
5757
simpft_LDADD = \
5858
$(top_builddir)/src/libpmix.la
5959

60-
simpdyn_SOURCES = \
60+
simpdyn_SOURCES = $(headers) \
6161
simpdyn.c
6262
simpdyn_LDFLAGS = $(PMIX_PKG_CONFIG_LDFLAGS)
6363
simpdyn_LDADD = \
6464
$(top_builddir)/src/libpmix.la
6565

66-
test_pmix_SOURCES = \
66+
test_pmix_SOURCES = $(headers) \
6767
test_pmix.c
6868
test_pmix_LDFLAGS = $(PMIX_PKG_CONFIG_LDFLAGS)
6969
test_pmix_LDADD = \
7070
$(top_builddir)/src/libpmix.la
7171

72-
simptool_SOURCES = \
72+
simptool_SOURCES = $(headers) \
7373
simptool.c
7474
simptool_LDFLAGS = $(PMIX_PKG_CONFIG_LDFLAGS)
7575
simptool_LDADD = \
7676
$(top_builddir)/src/libpmix.la
7777

78-
simpdie_SOURCES = \
78+
simpdie_SOURCES = $(headers) \
7979
simpdie.c
8080
simpdie_LDFLAGS = $(PMIX_PKG_CONFIG_LDFLAGS)
8181
simpdie_LDADD = \
8282
$(top_builddir)/src/libpmix.la
8383

84-
simplegacy_SOURCES = \
84+
simplegacy_SOURCES = $(headers) \
8585
simplegacy.c
8686
simplegacy_LDFLAGS = $(PMIX_PKG_CONFIG_LDFLAGS)
8787
simplegacy_LDADD = \
8888
$(top_builddir)/src/libpmix.la
8989

90-
simptimeout_SOURCES = \
90+
simptimeout_SOURCES = $(headers) \
9191
simptimeout.c
9292
simptimeout_LDFLAGS = $(PMIX_PKG_CONFIG_LDFLAGS)
9393
simptimeout_LDADD = \
9494
$(top_builddir)/src/libpmix.la
9595

96-
gwtest_SOURCES = \
96+
gwtest_SOURCES = $(headers) \
9797
gwtest.c
9898
gwtest_LDFLAGS = $(PMIX_PKG_CONFIG_LDFLAGS)
9999
gwtest_LDADD = \
100100
$(top_builddir)/src/libpmix.la
101101

102-
gwclient_SOURCES = \
102+
gwclient_SOURCES = $(headers) \
103103
gwclient.c
104104
gwclient_LDFLAGS = $(PMIX_PKG_CONFIG_LDFLAGS)
105105
gwclient_LDADD = \
106106
$(top_builddir)/src/libpmix.la
107107

108-
stability_SOURCES = \
108+
stability_SOURCES = $(headers) \
109109
stability.c
110110
stability_LDFLAGS = $(PMIX_PKG_CONFIG_LDFLAGS)
111111
stability_LDADD = \
112112
$(top_builddir)/src/libpmix.la
113113

114-
quietclient_SOURCES = \
114+
quietclient_SOURCES = $(headers) \
115115
quietclient.c
116116
quietclient_LDFLAGS = $(PMIX_PKG_CONFIG_LDFLAGS)
117117
quietclient_LDADD = \
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
/*
2+
* Copyright (c) 2018 Intel, Inc. All rights reserved.
3+
* $COPYRIGHT$
4+
*
5+
* Additional copyrights may follow
6+
*
7+
* $HEADER$
8+
*
9+
*/
10+
11+
#include <stdio.h>
12+
#include <stdlib.h>
13+
#include <unistd.h>
14+
#include <time.h>
15+
#include <pthread.h>
16+
17+
typedef struct {
18+
pthread_mutex_t mutex;
19+
pthread_cond_t cond;
20+
volatile bool active;
21+
pmix_status_t status;
22+
} mylock_t;
23+
24+
#define DEBUG_CONSTRUCT_LOCK(l) \
25+
do { \
26+
pthread_mutex_init(&(l)->mutex, NULL); \
27+
pthread_cond_init(&(l)->cond, NULL); \
28+
(l)->active = true; \
29+
(l)->status = PMIX_SUCCESS; \
30+
} while(0)
31+
32+
#define DEBUG_DESTRUCT_LOCK(l) \
33+
do { \
34+
pthread_mutex_destroy(&(l)->mutex); \
35+
pthread_cond_destroy(&(l)->cond); \
36+
} while(0)
37+
38+
#define DEBUG_WAIT_THREAD(lck) \
39+
do { \
40+
pthread_mutex_lock(&(lck)->mutex); \
41+
while ((lck)->active) { \
42+
pthread_cond_wait(&(lck)->cond, &(lck)->mutex); \
43+
} \
44+
pthread_mutex_unlock(&(lck)->mutex); \
45+
} while(0)
46+
47+
#define DEBUG_WAKEUP_THREAD(lck) \
48+
do { \
49+
pthread_mutex_lock(&(lck)->mutex); \
50+
(lck)->active = false; \
51+
pthread_cond_broadcast(&(lck)->cond); \
52+
pthread_mutex_unlock(&(lck)->mutex); \
53+
} while(0)

0 commit comments

Comments
 (0)